InternalFactHandle handle,
Declaration[] declarations,
Declaration[] innerDeclarations,
WorkingMemory workingMemory) throws Exception {
Object[] localVars = ((MVELAccumulatorContext) context).getVariables();
DroolsMVELIndexedFactory factory = actionUnit.getFactory( null, null, handle.getObject(), (LeftTuple) leftTuple, localVars, (InternalWorkingMemory) workingMemory, workingMemory.getGlobalResolver() );
if ( reverse != null ) {
// SNAPSHOT variable values
((MVELAccumulatorContext) context).getShadow().put( handle.getId(), factory);
}
MVEL.executeExpression( this.action,
null,
factory );
if ( localVars.length > 0 ) {
for ( int i = 0; i < factory.getOtherVarsLength(); i++ ) {
localVars[i] = factory.getIndexedVariableResolver( factory.getOtherVarsPos() + i ).getValue();
}
}
((MVELAccumulatorContext) context).setVariables( localVars );
}