You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by mk...@apache.org on 2006/03/02 02:07:48 UTC
svn commit: r382210 - in /myfaces/tomahawk/trunk/core/src:
main/java/org/apache/myfaces/custom/regexprvalidator/
main/tld/tomahawk-entities/ site/xdoc/
Author: mkienenb
Date: Wed Mar 1 17:07:47 2006
New Revision: 382210
URL: http://svn.apache.org/viewcvs?rev=382210&view=rev
Log:
Added message attribute to RegExprValidator.
Modified:
myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/custom/regexprvalidator/RegExprValidator.java
myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/custom/regexprvalidator/ValidateRegExprTag.java
myfaces/tomahawk/trunk/core/src/main/tld/tomahawk-entities/tomahawk_validate_regexpr_attributes.xml
myfaces/tomahawk/trunk/core/src/site/xdoc/validateRegExpr.xml
Modified: myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/custom/regexprvalidator/RegExprValidator.java
URL: http://svn.apache.org/viewcvs/myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/custom/regexprvalidator/RegExprValidator.java?rev=382210&r1=382209&r2=382210&view=diff
==============================================================================
--- myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/custom/regexprvalidator/RegExprValidator.java (original)
+++ myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/custom/regexprvalidator/RegExprValidator.java Wed Mar 1 17:07:47 2006
@@ -15,14 +15,19 @@
*/
package org.apache.myfaces.custom.regexprvalidator;
+import java.util.HashMap;
+import java.util.Map;
+
import javax.faces.application.FacesMessage;
import javax.faces.component.StateHolder;
import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
+import javax.faces.el.ValueBinding;
import javax.faces.validator.Validator;
import javax.faces.validator.ValidatorException;
import org.apache.myfaces.shared_tomahawk.util.MessageUtils;
+import org.apache.myfaces.shared_tomahawk.util._ComponentUtils;
import org.apache.commons.validator.GenericValidator;
@@ -38,7 +43,7 @@
/**
* <p>The message identifier of the {@link FacesMessage} to be created if
- * the creditcard check fails.</p>
+ * the regex check fails.</p>
*/
public static final String REGEXPR_MESSAGE_ID = "org.apache.myfaces.Regexpr.INVALID";
@@ -46,11 +51,13 @@
}
//the pattern on which the validation is based.
- private String _pattern= null;
+ protected String _pattern= null;
+ // the message to display when validation fails.
+ protected String _message;
//JSF-Field for StateHolder-IF
- private boolean _transient = false;
+ protected boolean _transient = false;
@@ -68,10 +75,13 @@
return;
}
Object[] args = {value.toString()};
- if(!GenericValidator.matchRegexp(value.toString(),"^"+_pattern+"$")){
- throw new ValidatorException(MessageUtils.getMessage(FacesMessage.SEVERITY_ERROR,REGEXPR_MESSAGE_ID, args));
+ if(!GenericValidator.matchRegexp(value.toString(),"^" + getPattern() + "$")){
- }
+ String message = getMessage();
+ if (null == message) message = REGEXPR_MESSAGE_ID;
+
+ throw new ValidatorException(MessageUtils.getMessage(FacesMessage.SEVERITY_ERROR, message, args));
+ }
}
@@ -80,12 +90,16 @@
// -------------------------------------------------------- StateholderIF
public Object saveState(FacesContext context) {
- Object state = _pattern;
- return state;
+ Object value[] = new Object[2];
+ value[0] = _pattern;
+ value[1] = _message;
+ return value;
}
public void restoreState(FacesContext context, Object state) {
- _pattern = (String) state;
+ Object[] values = (Object[]) state;
+ _message = (String) values[1];
+ _pattern = (String) values[0];
}
public boolean isTransient() {
@@ -100,9 +114,12 @@
/**
* @return the pattern, on which a value should be validated
*/
- public String getPattern() {
- return _pattern;
- }
+ public String getPattern()
+ {
+ if (_pattern != null) return _pattern;
+ ValueBinding vb = getValueBinding("pattern");
+ return vb != null ? _ComponentUtils.getStringValue(getFacesContext(), vb) : null;
+ }
/**
* @param string the pattern, on which a value should be validated
@@ -110,5 +127,50 @@
public void setPattern(String string) {
_pattern = string;
}
+
+ public String getMessage()
+ {
+ if (_message != null) return _message;
+ ValueBinding vb = getValueBinding("message");
+ return vb != null ? _ComponentUtils.getStringValue(getFacesContext(), vb) : null;
+ }
+
+ public void setMessage(String message)
+ {
+ this._message = message;
+ }
+
+ // --------------------- borrowed from UIComponentBase ------------
+
+ private Map _valueBindingMap = null;
+
+ public ValueBinding getValueBinding(String name)
+ {
+ if (name == null) throw new NullPointerException("name");
+ if (_valueBindingMap == null)
+ {
+ return null;
+ }
+ else
+ {
+ return (ValueBinding)_valueBindingMap.get(name);
+ }
+ }
+
+ public void setValueBinding(String name,
+ ValueBinding binding)
+ {
+ if (name == null) throw new NullPointerException("name");
+ if (_valueBindingMap == null)
+ {
+ _valueBindingMap = new HashMap();
+ }
+ _valueBindingMap.put(name, binding);
+ }
+
+ protected FacesContext getFacesContext()
+ {
+ return FacesContext.getCurrentInstance();
+ }
}
Modified: myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/custom/regexprvalidator/ValidateRegExprTag.java
URL: http://svn.apache.org/viewcvs/myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/custom/regexprvalidator/ValidateRegExprTag.java?rev=382210&r1=382209&r2=382210&view=diff
==============================================================================
--- myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/custom/regexprvalidator/ValidateRegExprTag.java (original)
+++ myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/custom/regexprvalidator/ValidateRegExprTag.java Wed Mar 1 17:07:47 2006
@@ -29,38 +29,58 @@
public class ValidateRegExprTag extends ValidatorTag {
private static final long serialVersionUID = -449945949876262076L;
//the pattern, needed by Commons-Validator.
- private String _pattern = null;
+ private String _pattern = null;
+ private String _message = null;
public ValidateRegExprTag(){
}
- public void setPattern(String string) {
- _pattern = string;
- }
+ public void setPattern(String string) {
+ _pattern = string;
+ }
+
+ public void setMessage(String string) {
+ _message = string;
+ }
protected Validator createValidator() throws JspException {
FacesContext facesContext = FacesContext.getCurrentInstance();
setValidatorId(RegExprValidator.VALIDATOR_ID);
RegExprValidator validator = (RegExprValidator)super.createValidator();
- if (_pattern != null)
- {
- if (UIComponentTag.isValueReference(_pattern))
- {
- ValueBinding vb = facesContext.getApplication().createValueBinding(_pattern);
- validator.setPattern(new String(vb.getValue(facesContext).toString()));
- }
- else
- {
- validator.setPattern(_pattern);
- }
- }
+ if (_pattern != null)
+ {
+ if (UIComponentTag.isValueReference(_pattern))
+ {
+ ValueBinding vb = facesContext.getApplication().createValueBinding(_pattern);
+ validator.setPattern(new String(vb.getValue(facesContext).toString()));
+ }
+ else
+ {
+ validator.setPattern(_pattern);
+ }
+ }
+
+ if (_message != null)
+ {
+ if (UIComponentTag.isValueReference(_message))
+ {
+ ValueBinding vb = facesContext.getApplication().createValueBinding(_message);
+ validator.setMessage(new String(vb.getValue(facesContext).toString()));
+ }
+ else
+ {
+ validator.setMessage(_message);
+ }
+ }
+
return validator;
}
public void release()
{
super.release();
- _pattern= null;
+ _pattern= null;
+ _message= null;
}
}
Modified: myfaces/tomahawk/trunk/core/src/main/tld/tomahawk-entities/tomahawk_validate_regexpr_attributes.xml
URL: http://svn.apache.org/viewcvs/myfaces/tomahawk/trunk/core/src/main/tld/tomahawk-entities/tomahawk_validate_regexpr_attributes.xml?rev=382210&r1=382209&r2=382210&view=diff
==============================================================================
--- myfaces/tomahawk/trunk/core/src/main/tld/tomahawk-entities/tomahawk_validate_regexpr_attributes.xml (original)
+++ myfaces/tomahawk/trunk/core/src/main/tld/tomahawk-entities/tomahawk_validate_regexpr_attributes.xml Wed Mar 1 17:07:47 2006
@@ -1,4 +1,12 @@
<attribute>
+ <name>message</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>
+ alternate validation error message format string
+ </description>
+ </attribute>
+ <attribute>
<name>pattern</name>
<required>true</required>
<rtexprvalue>false</rtexprvalue>
Modified: myfaces/tomahawk/trunk/core/src/site/xdoc/validateRegExpr.xml
URL: http://svn.apache.org/viewcvs/myfaces/tomahawk/trunk/core/src/site/xdoc/validateRegExpr.xml?rev=382210&r1=382209&r2=382210&view=diff
==============================================================================
--- myfaces/tomahawk/trunk/core/src/site/xdoc/validateRegExpr.xml (original)
+++ myfaces/tomahawk/trunk/core/src/site/xdoc/validateRegExpr.xml Wed Mar 1 17:07:47 2006
@@ -59,6 +59,7 @@
<blockquote><h3><t:validateRegExpr/></h3>
<code>pattern (required)</code><br/>
+ <code>message - Optional alternate validation error message format string where</code><br/>
</blockquote>
</section>
<!-- Instructions -->