Search in sources :

Example 1 with InvocationExpression

use of com.trigersoft.jaque.expression.InvocationExpression in project yyl_example by Relucent.

the class JaqueExample method property.

public static <T> void property(Property<T, ?> propertyRef) {
    LambdaExpression<Function<T, ?>> parsed = LambdaExpression.parse(propertyRef);
    // Use parsed Expression Tree...
    Expression body = parsed.getBody();
    Expression methodCall = body;
    System.out.println("body:\n" + body);
    // remove casts
    while (methodCall instanceof UnaryExpression) {
        methodCall = ((UnaryExpression) methodCall).getFirst();
    }
    // checks are omitted for brevity
    MemberExpression invexp = (MemberExpression) ((InvocationExpression) methodCall).getTarget();
    Member member = invexp.getMember();
    System.out.println("member:\n" + member);
    System.out.println();
}
Also used : Function(java.util.function.Function) MemberExpression(com.trigersoft.jaque.expression.MemberExpression) Expression(com.trigersoft.jaque.expression.Expression) InvocationExpression(com.trigersoft.jaque.expression.InvocationExpression) MemberExpression(com.trigersoft.jaque.expression.MemberExpression) UnaryExpression(com.trigersoft.jaque.expression.UnaryExpression) LambdaExpression(com.trigersoft.jaque.expression.LambdaExpression) UnaryExpression(com.trigersoft.jaque.expression.UnaryExpression) Member(java.lang.reflect.Member)

Aggregations

Expression (com.trigersoft.jaque.expression.Expression)1 InvocationExpression (com.trigersoft.jaque.expression.InvocationExpression)1 LambdaExpression (com.trigersoft.jaque.expression.LambdaExpression)1 MemberExpression (com.trigersoft.jaque.expression.MemberExpression)1 UnaryExpression (com.trigersoft.jaque.expression.UnaryExpression)1 Member (java.lang.reflect.Member)1 Function (java.util.function.Function)1