tapestry-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Andreas Andreou (JIRA)" <tapestry-...@jakarta.apache.org>
Subject [jira] Assigned: (TAPESTRY-410) IdentityValidator
Date Mon, 01 Jan 2007 18:31:27 GMT

     [ http://issues.apache.org/jira/browse/TAPESTRY-410?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Andreas Andreou reassigned TAPESTRY-410:
----------------------------------------

    Assignee: Andreas Andreou

> IdentityValidator
> -----------------
>
>                 Key: TAPESTRY-410
>                 URL: http://issues.apache.org/jira/browse/TAPESTRY-410
>             Project: Tapestry
>          Issue Type: Improvement
>          Components: Framework
>    Affects Versions: 4.0
>            Reporter: Ron Piterman
>         Assigned To: Andreas Andreou
>            Priority: Minor
>             Fix For: 4.1.2
>
>
> The following class compares the validated field against another field. It works in two
modes: 
> match=<fieldname> and differ=<fieldname>
> Cheers,
> Ron
> package org.apache.tapestry.form.valid;
> import org.apache.tapestry.form.IFormComponent;
> import org.apache.tapestry.form.TextField;
> import org.apache.tapestry.form.ValidationMessages;
> import org.apache.tapestry.form.validator.BaseValidator;
> public class IdentityValidator extends BaseValidator {
> 	private String _fieldName;
> 	private int _matchType;
> 	private String _identityMessage;
> 	
> 	private static final int DIFFER = 0;
> 	private static final int MATCH = 1;
> 	
> 	
> 	public IdentityValidator() {
> 		super();
> 	}
>     public IdentityValidator(String initializer)
>     {
>         super(initializer);
>     }
>     public String toString(IFormComponent field, Object value)
> 	    {
> 	        if (value == null)
> 	            return null;
> 	        return value.toString();
> 	    }
> 	public void validate(IFormComponent field, ValidationMessages messages, Object object)

> 		throws ValidatorException
> 	    {
> 	        TextField referent = 
> 	        	(TextField)field.getContainer().getComponent(_fieldName);
>                 //TODO: if component is null treat _fieldName as an ognl expression
> 	        
> 	        boolean notEq = notEqual ( referent.getValue() , object ); 
> 	        
> 	        if ( _matchType == MATCH ? notEq : !notEq )
> 	            throw new ValidatorException(buildIdentityMessage(messages, field, referent),
> 	                    ValidationConstraint.CONSISTENCY);
> 	    }
> 	    public String getMatch()
> 	    {
> 	        return _fieldName;
> 	    }
> 	    public void setMatch(String field)
> 	    {
> 	        _fieldName = field;
> 	        _matchType = MATCH;
> 	        
> 	    }
> 	    
> 	    public String getDiffer() {
> 	    	return _fieldName;
> 	    }
> 	    
> 	    public void setDiffer(String field) {
> 	    	_fieldName = field;
> 	    	_matchType = DIFFER;
> 	    }
> 	    
> 	    /** @since 3.0 */
> 	    public String getIdentityMessage()
> 	    {
> 	        return _identityMessage;
> 	    }
> 	    /**
> 	     * Overrides the <code>field-too-short</code> bundle key. Parameter
{0} is the minimum length.
> 	     * Parameter {1} is the display name of the field.
> 	     * 
> 	     * @since 3.0
> 	     */
> 	    public void setMinimumLengthMessage(String string)
> 	    {
> 	        _identityMessage = string;
> 	    }
> 	    /** @since 3.0 */
> 	    protected String buildIdentityMessage(ValidationMessages messages, IFormComponent
field, IFormComponent referent)
> 	    {
> 	        Object[] parameters = new Object[] {
> 	        		field.getDisplayName(), _matchType, referent.getDisplayName()
> 	        };
> 	    	return messages.formatValidationMessage(_identityMessage, 
> 	    			"invalid-field-equality", parameters);
> 	        
> 	    }
> 	    
> 	    private boolean notEqual(Object o1, Object o2) {
> 	    	if (o1 == null && o2 == null)
> 	    		return false;
> 	    	if (o1 == null  || o2 == null)
> 	    		return true;
> 	    	return !o1.equals(o2);
> 	    }
> }
> ==============================
> hivemind:
>     <contribution configuration-id="tapestry.form.validator.Validators">
>        <validator name="match" configurable="true" 
>        class="org.apache.tapestry.form.valid.IdentityValidator"/>
>     </contribution>
> 	<contribution configuration-id="tapestry.form.validator.Validators">
>        <validator name="differ" configurable="true" 
>        class="org.apache.tapestry.form.valid.IdentityValidator"/>
>     </contribution>
> =========================

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tapestry.apache.org
For additional commands, e-mail: dev-help@tapestry.apache.org


Mime
View raw message