@Override public Set<String> getKnownVariables() { Set<String> knownVariables = new HashSet<String>(); knownVariables.addAll(proxy.keySet()); knownVariables.addAll(context.keySet()); return knownVariables; }
@Override public VariableResolver getVariableResolver(String name) { if (variableResolvers == null) variableResolvers = new HashMap<String, VariableResolver>(); VariableResolver vr = variableResolvers.get(name); if (vr != null) { return vr; } else if (proxy.containsKey(name)) { vr = new ProxyResolver(proxy, proxy.get(name)); variableResolvers.put(name, vr); return vr; } else if (context.containsKey(name)) { vr = new ProcessingContextResolver(context, name); variableResolvers.put(name, vr); return vr; } else if (nextFactory != null) { return nextFactory.getVariableResolver(name); } throw new UnresolveablePropertyException("unable to resolve variable '" + name + "'"); }
public String getName() { return proxy.getNode().getName(); }
public Node getNode() { return proxy.getNode(); }
public boolean isResolveable(String name) { return (variableResolvers != null && variableResolvers.containsKey(name)) || (proxy.containsKey(name)) || (context.containsKey(name)) || (nextFactory != null && nextFactory.isResolveable(name)); }