@Override void accept(ExpressionWriter writer, int lprec, int rprec) { if (writer.requireParentheses(this, lprec, rprec)) { return; } if (expression != null) { expression.accept(writer, lprec, nodeType.lprec); } else { assert (field.getModifiers() & Modifier.STATIC) != 0; writer.append(field.getDeclaringClass()); } writer.append('.').append(field.getName()); }
public Object evaluate(Evaluator evaluator) { final Object o = expression == null ? null : expression.evaluate(evaluator); try { return field.get(o); } catch (IllegalAccessException e) { throw new RuntimeException("error while evaluating " + this, e); } }
public MemberExpression(Expression expression, PseudoField field) { super(ExpressionType.MemberAccess, field.getType()); assert field != null : "field should not be null"; assert expression != null || Modifier.isStatic(field.getModifiers()) : "must specify expression if field is not static"; this.expression = expression; this.field = field; }
toRex( ((MemberExpression) expression).expression), ((MemberExpression) expression).field.getName(), true); case GreaterThan:
@Override public Expression visit(MemberExpression memberExpression, Expression expression) { Expression result = super.visit(memberExpression, expression); if (isConstant(expression) && Modifier.isFinal(memberExpression.field.getModifiers())) { constants.put(result, true); } return result; }
toRex( ((MemberExpression) expression).expression), ((MemberExpression) expression).field.getName(), true); case GreaterThan:
toRex( ((MemberExpression) expression).expression), ((MemberExpression) expression).field.getName(), true); case GreaterThan: