use of org.mvel2.integration.VariableResolver in project mvel by mikebrock.
the class DebugTools method getAllVariableResolvers.
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;
}
use of org.mvel2.integration.VariableResolver in project mvel by mikebrock.
the class IndexedVariableResolverFactory method createIndexedVariable.
public VariableResolver createIndexedVariable(int index, String name, Object value) {
VariableResolver r = indexedVariableResolvers[index];
r.setValue(value);
return r;
}
use of org.mvel2.integration.VariableResolver in project mvel by mikebrock.
the class Function method call.
public Object call(Object ctx, Object thisValue, VariableResolverFactory factory, Object[] parms) {
if (parms != null && parms.length != 0) {
// detect tail recursion
if (factory instanceof FunctionVariableResolverFactory && ((FunctionVariableResolverFactory) factory).getIndexedVariableResolvers().length == parms.length) {
FunctionVariableResolverFactory fvrf = (FunctionVariableResolverFactory) factory;
if (fvrf.getFunction().equals(this)) {
VariableResolver[] swapVR = fvrf.getIndexedVariableResolvers();
fvrf.updateParameters(parms);
try {
return compiledBlock.getValue(ctx, thisValue, fvrf);
} finally {
fvrf.setIndexedVariableResolvers(swapVR);
}
}
}
return compiledBlock.getValue(thisValue, new FunctionVariableResolverFactory(this, factory, parameters, parms));
} else if (cMode) {
return compiledBlock.getValue(thisValue, new DefaultLocalVariableResolverFactory(factory, parameters).setNoTilt(true));
} else {
return compiledBlock.getValue(thisValue, new DefaultLocalVariableResolverFactory(factory, parameters).setNoTilt(true));
}
}
use of org.mvel2.integration.VariableResolver in project mvel by mikebrock.
the class IndexedOperativeAssign method getReducedValue.
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;
}
use of org.mvel2.integration.VariableResolver in project mvel by mikebrock.
the class IndexedPreFixIncNode method getReducedValueAccelerated.
public Object getReducedValueAccelerated(Object ctx, Object thisValue, VariableResolverFactory factory) {
VariableResolver vResolver = factory.getIndexedVariableResolver(register);
vResolver.setValue(ctx = MathProcessor.doOperations(vResolver.getValue(), Operator.ADD, DataTypes.INTEGER, 1));
return ctx;
}
Aggregations