[jboss-cvs] jboss-seam/src/main/org/jboss/seam/core ...
Gavin King
gavin.king at jboss.com
Fri Dec 15 01:50:41 EST 2006
User: gavin
Date: 06/12/15 01:50:41
Modified: src/main/org/jboss/seam/core Validation.java
Log:
JBSEAM-580
Revision Changes Path
1.5 +17 -6 jboss-seam/src/main/org/jboss/seam/core/Validation.java
(In the diff below, changes in quantity of whitespace are not shown.)
Index: Validation.java
===================================================================
RCS file: /cvsroot/jboss/jboss-seam/src/main/org/jboss/seam/core/Validation.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -b -r1.4 -r1.5
--- Validation.java 24 Nov 2006 23:15:17 -0000 1.4
+++ Validation.java 15 Dec 2006 06:50:41 -0000 1.5
@@ -57,15 +57,26 @@
public InvalidValue[] validate(FacesContext context, String propertyExpression, Object value)
{
- int sep = propertyExpression.lastIndexOf('.');
- if (sep<=0)
+ int dot = propertyExpression.lastIndexOf('.');
+ int bracket = propertyExpression.lastIndexOf('[');
+ if (dot<=0 && bracket<=0)
{
- throw new RuntimeException("not an attribute value binding: " + propertyExpression);
+ return new InvalidValue[0];
+ }
+ String componentName;
+ String propertyName;
+ if (dot>bracket)
+ {
+ componentName = propertyExpression.substring(2, dot);
+ propertyName = propertyExpression.substring( dot+1, propertyExpression.length()-1 );
+ }
+ else
+ {
+ componentName = propertyExpression.substring(2, bracket);
+ propertyName = propertyExpression.substring( bracket+1, propertyExpression.length()-2 );
}
- String componentName = propertyExpression.substring(2, sep);
- String modelExpression = propertyExpression.substring(0, sep) + '}';
- String propertyName = propertyExpression.substring( modelExpression.length(), propertyExpression.length()-1 );
+ String modelExpression = propertyExpression.substring(0, dot) + '}';
Object model = context.getApplication().createValueBinding(modelExpression).getValue(context);
ClassValidator validator = getValidator( model.getClass(), componentName );
return validator.getPotentialInvalidValues(propertyName, value);
More information about the jboss-cvs-commits
mailing list