Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
   *
   * Copyright (c) 1997-2010 Oracle and/or its affiliates. All rights reserved.
   *
   * The contents of this file are subject to the terms of either the GNU
   * General Public License Version 2 only ("GPL") or the Common Development
   * and Distribution License("CDDL") (collectively, the "License").  You
   * may not use this file except in compliance with the License.  You can
  * obtain a copy of the License at
  * https://glassfish.dev.java.net/public/CDDL+GPL_1_1.html
  * or packager/legal/LICENSE.txt.  See the License for the specific
  * language governing permissions and limitations under the License.
  *
  * When distributing the software, include this License Header Notice in each
  * file and include the License file at packager/legal/LICENSE.txt.
  *
  * GPL Classpath Exception:
  * Oracle designates this particular file as subject to the "Classpath"
  * exception as provided by Oracle in the GPL Version 2 section of the License
  * file that accompanied this code.
  *
  * Modifications:
  * If applicable, add the following below the License Header, with the fields
  * enclosed by brackets [] replaced by your own identifying information:
  * "Portions Copyright [year] [name of copyright owner]"
  *
  * Contributor(s):
  * If you wish your version of this file to be governed by only the CDDL or
  * only the GPL Version 2, indicate your decision by adding "[Contributor]
  * elects to include this software in this distribution under the [CDDL or GPL
  * Version 2] license."  If you don't indicate a single choice of license, a
  * recipient has the option to distribute your version of this file under
  * either the CDDL, the GPL Version 2 or to extend the choice of license to
  * its licensees as provided above.  However, if you add GPL Version 2 code
  * and therefore, elected the GPL Version 2 license, then the option applies
  * only if the new code is made subject to such option by the copyright
  * holder.
  */
 
 package javax.faces.validator;
 
 

LengthValidator is a Validator that checks the number of characters in the String representation of the value of the associated component. The following algorithm is implemented:

  • Convert the passed value to a String, if necessary, by calling its toString() method.
  • If a maximum property has been configured on this Validator, check the length of the converted String against this limit. If the String length is larger than the specified maximum, throw a ValidatorException containing a a MAXIMUM_MESSAGE_ID message.
  • If a minimum property has been configured on this Validator, check the length of the converted String against this limit. If the String length is less than the specified minimum, throw a ValidatorException containing a a MINIMUM_MESSAGE_ID message.

For all of the above cases that cause a ValidatorException to be thrown, if there are parameters to the message that match up with validator parameters, the values of these parameters must be converted using the javax.faces.convert.Converter registered in the application under the converter id javax.faces.Number. This allows the values to be localized according to the current Locale.

 
 
 public class LengthValidator implements ValidatorPartialStateHolder {
 
     // ------------------------------------------------------ Manifest Constants
 

    

The standard validator id for this validator.

 
     public static final String VALIDATOR_ID = "javax.faces.Length";


    

The message identifier of the javax.faces.application.FacesMessage to be created if the maximum length check fails. The message format string for this message may optionally include the following placeholders:

  • {0} replaced by the configured maximum length.
  • {1} replaced by a String whose value is the label of the input component that produced this message.
    public static final String MAXIMUM_MESSAGE_ID =
         "javax.faces.validator.LengthValidator.MAXIMUM";


    

The message identifier of the javax.faces.application.FacesMessage to be created if the minimum length check fails. The message format string for this message may optionally include the following placeholders:

  • {0} replaced by the configured minimum length.
  • {1} replaced by a String whose value is the label of the input component that produced this message.
    public static final String MINIMUM_MESSAGE_ID =
         "javax.faces.validator.LengthValidator.MINIMUM";
    // ------------------------------------------------------------ Constructors


    

Construct a Validator with no preconfigured limits.

    public LengthValidator() {
        super();
    }


    

Construct a Validator with the specified preconfigured limit.

Parameters:
maximum Maximum value to allow
    public LengthValidator(int maximum) {
        super();
        setMaximum(maximum);
    }


    

Construct a Validator with the specified preconfigured limits.

Parameters:
maximum Maximum value to allow
minimum Minimum value to allow
    public LengthValidator(int maximumint minimum) {
        super();
        setMaximum(maximum);
        setMinimum(minimum);
    }
    // -------------------------------------------------------------- Properties
    private Integer maximum;


    

Return the maximum length to be enforced by this Validator, or 0 if the maximum has not been set.

    public int getMaximum() {
        return (this. != null ? this. : 0);
    }


    

Set the maximum length to be enforced by this Validator.

Parameters:
maximum The new maximum value
    public void setMaximum(int maximum) {
        clearInitialState();
        this. = maximum;
    }
    private Integer minimum;


    

Return the minimum length to be enforced by this Validator, or 0 if the minimum has not been set.

    public int getMinimum() {
        return (this. != null ? this. : 0);
    }


    

Set the minimum length to be enforced by this Validator.

Parameters:
minimum The new minimum value
    public void setMinimum(int minimum) {
        clearInitialState();
        this. = minimum;
    }
    // ------------------------------------------------------- Validator Methods

    
    public void validate(FacesContext context,
                         UIComponent component,
                         Object valuethrows ValidatorException {
        if ((context == null) || (component == null)) {
            throw new NullPointerException();
        }
        if (value != null) {
            String converted = stringValue(value);
            if (isMaximumSet() &&
                 (converted.length() > )) {
                throw new ValidatorException(MessageFactory.getMessage
                     (context,
                          ,
                          integerToString(componentcontext),
                          MessageFactory.getLabel(contextcomponent)));
            }
            if (isMinimumSet() &&
                 (converted.length() < )) {
                throw new ValidatorException(MessageFactory.getMessage
                     (context,
                          ,
                          integerToString(componentcontext),
                          MessageFactory.getLabel(contextcomponent)));
            }
        }
    }
    public boolean equals(Object otherObj) {
        if (!(otherObj instanceof LengthValidator)) {
            return false;
        }
        LengthValidator other = (LengthValidatorotherObj;
        return ((this.getMaximum() == other.getMaximum())
                && (this.getMinimum() == other.getMinimum())
                && (this.isMinimumSet() == other.isMinimumSet())
                && (this.isMaximumSet() == other.isMaximumSet()));
    }
    public int hashCode() {
        int hashCode = (Integer.valueOf(getMinimum()).hashCode()
                         + Integer.valueOf(getMaximum()).hashCode()
                         + Boolean.valueOf(isMaximumSet()).hashCode()
                         + Boolean.valueOf(isMinimumSet()).hashCode());
        return (hashCode);
    }
    // -------------------------------------------------------- Private Methods


    

Return the specified attribute value, converted to a String.

Parameters:
attributeValue The attribute value to be converted
    private static String stringValue(Object attributeValue) {
        if (attributeValue == null) {
            return (null);
        } else if (attributeValue instanceof String) {
            return ((StringattributeValue);
        } else {
            return (attributeValue.toString());
        }
    }
    private static String integerToString(UIComponent component,
                                          Integer toConvert,
                                          FacesContext context) {
        Converter converter =
             context.getApplication().createConverter("javax.faces.Number");
        return converter.getAsString(contextcomponenttoConvert);
    }
    private boolean isMaximumSet() {
        return ( != null);
    }
    private boolean isMinimumSet() {
        return ( != null);
    }
    // ----------------------------------------------------- StateHolder Methods
    public Object saveState(FacesContext context) {
        if (context == null) {
            throw new NullPointerException();
        }
        if (!initialStateMarked()) {
            Object values[] = new Object[2];
            values[0] = ;
            values[1] = ;
            return (values);
        }
        return null;
    }
    public void restoreState(FacesContext contextObject state) {
        if (context == null) {
            throw new NullPointerException();
        }
        if (state != null) {
            Object values[] = (Object[]) state;
             = (Integervalues[0];
             = (Integervalues[1];
        }
    }
    private boolean transientValue = false;
    public boolean isTransient() {
        return (this.);
    }
    public void setTransient(boolean transientValue) {
        this. = transientValue;
    }
    private boolean initialState;
    public void markInitialState() {
         = true;
    }
    public boolean initialStateMarked() {
        return ;
    }
    public void clearInitialState() {
         = false;
    }
New to GrepCode? Check out our FAQ X