You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by to...@apache.org on 2006/11/07 14:59:54 UTC

svn commit: r472120 - in /myfaces/core/trunk/api/src/main/java/javax/faces/validator: DoubleRangeValidator.java LengthValidator.java LongRangeValidator.java

Author: tomsp
Date: Tue Nov  7 05:59:53 2006
New Revision: 472120

URL: http://svn.apache.org/viewvc?view=rev&rev=472120
Log:
MYFACES-1418 reverted due to JSF 1.1 incompatibility

Modified:
    myfaces/core/trunk/api/src/main/java/javax/faces/validator/DoubleRangeValidator.java
    myfaces/core/trunk/api/src/main/java/javax/faces/validator/LengthValidator.java
    myfaces/core/trunk/api/src/main/java/javax/faces/validator/LongRangeValidator.java

Modified: myfaces/core/trunk/api/src/main/java/javax/faces/validator/DoubleRangeValidator.java
URL: http://svn.apache.org/viewvc/myfaces/core/trunk/api/src/main/java/javax/faces/validator/DoubleRangeValidator.java?view=diff&rev=472120&r1=472119&r2=472120
==============================================================================
--- myfaces/core/trunk/api/src/main/java/javax/faces/validator/DoubleRangeValidator.java (original)
+++ myfaces/core/trunk/api/src/main/java/javax/faces/validator/DoubleRangeValidator.java Tue Nov  7 05:59:53 2006
@@ -15,79 +15,172 @@
  */
 package javax.faces.validator;
 
+import javax.faces.component.StateHolder;
+import javax.faces.component.UIComponent;
+import javax.faces.context.FacesContext;
+
 /**
  * see Javadoc of <a href="http://java.sun.com/j2ee/javaserverfaces/1.1_01/docs/api/index.html">JSF Specification</a>
- * 
+ *
  * @author Manfred Geiler (latest modification by $Author$)
  * @author Thomas Spiegl
  * @version $Revision$ $Date$
  */
-public class DoubleRangeValidator extends NumberRangeValidator {
-	// FIELDS
-	public static final String VALIDATOR_ID = "javax.faces.DoubleRange";
-	public static final String MAXIMUM_MESSAGE_ID = "javax.faces.validator.DoubleRangeValidator.MAXIMUM";
-	public static final String MINIMUM_MESSAGE_ID = "javax.faces.validator.DoubleRangeValidator.MINIMUM";
-	public static final String TYPE_MESSAGE_ID = "javax.faces.validator.DoubleRangeValidator.TYPE";
-
-	// CONSTRUCTORS
-	public DoubleRangeValidator() {
-		super(null, null);
-	}
-
-	public DoubleRangeValidator(double maximum) {
-		super(null, new Double(maximum));
-	}
-
-	public DoubleRangeValidator(double maximum, double minimum) {
-		super(new Double(minimum), new Double(maximum));
-	}
-
-	// Abstract methods implementation
-	protected Comparable getValue(Number number) {
-		if(number instanceof Double) {
-			return (Double) number;
-		}
-		return new Double(number.longValue());
-	}
-
-	protected Comparable getValue(String str) throws NumberFormatException {
-		return new Double(str);
-	}
-	
-	protected String getMaximumMessageId() {
-		return MAXIMUM_MESSAGE_ID;
-	}
-
-	protected String getMinimumMessageId() {
-		return MINIMUM_MESSAGE_ID;
-	}
-
-	protected String getTypeMessageId() {
-		return TYPE_MESSAGE_ID;
-	}
-	
-	// GETTER & SETTER
-	public double getMaximum() {
-		return _maximum != null ? _maximum.doubleValue() : Double.MAX_VALUE;
-	}
-
-	public void setMaximum(double maximum) {
-		_maximum = new Double(maximum);
-	}
-
-	public double getMinimum() {
-		return _minimum != null ? _minimum.doubleValue() : Double.MIN_VALUE;
-	}
-
-	public void setMinimum(double minimum) {
-		_minimum = new Double(minimum);
-	}
-
-	// MISC
-	public boolean equals(Object o) {
-		if (!(o instanceof DoubleRangeValidator)) {
-			return false;
-		}
-		return super.equals(o);
-	}
+public class DoubleRangeValidator
+        implements Validator, StateHolder
+{
+    // FIELDS
+    public static final String VALIDATOR_ID       = "javax.faces.DoubleRange";
+    public static final String MAXIMUM_MESSAGE_ID = "javax.faces.validator.DoubleRangeValidator.MAXIMUM";
+    public static final String MINIMUM_MESSAGE_ID = "javax.faces.validator.DoubleRangeValidator.MINIMUM";
+    public static final String TYPE_MESSAGE_ID    = "javax.faces.validator.DoubleRangeValidator.TYPE";
+
+    private Double _minimum = null;
+    private Double _maximum = null;
+    private boolean _transient = false;
+
+    // CONSTRUCTORS
+    public DoubleRangeValidator()
+    {
+    }
+
+    public DoubleRangeValidator(double maximum)
+    {
+        _maximum = new Double(maximum);
+    }
+
+    public DoubleRangeValidator(double maximum,
+                                double minimum)
+    {
+        _maximum = new Double(maximum);
+        _minimum = new Double(minimum);
+    }
+
+    // VALIDATE
+    public void validate(FacesContext facesContext,
+                         UIComponent uiComponent,
+                         Object value)
+            throws ValidatorException
+    {
+        if (facesContext == null) throw new NullPointerException("facesContext");
+        if (uiComponent == null) throw new NullPointerException("uiComponent");
+
+        if (value == null)
+        {
+            return;
+        }
+
+        double dvalue = parseDoubleValue(facesContext, uiComponent,value);
+        if (_minimum != null && _maximum != null)
+        {
+            if (dvalue < _minimum.doubleValue() ||
+                dvalue > _maximum.doubleValue())
+            {
+                Object[] args = {_minimum, _maximum,uiComponent.getId()};
+                throw new ValidatorException(_MessageUtils.getErrorMessage(facesContext, NOT_IN_RANGE_MESSAGE_ID, args));
+            }
+        }
+        else if (_minimum != null)
+        {
+            if (dvalue < _minimum.doubleValue())
+            {
+                Object[] args = {_minimum,uiComponent.getId()};
+                throw new ValidatorException(_MessageUtils.getErrorMessage(facesContext, MINIMUM_MESSAGE_ID, args));
+            }
+        }
+        else if (_maximum != null)
+        {
+            if (dvalue > _maximum.doubleValue())
+            {
+                Object[] args = {_maximum,uiComponent.getId()};
+                throw new ValidatorException(_MessageUtils.getErrorMessage(facesContext, MAXIMUM_MESSAGE_ID, args));
+            }
+        }
+    }
+
+    private double parseDoubleValue(FacesContext facesContext, UIComponent uiComponent, Object value)
+        throws ValidatorException
+    {
+        if (value instanceof Number)
+        {
+            return ((Number)value).doubleValue();
+        }
+        else
+        {
+            try
+            {
+                return Double.parseDouble(value.toString());
+            }
+            catch (NumberFormatException e)
+            {
+				Object[] args = {uiComponent.getId()};
+               throw new ValidatorException(_MessageUtils.getErrorMessage(facesContext, TYPE_MESSAGE_ID, args));
+            }
+        }
+    }
+
+
+    // GETTER & SETTER
+    public double getMaximum()
+    {
+        return _maximum != null ? _maximum.doubleValue() : Double.MAX_VALUE;
+    }
+
+    public void setMaximum(double maximum)
+    {
+        _maximum = new Double(maximum);
+    }
+
+    public double getMinimum()
+    {
+        return _minimum != null ? _minimum.doubleValue() : Double.MIN_VALUE;
+    }
+
+    public void setMinimum(double minimum)
+    {
+        _minimum = new Double(minimum);
+    }
+
+
+    // RESTORE/SAVE STATE
+    public Object saveState(FacesContext context)
+    {
+        Object values[] = new Object[2];
+        values[0] = _maximum;
+        values[1] = _minimum;
+        return values;
+    }
+
+    public void restoreState(FacesContext context,
+                             Object state)
+    {
+        Object values[] = (Object[])state;
+        _maximum = (Double)values[0];
+        _minimum = (Double)values[1];
+    }
+
+    public boolean isTransient()
+    {
+        return _transient;
+    }
+
+    public void setTransient(boolean transientValue)
+    {
+        _transient = transientValue;
+    }
+
+    // MISC
+    public boolean equals(Object o)
+    {
+        if (this == o) return true;
+        if (!(o instanceof DoubleRangeValidator)) return false;
+
+        final DoubleRangeValidator doubleRangeValidator = (DoubleRangeValidator)o;
+
+        if (_maximum != null ? !_maximum.equals(doubleRangeValidator._maximum) : doubleRangeValidator._maximum != null) return false;
+        if (_minimum != null ? !_minimum.equals(doubleRangeValidator._minimum) : doubleRangeValidator._minimum != null) return false;
+
+        return true;
+    }
+
 }

Modified: myfaces/core/trunk/api/src/main/java/javax/faces/validator/LengthValidator.java
URL: http://svn.apache.org/viewvc/myfaces/core/trunk/api/src/main/java/javax/faces/validator/LengthValidator.java?view=diff&rev=472120&r1=472119&r2=472120
==============================================================================
--- myfaces/core/trunk/api/src/main/java/javax/faces/validator/LengthValidator.java (original)
+++ myfaces/core/trunk/api/src/main/java/javax/faces/validator/LengthValidator.java Tue Nov  7 05:59:53 2006
@@ -15,6 +15,10 @@
  */
 package javax.faces.validator;
 
+import javax.faces.component.StateHolder;
+import javax.faces.component.UIComponent;
+import javax.faces.context.FacesContext;
+
 /**
  * see Javadoc of <a href="http://java.sun.com/j2ee/javaserverfaces/1.1_01/docs/api/index.html">JSF Specification</a>
  *
@@ -22,68 +26,131 @@
  * @author Thomas Spiegl
  * @version $Revision$ $Date$
  */
-public class LengthValidator extends NumberRangeValidator {
-	// FIELDS
-	public static final String MAXIMUM_MESSAGE_ID = "javax.faces.validator.LengthValidator.MAXIMUM";
-	public static final String MINIMUM_MESSAGE_ID = "javax.faces.validator.LengthValidator.MINIMUM";
-	public static final String VALIDATOR_ID = "javax.faces.Length";
-
-	// CONSTRUCTORS
-	public LengthValidator() {
-		super(null, null, false);
-	}
-
-	public LengthValidator(int maximum) {
-		super(null, new Integer(maximum), false);
-	}
-
-	public LengthValidator(int maximum, int minimum) {
-		super(new Integer(minimum), new Integer(maximum), false);
-	}
-
-	// Abstract methods implementation
-	protected Comparable getValue(Number number) {
-		return new Integer(number.toString().length());
-	}
-
-	protected Comparable getValue(String str) throws NumberFormatException {
-		return new Integer(str.length());
-	}
-
-	protected String getMaximumMessageId() {
-		return MAXIMUM_MESSAGE_ID;
-	}
-
-	protected String getMinimumMessageId() {
-		return MINIMUM_MESSAGE_ID;
-	}
-
-	protected String getTypeMessageId() {
-		return null;
-	}
-
-	// SETTER & GETTER
-	public int getMaximum() {
-		return _maximum != null ? _maximum.intValue() : Integer.MAX_VALUE;
-	}
-
-	public void setMaximum(int maximum) {
-		_maximum = new Integer(maximum);
-	}
-
-	public int getMinimum() {
-		return _minimum != null ? _minimum.intValue() : 0;
-	}
-
-	public void setMinimum(int minimum) {
-		_minimum = new Integer(minimum);
-	}
-
-	// MISC
-	public boolean equals(Object o) {
-		if (!(o instanceof LengthValidator)) {
-			return false;
-		}
-		return super.equals(o);
-	}
+public class LengthValidator
+        implements Validator, StateHolder
+{
+    // FIELDS
+    public static final String 	MAXIMUM_MESSAGE_ID = "javax.faces.validator.LengthValidator.MAXIMUM";
+    public static final String 	MINIMUM_MESSAGE_ID = "javax.faces.validator.LengthValidator.MINIMUM";
+    public static final String 	VALIDATOR_ID 	   = "javax.faces.Length";
+
+    private Integer _minimum = null;
+    private Integer _maximum = null;
+    private boolean _transient = false;
+
+    // CONSTRUCTORS
+    public LengthValidator()
+    {
+    }
+
+    public LengthValidator(int maximum)
+    {
+        _maximum = new Integer(maximum);
+    }
+
+    public LengthValidator(int maximum,
+                           int minimum)
+    {
+        _maximum = new Integer(maximum);
+        _minimum = new Integer(minimum);
+    }
+
+    // VALIDATE
+    public void validate(FacesContext facesContext,
+                         UIComponent uiComponent,
+                         Object value)
+            throws ValidatorException
+    {
+        if (facesContext == null) throw new NullPointerException("facesContext");
+        if (uiComponent == null) throw new NullPointerException("uiComponent");
+
+        if (value == null)
+        {
+            return;
+        }
+
+        int length = value instanceof String ?
+            ((String)value).length() : value.toString().length();
+
+        if (_minimum != null)
+        {
+            if (length < _minimum.intValue())
+            {
+                Object[] args = {_minimum,uiComponent.getId()};
+                throw new ValidatorException(_MessageUtils.getErrorMessage(facesContext, MINIMUM_MESSAGE_ID, args));
+            }
+        }
+
+        if (_maximum != null)
+        {
+            if (length > _maximum.intValue())
+            {
+                Object[] args = {_maximum,uiComponent.getId()};
+                throw new ValidatorException(_MessageUtils.getErrorMessage(facesContext, MAXIMUM_MESSAGE_ID, args));
+            }
+        }
+    }
+
+    // SETTER & GETTER
+    public int getMaximum()
+    {
+        return _maximum != null ? _maximum.intValue() : Integer.MAX_VALUE;
+    }
+
+    public void setMaximum(int maximum)
+    {
+        _maximum = new Integer(maximum);
+    }
+
+    public int getMinimum()
+    {
+        return _minimum != null ? _minimum.intValue() : 0;
+    }
+
+    public void setMinimum(int minimum)
+    {
+        _minimum = new Integer(minimum);
+    }
+
+    public boolean isTransient()
+    {
+        return _transient;
+    }
+
+    public void setTransient(boolean transientValue)
+    {
+        _transient = transientValue;
+    }
+
+    // RESTORE & SAVE STATE
+    public Object saveState(FacesContext context)
+    {
+        Object values[] = new Object[2];
+        values[0] = _maximum;
+        values[1] = _minimum;
+        return values;
+    }
+
+    public void restoreState(FacesContext context,
+                             Object state)
+    {
+        Object values[] = (Object[])state;
+        _maximum = (Integer)values[0];
+        _minimum = (Integer)values[1];
+    }
+
+    // MISC
+    public boolean equals(Object o)
+    {
+        if (this == o) return true;
+        if (!(o instanceof LengthValidator)) return false;
+
+        final LengthValidator lengthValidator = (LengthValidator)o;
+
+        if (_maximum != null ? !_maximum.equals(lengthValidator._maximum) : lengthValidator._maximum != null) return false;
+        if (_minimum != null ? !_minimum.equals(lengthValidator._minimum) : lengthValidator._minimum != null) return false;
+
+        return true;
+    }
+
 }

Modified: myfaces/core/trunk/api/src/main/java/javax/faces/validator/LongRangeValidator.java
URL: http://svn.apache.org/viewvc/myfaces/core/trunk/api/src/main/java/javax/faces/validator/LongRangeValidator.java?view=diff&rev=472120&r1=472119&r2=472120
==============================================================================
--- myfaces/core/trunk/api/src/main/java/javax/faces/validator/LongRangeValidator.java (original)
+++ myfaces/core/trunk/api/src/main/java/javax/faces/validator/LongRangeValidator.java Tue Nov  7 05:59:53 2006
@@ -15,79 +15,171 @@
  */
 package javax.faces.validator;
 
+import javax.faces.component.StateHolder;
+import javax.faces.component.UIComponent;
+import javax.faces.context.FacesContext;
+
 /**
  * see Javadoc of <a href="http://java.sun.com/j2ee/javaserverfaces/1.1_01/docs/api/index.html">JSF Specification</a>
- * 
+ *
  * @author Manfred Geiler (latest modification by $Author$)
  * @author Thomas Spiegl
  * @version $Revision$ $Date$
  */
-public class LongRangeValidator extends NumberRangeValidator {
-	// FIELDS
-	public static final String MAXIMUM_MESSAGE_ID = "javax.faces.validator.LongRangeValidator.MAXIMUM";
-	public static final String MINIMUM_MESSAGE_ID = "javax.faces.validator.LongRangeValidator.MINIMUM";
-	public static final String TYPE_MESSAGE_ID = "javax.faces.validator.LongRangeValidator.TYPE";
-	public static final String VALIDATOR_ID = "javax.faces.LongRange";
-
-	// CONSTRUCTORS
-	public LongRangeValidator() {
-		super(null, null);
-	}
-
-	public LongRangeValidator(long maximum) {
-		super(null, new Long(maximum));
-	}
-
-	public LongRangeValidator(long maximum, long minimum) {
-		super(new Long(minimum), new Long(maximum));
-	}
-
-	protected Comparable getValue(Number number) {
-		if(number instanceof Long) {
-			return (Long) number;
-		}
-		return new Long(number.longValue());
-	}
-
-	// Abstract methods implementation
-	protected Comparable getValue(String str) throws NumberFormatException {
-		return new Long(str);
-	}
-
-	protected String getMaximumMessageId() {
-		return MAXIMUM_MESSAGE_ID;
-	}
-
-	protected String getMinimumMessageId() {
-		return MINIMUM_MESSAGE_ID;
-	}
-
-	protected String getTypeMessageId() {
-		return TYPE_MESSAGE_ID;
-	}
-
-	// GETTER & SETTER
-	public long getMaximum() {
-		return _maximum != null ? _maximum.longValue() : Long.MAX_VALUE;
-	}
-
-	public void setMaximum(long maximum) {
-		_maximum = new Long(maximum);
-	}
-
-	public long getMinimum() {
-		return _minimum != null ? _minimum.longValue() : Long.MIN_VALUE;
-	}
-
-	public void setMinimum(long minimum) {
-		_minimum = new Long(minimum);
-	}
-
-	// MISC
-	public boolean equals(Object o) {
-		if (!(o instanceof LongRangeValidator)) {
-			return false;
-		}
-		return super.equals(o);
-	}
+public class LongRangeValidator
+        implements Validator, StateHolder
+{
+    // FIELDS
+    public static final String MAXIMUM_MESSAGE_ID = "javax.faces.validator.LongRangeValidator.MAXIMUM";
+    public static final String MINIMUM_MESSAGE_ID =	"javax.faces.validator.LongRangeValidator.MINIMUM";
+    public static final String TYPE_MESSAGE_ID 	  = "javax.faces.validator.LongRangeValidator.TYPE";
+    public static final String VALIDATOR_ID 	  = "javax.faces.LongRange";
+
+    private Long _minimum = null;
+    private Long _maximum = null;
+    private boolean _transient = false;
+
+    // CONSTRUCTORS
+    public LongRangeValidator()
+    {
+    }
+
+    public LongRangeValidator(long maximum)
+    {
+        _maximum = new Long(maximum);
+    }
+
+    public LongRangeValidator(long maximum,
+                              long minimum)
+    {
+        _maximum = new Long(maximum);
+        _minimum = new Long(minimum);
+    }
+
+    // VALIDATE
+    public void validate(FacesContext facesContext,
+                         UIComponent uiComponent,
+                         Object value)
+            throws ValidatorException
+    {
+        if (facesContext == null) throw new NullPointerException("facesContext");
+        if (uiComponent == null) throw new NullPointerException("uiComponent");
+
+        if (value == null)
+        {
+            return;
+        }
+
+        double dvalue = parseLongValue(facesContext, uiComponent,value);
+        if (_minimum != null && _maximum != null)
+        {
+            if (dvalue < _minimum.longValue() ||
+                dvalue > _maximum.longValue())
+            {
+                Object[] args = {_minimum, _maximum,uiComponent.getId()};
+                throw new ValidatorException(_MessageUtils.getErrorMessage(facesContext, NOT_IN_RANGE_MESSAGE_ID, args));
+            }
+        }
+        else if (_minimum != null)
+        {
+            if (dvalue < _minimum.longValue())
+            {
+                Object[] args = {_minimum,uiComponent.getId()};
+                throw new ValidatorException(_MessageUtils.getErrorMessage(facesContext, MINIMUM_MESSAGE_ID, args));
+            }
+        }
+        else if (_maximum != null)
+        {
+            if (dvalue > _maximum.longValue())
+            {
+                Object[] args = {_maximum,uiComponent.getId()};
+                throw new ValidatorException(_MessageUtils.getErrorMessage(facesContext, MAXIMUM_MESSAGE_ID, args));
+            }
+        }
+    }
+
+    private long parseLongValue(FacesContext facesContext, UIComponent uiComponent, Object value)
+        throws ValidatorException
+    {
+        if (value instanceof Number)
+        {
+            return ((Number)value).longValue();
+        }
+        else
+        {
+            try
+            {
+                return Long.parseLong(value.toString());
+            }
+            catch (NumberFormatException e)
+            {
+				Object[] args = {uiComponent.getId()};
+                throw new ValidatorException(_MessageUtils.getErrorMessage(facesContext, TYPE_MESSAGE_ID, args));
+            }
+        }
+    }
+
+
+     // GETTER & SETTER
+    public long getMaximum()
+    {
+        return _maximum != null ? _maximum.longValue() : Long.MAX_VALUE;
+    }
+
+    public void setMaximum(long maximum)
+    {
+        _maximum = new Long(maximum);
+    }
+
+    public long getMinimum()
+    {
+        return _minimum != null ? _minimum.longValue() : Long.MIN_VALUE;
+    }
+
+    public void setMinimum(long minimum)
+    {
+        _minimum = new Long(minimum);
+    }
+
+    public boolean isTransient()
+    {
+        return _transient;
+    }
+
+    public void setTransient(boolean transientValue)
+    {
+        _transient = transientValue;
+    }
+
+    // RESTORE & SAVE STATE
+    public Object saveState(FacesContext context)
+    {
+        Object values[] = new Object[2];
+        values[0] = _maximum;
+        values[1] = _minimum;
+        return values;
+    }
+
+    public void restoreState(FacesContext context,
+                             Object state)
+    {
+        Object values[] = (Object[])state;
+        _maximum = (Long)values[0];
+        _minimum = (Long)values[1];
+    }
+
+    // MISC
+    public boolean equals(Object o)
+    {
+        if (this == o) return true;
+        if (!(o instanceof LongRangeValidator)) return false;
+
+        final LongRangeValidator longRangeValidator = (LongRangeValidator)o;
+
+        if (_maximum != null ? !_maximum.equals(longRangeValidator._maximum) : longRangeValidator._maximum != null) return false;
+        if (_minimum != null ? !_minimum.equals(longRangeValidator._minimum) : longRangeValidator._minimum != null) return false;
+
+        return true;
+    }
+
 }