public static TernaryExpression ternaryX(Expression cond, Expression trueExpr, Expression elseExpr) { return new TernaryExpression( cond instanceof BooleanExpression ? (BooleanExpression) cond : new BooleanExpression(cond), trueExpr, elseExpr); }
@Override public Expression wrapLoggingMethodCall(Expression logVariable, String methodName, Expression originalExpression) { MethodCallExpression condition = new MethodCallExpression( logVariable, "is" + methodName.substring(0, 1).toUpperCase(Locale.ENGLISH) + methodName.substring(1) + "Enabled", ArgumentListExpression.EMPTY_ARGUMENTS); condition.setImplicitThis(false); return new TernaryExpression( new BooleanExpression(condition), originalExpression, ConstantExpression.NULL); } }
@Override public Expression wrapLoggingMethodCall(Expression logVariable, String methodName, Expression originalExpression) { MethodCallExpression condition = new MethodCallExpression( logVariable, "is" + methodName.substring(0, 1).toUpperCase(Locale.ENGLISH) + methodName.substring(1) + "Enabled", ArgumentListExpression.EMPTY_ARGUMENTS); condition.setImplicitThis(false); return new TernaryExpression( new BooleanExpression(condition), originalExpression, ConstantExpression.NULL); } }
@Override public Expression wrapLoggingMethodCall(Expression logVariable, String methodName, Expression originalExpression) { MethodCallExpression condition = new MethodCallExpression( logVariable, "is" + methodName.substring(0, 1).toUpperCase(Locale.ENGLISH) + methodName.substring(1) + "Enabled", ArgumentListExpression.EMPTY_ARGUMENTS); condition.setImplicitThis(false); return new TernaryExpression( new BooleanExpression(condition), originalExpression, ConstantExpression.NULL); } }
public Expression transformExpression(ExpressionTransformer transformer) { Expression ret = new TernaryExpression( (BooleanExpression) transformer.transform(booleanExpression), transformer.transform(trueExpression), transformer.transform(falseExpression)); ret.setSourcePosition(this); ret.copyNodeMetaData(this); return ret; }
@Override public Expression wrapLoggingMethodCall(Expression logVariable, String methodName, Expression originalExpression) { final MethodCallExpression condition; if (!"trace".equals(methodName)) { AttributeExpression logLevelExpression = new AttributeExpression( new ClassExpression(classNode(PRIORITY_NAME)), new ConstantExpression(methodName.toUpperCase(Locale.ENGLISH))); ArgumentListExpression args = new ArgumentListExpression(); args.addExpression(logLevelExpression); condition = new MethodCallExpression(logVariable, "isEnabledFor", args); } else { // log4j api is inconsistent, so trace requires special handling condition = new MethodCallExpression( logVariable, "is" + methodName.substring(0, 1).toUpperCase(Locale.ENGLISH) + methodName.substring(1) + "Enabled", ArgumentListExpression.EMPTY_ARGUMENTS); } condition.setImplicitThis(false); return new TernaryExpression( new BooleanExpression(condition), originalExpression, ConstantExpression.NULL); } }
@Override public void visitTernaryExpression(TernaryExpression expr) { TernaryExpression conversion = new TernaryExpression( convertCompatibly(expr.getBooleanExpression()), convert(expr.getTrueExpression()), convert(expr.getFalseExpression())); conversion.setSourcePosition(expr); result = record(conversion); }
@Override public Expression wrapLoggingMethodCall(Expression logVariable, String methodName, Expression originalExpression) { AttributeExpression logLevelExpression = new AttributeExpression( new ClassExpression(LEVEL_CLASSNODE), new ConstantExpression(methodName.toUpperCase(Locale.ENGLISH))); ArgumentListExpression args = new ArgumentListExpression(); args.addExpression(logLevelExpression); MethodCallExpression condition = new MethodCallExpression(logVariable, "isLoggable", args); condition.setImplicitThis(false); return new TernaryExpression( new BooleanExpression(condition), originalExpression, ConstantExpression.NULL); } }
@Override public void visitTernaryExpression(TernaryExpression expr) { TernaryExpression result = new TernaryExpression( (BooleanExpression)replaceExpr(expr.getBooleanExpression()), replaceExpr(expr.getTrueExpression()), replaceExpr(expr.getFalseExpression())); result.setType(expr.getType()); result.setSourcePosition(expr); replaceVisitedExpressionWith(result); }
protected Expression ternaryExpression(AST ternaryNode) { AST node = ternaryNode.getFirstChild(); Expression base = expression(node); node = node.getNextSibling(); Expression left = expression(node); node = node.getNextSibling(); Expression ret; if (node == null) { ret = new ElvisOperatorExpression(base, left); } else { Expression right = expression(node); BooleanExpression booleanExpression = new BooleanExpression(base); booleanExpression.setSourcePosition(base); ret = new TernaryExpression(booleanExpression, left, right); } configureAST(ret, ternaryNode); return ret; }
private TernaryExpression createStaticReceiver(final Expression receiver) { return new TernaryExpression( new BooleanExpression(new BinaryExpression( receiver, Token.newSymbol(Types.KEYWORD_INSTANCEOF, -1, -1), new ClassExpression(ClassHelper.CLASS_Type) )), receiver, new MethodCallExpression(createFieldHelperReceiver(), "getClass", ArgumentListExpression.EMPTY_ARGUMENTS) ); }
); compareIdentity.putNodeMetaData(StaticTypesMarker.INFERRED_RETURN_TYPE, ClassHelper.boolean_TYPE); TernaryExpression result = new TernaryExpression( new BooleanExpression(compareIdentity), // a==b CONSTANT_ZERO, new TernaryExpression( new BooleanExpression(new CompareToNullExpression(left, true)), // a==null CONSTANT_MINUS_ONE, new TernaryExpression( new BooleanExpression(new CompareToNullExpression(right, true)), // b==null CONSTANT_ONE,
private Expression convertInOperatorToTernary(final BinaryExpression bin, final Expression rightExpression, final Expression leftExpression) { MethodCallExpression call = new MethodCallExpression( rightExpression, "isCase", leftExpression ); call.setMethodTarget((MethodNode) bin.getNodeMetaData(StaticTypesMarker.DIRECT_METHOD_CALL_TARGET)); call.setSourcePosition(bin); call.copyNodeMetaData(bin); TernaryExpression tExp = new TernaryExpression( new BooleanExpression( new BinaryExpression(rightExpression, Token.newSymbol("==", -1, -1), new ConstantExpression(null)) ), new BinaryExpression(leftExpression, Token.newSymbol("==", -1, -1), new ConstantExpression(null)), call ); return staticCompilationTransformer.transform(tExp); }
public Expression wrapLoggingMethodCall(Expression logVariable, String methodName, Expression originalExpression) { MethodCallExpression condition = new MethodCallExpression( logVariable, "is" + methodName.substring(0, 1).toUpperCase() + methodName.substring(1, methodName.length()) + "Enabled", ArgumentListExpression.EMPTY_ARGUMENTS); return new TernaryExpression( new BooleanExpression(condition), originalExpression, ConstantExpression.NULL); } }
public Expression wrapLoggingMethodCall(Expression logVariable, String methodName, Expression originalExpression) { MethodCallExpression condition = new MethodCallExpression( logVariable, "is" + methodName.substring(0, 1).toUpperCase() + methodName.substring(1, methodName.length()) + "Enabled", ArgumentListExpression.EMPTY_ARGUMENTS); return new TernaryExpression( new BooleanExpression(condition), originalExpression, ConstantExpression.NULL); } }
public Expression transformExpression(ExpressionTransformer transformer) { Expression ret = new TernaryExpression( (BooleanExpression) transformer.transform(booleanExpression), transformer.transform(trueExpression), transformer.transform(falseExpression)); ret.setSourcePosition(this); return ret; }
public Expression transformExpression(ExpressionTransformer transformer) { Expression ret = new TernaryExpression( (BooleanExpression) transformer.transform(booleanExpression), transformer.transform(trueExpression), transformer.transform(falseExpression)); ret.setSourcePosition(this); return ret; }
public Expression transformExpression(ExpressionTransformer transformer) { Expression ret = new TernaryExpression( (BooleanExpression) transformer.transform(booleanExpression), transformer.transform(trueExpression), transformer.transform(falseExpression)); ret.setSourcePosition(this); return ret; }
public Expression transformExpression(ExpressionTransformer transformer) { Expression ret = new TernaryExpression( (BooleanExpression) transformer.transform(booleanExpression), transformer.transform(trueExpression), transformer.transform(falseExpression)); ret.setSourcePosition(this); return ret; }
@Override public void visitTernaryExpression(TernaryExpression expr) { TernaryExpression result = new TernaryExpression( (BooleanExpression) replaceExpr(expr.getBooleanExpression()), replaceExpr(expr.getTrueExpression()), replaceExpr(expr.getFalseExpression())); result.setType(expr.getType()); result.setSourcePosition(expr); replaceVisitedExpressionWith(result); }