[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