[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