[jboss-cvs] jboss-seam/src/main/org/jboss/seam/el ...
Gavin King
gavin.king at jboss.com
Tue May 29 20:35:18 EDT 2007
User: gavin
Date: 07/05/29 20:35:18
Modified: src/main/org/jboss/seam/el EL.java
Added: src/main/org/jboss/seam/el SeamFunctionMapper.java
Removed: src/main/org/jboss/seam/el SeamELFunctionMapper.java
Log:
rename
Revision Changes Path
1.2 +1 -1 jboss-seam/src/main/org/jboss/seam/el/EL.java
(In the diff below, changes in quantity of whitespace are not shown.)
Index: EL.java
===================================================================
RCS file: /cvsroot/jboss/jboss-seam/src/main/org/jboss/seam/el/EL.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -b -r1.1 -r1.2
--- EL.java 30 May 2007 00:19:12 -0000 1.1
+++ EL.java 30 May 2007 00:35:18 -0000 1.2
@@ -49,7 +49,7 @@
@Override
public FunctionMapper getFunctionMapper()
{
- return new SeamELFunctionMapper( new FunctionMapperImpl() );
+ return new SeamFunctionMapper( new FunctionMapperImpl() );
}
@Override
1.1 date: 2007/05/30 00:35:18; author: gavin; state: Exp;jboss-seam/src/main/org/jboss/seam/el/SeamFunctionMapper.java
Index: SeamFunctionMapper.java
===================================================================
package org.jboss.seam.el;
import java.lang.reflect.Method;
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;
/**
* Resolves Seam EL functions to their corresponding methods.
*
* @author Shane Bryzak
*/
public class SeamFunctionMapper 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(SeamFunctionMapper.class);
private FunctionMapper functionMapper;
public SeamFunctionMapper()
{
this(null);
}
public SeamFunctionMapper(FunctionMapper functionMapper)
{
this.functionMapper = functionMapper;
}
static
{
cacheMethod("hasPermission", SecurityFunctions.class, "hasPermission",
new Class[] {String.class, String.class, Object.class});
cacheMethod("hasRole", SecurityFunctions.class, "hasRole",
new Class[] { String.class });
}
@Override
public Method resolveFunction(String prefix, String localName)
{
if (SEAM_EL_PREFIX.equals(prefix))
{
return methodCache.get(localName);
}
else if (functionMapper != null)
{
return functionMapper.resolveFunction(prefix, localName);
}
else
return null;
}
private static void cacheMethod(String localName, Class cls, String name, Class[] params)
{
try
{
Method m = cls.getMethod(name, params);
methodCache.put(localName, m);
}
catch (NoSuchMethodException ex)
{
log.warn(String.format("Method %s.%s could not be cached", cls.getName(), name));
}
}
}
More information about the jboss-cvs-commits
mailing list