[jboss-cvs] jboss-seam/src/main/org/jboss/seam/el ...

Gavin King gavin.king at jboss.com
Fri Jun 1 15:33:17 EDT 2007


  User: gavin   
  Date: 07/06/01 15:33:17

  Modified:    src/main/org/jboss/seam/el  SeamExpressionFactory.java
  Log:
  simplify JBoss EL integration
  
  Revision  Changes    Path
  1.2       +21 -4     jboss-seam/src/main/org/jboss/seam/el/SeamExpressionFactory.java
  
  (In the diff below, changes in quantity of whitespace are not shown.)
  
  Index: SeamExpressionFactory.java
  ===================================================================
  RCS file: /cvsroot/jboss/jboss-seam/src/main/org/jboss/seam/el/SeamExpressionFactory.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -b -r1.1 -r1.2
  --- SeamExpressionFactory.java	30 May 2007 00:19:12 -0000	1.1
  +++ SeamExpressionFactory.java	1 Jun 2007 19:33:17 -0000	1.2
  @@ -28,6 +28,8 @@
   import javax.el.ValueExpression;
   import javax.faces.event.FacesEvent;
   
  +import org.jboss.el.lang.EvaluationContext;
  +
   
   /**
    * Allows JSF action listener methods to not declare the
  @@ -48,6 +50,21 @@
          this.expressionFactory = expressionFactory;
       }
       
  +    /**
  +     * Wrap the base ELContext, adding Seam's FunctionMapper.
  +     * 
  +     * Thus, any expressions with s:hasRole, s:hasPermission 
  +     * must be evaluated either via Facelets/JSP (since they
  +     * are declared in the tld/taglib.xml or via the 
  +     * Expressions component.
  +     * 
  +     * @param context the JSF ELContext
  +     */
  +    private static EvaluationContext decorateELContext(ELContext context)
  +    {
  +       return new EvaluationContext( context, new SeamFunctionMapper( context.getFunctionMapper() ), context.getVariableMapper() );
  +    }
  +    
       @Override
       public Object coerceToType(Object obj, Class targetType) 
       {
  @@ -60,13 +77,13 @@
           if ( paramTypes.length==1 && FacesEvent.class.isAssignableFrom( paramTypes[0] ) )
           {
            return new OptionalParameterMethodExpression(
  -                 expressionFactory.createMethodExpression(elContext, expression, returnType, paramTypes),
  -                 expressionFactory.createMethodExpression(elContext, expression, returnType, NO_CLASSES)
  +                 expressionFactory.createMethodExpression( decorateELContext(elContext), expression, returnType, paramTypes ),
  +                 expressionFactory.createMethodExpression( decorateELContext(elContext), expression, returnType, NO_CLASSES )
                 );
           }
           else
           {
  -           return expressionFactory.createMethodExpression(elContext, expression, returnType, paramTypes);
  +           return expressionFactory.createMethodExpression( decorateELContext(elContext), expression, returnType, paramTypes );
           }
       }
       
  @@ -79,7 +96,7 @@
       @Override
       public ValueExpression createValueExpression(ELContext elContext, String expression, Class expectedType) 
       {   
  -        return expressionFactory.createValueExpression(elContext, expression, expectedType);
  +        return expressionFactory.createValueExpression( decorateELContext(elContext), expression, expectedType );
       }
       
   }
  \ No newline at end of file
  
  
  



More information about the jboss-cvs-commits mailing list