diff options
Diffstat (limited to 'src/main/java/com/google/escapevelocity/EvaluationContext.java')
-rw-r--r-- | src/main/java/com/google/escapevelocity/EvaluationContext.java | 16 |
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); + } } } |