[jboss-cvs] jboss-seam/src/main/org/jboss/seam/jsf ...
Gavin King
gavin.king at jboss.com
Wed May 16 11:48:37 EDT 2007
User: gavin
Date: 07/05/16 11:48:37
Modified: src/main/org/jboss/seam/jsf SeamELFunctionMapper.java
Log:
use delegation instead
Revision Changes Path
1.5 +19 -7 jboss-seam/src/main/org/jboss/seam/jsf/SeamELFunctionMapper.java
(In the diff below, changes in quantity of whitespace are not shown.)
Index: SeamELFunctionMapper.java
===================================================================
RCS file: /cvsroot/jboss/jboss-seam/src/main/org/jboss/seam/jsf/SeamELFunctionMapper.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -b -r1.4 -r1.5
--- SeamELFunctionMapper.java 3 Apr 2007 22:41:32 -0000 1.4
+++ SeamELFunctionMapper.java 16 May 2007 15:48:37 -0000 1.5
@@ -4,27 +4,34 @@
import java.util.HashMap;
import java.util.Map;
+import javax.el.FunctionMapper;
+
import org.jboss.seam.log.LogProvider;
import org.jboss.seam.log.Logging;
import org.jboss.seam.security.SecurityFunctions;
-import org.jboss.el.lang.FunctionMapperImpl;
-
/**
* Resolves Seam EL functions to their corresponding methods.
*
* @author Shane Bryzak
*/
-public class SeamELFunctionMapper extends FunctionMapperImpl
+public class SeamELFunctionMapper extends FunctionMapper
{
private static final String SEAM_EL_PREFIX = "s";
private static Map<String,Method> methodCache = new HashMap<String,Method>();
- private static final LogProvider log = Logging
- .getLogProvider(SeamELFunctionMapper.class);
+ private static final LogProvider log = Logging.getLogProvider(SeamELFunctionMapper.class);
+
+ private FunctionMapper functionMapper;
+
+ public SeamELFunctionMapper(FunctionMapper functionMapper)
+ {
+ this.functionMapper = functionMapper;
+ }
- static {
+ static
+ {
cacheMethod("hasPermission", SecurityFunctions.class, "hasPermission",
new Class[] {String.class, String.class, Object.class});
cacheMethod("hasRole", SecurityFunctions.class, "hasRole",
@@ -35,9 +42,13 @@
public Method resolveFunction(String prefix, String localName)
{
if (SEAM_EL_PREFIX.equals(prefix))
+ {
return methodCache.get(localName);
+ }
else
- return super.resolveFunction(prefix, localName);
+ {
+ return functionMapper.resolveFunction(prefix, localName);
+ }
}
private static void cacheMethod(String localName, Class cls, String name, Class[] params)
@@ -52,4 +63,5 @@
log.warn(String.format("Method %s.%s could not be cached", cls.getName(), name));
}
}
+
}
More information about the jboss-cvs-commits
mailing list