aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/com/google/escapevelocity/EvaluationContext.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/com/google/escapevelocity/EvaluationContext.java')
-rw-r--r--src/main/java/com/google/escapevelocity/EvaluationContext.java16
1 files changed, 14 insertions, 2 deletions
diff --git a/src/main/java/com/google/escapevelocity/EvaluationContext.java b/src/main/java/com/google/escapevelocity/EvaluationContext.java
index d2f2914..d40b717 100644
--- a/src/main/java/com/google/escapevelocity/EvaluationContext.java
+++ b/src/main/java/com/google/escapevelocity/EvaluationContext.java
@@ -15,6 +15,8 @@
*/
package com.google.escapevelocity;
+import com.google.common.collect.ImmutableSet;
+import java.lang.reflect.Method;
import java.util.Map;
import java.util.TreeMap;
@@ -40,11 +42,16 @@ interface EvaluationContext {
*/
Runnable setVar(final String var, Object value);
+ /** See {@link MethodFinder#publicMethodsWithName}. */
+ ImmutableSet<Method> publicMethodsWithName(Class<?> startClass, String name);
+
class PlainEvaluationContext implements EvaluationContext {
private final Map<String, Object> vars;
+ private final MethodFinder methodFinder;
- PlainEvaluationContext(Map<String, ?> vars) {
- this.vars = new TreeMap<String, Object>(vars);
+ PlainEvaluationContext(Map<String, ?> vars, MethodFinder methodFinder) {
+ this.vars = new TreeMap<>(vars);
+ this.methodFinder = methodFinder;
}
@Override
@@ -69,5 +76,10 @@ interface EvaluationContext {
vars.put(var, value);
return undo;
}
+
+ @Override
+ public ImmutableSet<Method> publicMethodsWithName(Class<?> startClass, String name) {
+ return methodFinder.publicMethodsWithName(startClass, name);
+ }
}
}