/** * @see org.mvel2.integration.impl.BaseVariableResolverFactory#getVariableResolver(java.lang.String) */ @Override public VariableResolver getVariableResolver(String name) { VariableResolver vr = variableResolvers.get(name); return vr != null ? vr : (nextFactory == null ? null : nextFactory.getVariableResolver(name)); }
public Object getReducedValue(Object ctx, Object thisValue, VariableResolverFactory factory) { if (!factory.isResolveable(name)) factory.createVariable(name, null, egressType); else throw new RuntimeException("variable defined within scope: " + name); return null; }
public VariableResolver createVariable(String name, Object value) { VariableResolverFactory delegate = getDelegate(); VariableResolverFactory nextFactory = delegate.getNextFactory(); delegate.setNextFactory(null); VariableResolver resolver = delegate.createVariable(name, value); delegate.setNextFactory(nextFactory); return resolver; } }
public void appendFactory(VariableResolverFactory resolverFactory) { if (nextFactory == null) { nextFactory = resolverFactory; } else { VariableResolverFactory vrf = nextFactory; while (vrf.getNextFactory() != null) { vrf = vrf.getNextFactory(); } vrf.setNextFactory(nextFactory); } }
public void testFunctionReuse() { VariableResolverFactory functionFactory = new MapVariableResolverFactory(); MVEL.eval("def foo() { \"foo\"; }; def bar() { \"bar\" };", functionFactory); VariableResolverFactory myVarFactory = new MapVariableResolverFactory(); myVarFactory.setNextFactory(functionFactory); Serializable s = MVEL.compileExpression("foo() + bar();"); assertEquals("foobar", MVEL.executeExpression(s, myVarFactory)); }
public void testThisReferenceMapVirtualObjects1() { // Create our root Map object Map<String, String> map = new HashMap<String, String>(); map.put("foo", "bar"); VariableResolverFactory factory = new MapVariableResolverFactory(new HashMap<String, Object>()); factory.createVariable("this", map); OptimizerFactory.setDefaultOptimizer("reflective"); // Run test assertEquals(true, executeExpression(compileExpression("this.foo == 'bar'"), map, factory)); }
public Object getReducedValue(Object ctx, Object thisValue, VariableResolverFactory factory) { checkNameSafety(name); if (col) { MVEL.setProperty(factory.getIndexedVariableResolver(register).getValue(), new String(index), ctx = MVEL.eval(stmt, ctx, factory)); } else { factory.createIndexedVariable(register, name, ctx = MVEL.eval(stmt, ctx, factory)); } return ctx; }
public Object getReducedValue(Object ctx, Object thisValue, VariableResolverFactory factory) { VariableResolver resolver = factory.getVariableResolver(varName); resolver.setValue(ctx = MathProcessor.doOperations(resolver.getValue(), operation, eval(expr, start, offset, ctx, factory))); return ctx; } }
public Object getReducedValue(Object ctx, Object thisValue, VariableResolverFactory factory) { factory.createVariable(name, ctx = eval(expr, start, offset, thisValue, factory), egressType); return ctx; }
public Object getReducedValue(Object ctx, Object thisValue, VariableResolverFactory factory) { checkNameSafety(varName); if (col) { PropertyAccessor.set(factory.getVariableResolver(varName).getValue(), factory, index, ctx = MVEL.eval(stmt, ctx, factory)); } else { return factory.createVariable(varName, MVEL.eval(stmt, ctx, factory)).getValue(); } return ctx; }
public Object getReducedValue(Object ctx, Object thisValue, VariableResolverFactory factory) { VariableResolver resolver = factory.getIndexedVariableResolver(register); resolver.setValue(ctx = MathProcessor.doOperations(resolver.getValue(), operation, eval(expr, start, offset, ctx, factory))); return ctx; } }
public <T> T eval(String formula, Map<String, Object> context, Class<T> toType) { VariableResolverFactory myVariableResolverFactory = new MapVariableResolverFactory(); myVariableResolverFactory.setNextFactory(functionFactory); return MVEL.eval(formula, context, myVariableResolverFactory, toType); } }
public static Map<String, VariableResolver> getAllVariableResolvers(VariableResolverFactory rootFactory) { Map<String, VariableResolver> allVariableResolvers = new HashMap<String, VariableResolver>(); VariableResolverFactory vrf = rootFactory; do { for (String var : vrf.getKnownVariables()) { allVariableResolvers.put(var, vrf.getVariableResolver(var)); } } while ((vrf = vrf.getNextFactory()) != null); return allVariableResolvers; }
@Override public VariableResolver getVariableResolver(String name) { if (isResolveable(name) && !protoContext.isResolveable(name)) { return nextFactory.getVariableResolver(name); } else { return protoContext.getVariableResolver(name); } }
public Object getReducedValueAccelerated(Object ctx, Object thisValue, VariableResolverFactory factory) { PrototypalFunctionInstance instance = new PrototypalFunctionInstance(this, new MapVariableResolverFactory()); if (name != null) { if (!factory.isIndexedFactory() && factory.isResolveable(name)) throw new CompileException("duplicate function: " + name, expr, start); factory.createVariable(name, instance); } return instance; }
public void insertFactory(VariableResolverFactory resolverFactory) { if (nextFactory == null) { nextFactory = resolverFactory; } else { resolverFactory.setNextFactory(nextFactory = resolverFactory); } }
/** * Returns true if the variable is defined within the MVEL Context. * * @param var * @return */ public boolean isdef(String var) { return variableResolverFactory.isResolveable(var); }
public Object getReducedValue(Object ctx, Object thisValue, VariableResolverFactory factory) { checkNameSafety(varName); MVELInterpretedRuntime runtime = new MVELInterpretedRuntime(expr, start, offset, ctx, factory, pCtx); if (col) { PropertyAccessor.set(factory.getVariableResolver(varName).getValue(), factory, index, ctx = runtime.parse(), pCtx); } else { return factory.createVariable(varName, runtime.parse()).getValue(); } return ctx; }
MVELDialectRuntimeData data = ( MVELDialectRuntimeData ) ((KnowledgePackageImpl) pkg).getDialectRuntimeRegistry().getDialectData( id ); factory.setNextFactory( data.getFunctionFactory() );
public int onBreak(Frame frame) { System.out.println("onBreak"); for (String var: frame.getFactory().getKnownVariables()) { knownVariables.add(var); } return 0; } });