Search in sources :

Example 6 with Union

use of org.mvel2.ast.Union in project mvel by mikebrock.

the class ReflectiveAccessorOptimizer method optimizeCollection.

public Accessor optimizeCollection(ParserContext pCtx, Object o, Class type, char[] property, int start, int offset, Object ctx, Object thisRef, VariableResolverFactory factory) {
    this.start = this.cursor = start;
    this.length = start + offset;
    this.returnType = type;
    this.ctx = ctx;
    this.variableFactory = factory;
    this.pCtx = pCtx;
    Accessor root = _getAccessor(o, returnType);
    if (property != null && length > start) {
        return new Union(root, property, cursor, offset);
    } else {
        return root;
    }
}
Also used : PropertyTools.getFieldOrWriteAccessor(org.mvel2.util.PropertyTools.getFieldOrWriteAccessor) ExprValueAccessor(org.mvel2.optimizers.impl.refl.collection.ExprValueAccessor) PropertyTools.getFieldOrAccessor(org.mvel2.util.PropertyTools.getFieldOrAccessor) Accessor(org.mvel2.compiler.Accessor)

Aggregations

PropertyTools.getFieldOrAccessor (org.mvel2.util.PropertyTools.getFieldOrAccessor)3 PropertyTools.getFieldOrWriteAccessor (org.mvel2.util.PropertyTools.getFieldOrWriteAccessor)3 IOException (java.io.IOException)2 CompileException (org.mvel2.CompileException)2 Accessor (org.mvel2.compiler.Accessor)2 ExprValueAccessor (org.mvel2.optimizers.impl.refl.collection.ExprValueAccessor)2 Union (org.mvel2.optimizers.impl.refl.nodes.Union)2 Method (java.lang.reflect.Method)1 ParserContext (org.mvel2.ParserContext)1 ASTNode (org.mvel2.ast.ASTNode)1 BinaryOperation (org.mvel2.ast.BinaryOperation)1 LiteralNode (org.mvel2.ast.LiteralNode)1 NewObjectNode (org.mvel2.ast.NewObjectNode)1 Sign (org.mvel2.ast.Sign)1 TypeCast (org.mvel2.ast.TypeCast)1 Union (org.mvel2.ast.Union)1 AccessorNode (org.mvel2.compiler.AccessorNode)1 ExecutableAccessor (org.mvel2.compiler.ExecutableAccessor)1 ExecutableLiteral (org.mvel2.compiler.ExecutableLiteral)1 ExecutableStatement (org.mvel2.compiler.ExecutableStatement)1