protected static boolean isNullConstant(final Expression expression) { return expression instanceof ConstantExpression && ((ConstantExpression) expression).isNullExpression(); }
public boolean isReturningNullOrVoid() { return expression instanceof ConstantExpression && ((ConstantExpression)expression).isNullExpression(); }
@Nullable public static Expression getAssertionMessage(AssertStatement stat) { Expression msg = stat.getMessageExpression(); if (msg == null) return null; // should not happen if (!(msg instanceof ConstantExpression)) return msg; return ((ConstantExpression) msg).isNullExpression() ? null : msg; }
private static Statement createConstructorStatementGuarded(ClassNode cNode, FieldNode fNode, boolean namedArgs, List<String> knownImmutables, List<String> knownImmutableClasses) { final Expression fieldExpr = propX(varX("this"), fNode.getName()); Expression initExpr = fNode.getInitialValueExpression(); final Statement assignInit; if (initExpr == null || (initExpr instanceof ConstantExpression && ((ConstantExpression) initExpr).isNullExpression())) { assignInit = assignS(fieldExpr, ConstantExpression.EMPTY_EXPRESSION); } else { assignInit = assignS(fieldExpr, checkUnresolved(fNode, initExpr, knownImmutables, knownImmutableClasses)); } Expression param = getParam(fNode, namedArgs); Statement assignStmt = assignS(fieldExpr, checkUnresolved(fNode, param, knownImmutables, knownImmutableClasses)); return assignWithDefault(namedArgs, assignInit, param, assignStmt); }
private static Statement createConstructorStatementDate(FieldNode fNode, boolean namedArgs) { final Expression fieldExpr = propX(varX("this"), fNode.getName()); Expression initExpr = fNode.getInitialValueExpression(); final Statement assignInit; if (initExpr == null || (initExpr instanceof ConstantExpression && ((ConstantExpression) initExpr).isNullExpression())) { assignInit = assignS(fieldExpr, ConstantExpression.EMPTY_EXPRESSION); } else { assignInit = assignS(fieldExpr, cloneDateExpr(initExpr)); } final Expression param = getParam(fNode, namedArgs); Statement assignStmt = assignS(fieldExpr, cloneDateExpr(param)); return assignWithDefault(namedArgs, assignInit, param, assignStmt); }
private static Statement createConstructorStatementArrayOrCloneable(FieldNode fNode, boolean namedArgs) { final Expression fieldExpr = propX(varX("this"), fNode.getName()); final Expression initExpr = fNode.getInitialValueExpression(); final ClassNode fieldType = fNode.getType(); final Expression param = getParam(fNode, namedArgs); final Statement assignInit; if (initExpr == null || (initExpr instanceof ConstantExpression && ((ConstantExpression) initExpr).isNullExpression())) { assignInit = assignS(fieldExpr, ConstantExpression.EMPTY_EXPRESSION); } else { assignInit = assignS(fieldExpr, cloneArrayOrCloneableExpr(initExpr, fieldType)); } Statement assignStmt = assignS(fieldExpr, cloneArrayOrCloneableExpr(param, fieldType)); return assignWithDefault(namedArgs, assignInit, param, assignStmt); }
private static Statement createConstructorStatementDefault(FieldNode fNode, boolean namedArgs) { final ClassNode fType = fNode.getType(); final Expression fieldExpr = propX(varX("this"), fNode.getName()); Expression initExpr = fNode.getInitialValueExpression(); Statement assignInit; if (initExpr == null || (initExpr instanceof ConstantExpression && ((ConstantExpression)initExpr).isNullExpression())) { if (ClassHelper.isPrimitiveType(fType)) { assignInit = EmptyStatement.INSTANCE; } else { assignInit = assignS(fieldExpr, ConstantExpression.EMPTY_EXPRESSION); } } else { assignInit = assignS(fieldExpr, initExpr); } fNode.setInitialValueExpression(null); Expression param = getParam(fNode, namedArgs); Statement assignStmt = assignS(fieldExpr, castX(fType, param)); return assignWithDefault(namedArgs, assignInit, param, assignStmt); }
public static Statement createConstructorStatementDefault(FieldNode fNode) { final String name = fNode.getName(); final ClassNode fType = fNode.getType(); final Expression fieldExpr = propX(varX("this"), name); Expression initExpr = fNode.getInitialValueExpression(); Statement assignInit; if (initExpr == null || (initExpr instanceof ConstantExpression && ((ConstantExpression)initExpr).isNullExpression())) { if (ClassHelper.isPrimitiveType(fType)) { assignInit = EmptyStatement.INSTANCE; } else { assignInit = assignS(fieldExpr, ConstantExpression.EMPTY_EXPRESSION); } } else { assignInit = assignS(fieldExpr, initExpr); } fNode.setInitialValueExpression(null); Expression value = findArg(name); return ifElseS(equalsNullX(value), assignInit, assignS(fieldExpr, castX(fType, value))); }
private Statement createConstructorStatementCollection(FieldNode fNode, boolean namedArgs) { final Expression fieldExpr = propX(varX("this"), fNode.getName()); ClassNode fieldType = fieldExpr.getType(); Expression initExpr = fNode.getInitialValueExpression(); final Statement assignInit; if (initExpr == null || (initExpr instanceof ConstantExpression && ((ConstantExpression) initExpr).isNullExpression())) { assignInit = assignS(fieldExpr, ConstantExpression.EMPTY_EXPRESSION); } else { assignInit = assignS(fieldExpr, cloneCollectionExpr(initExpr, fieldType)); } Expression param = getParam(fNode, namedArgs); Statement assignStmt = ifElseS( isInstanceOfX(param, CLONEABLE_TYPE), assignS(fieldExpr, cloneCollectionExpr(cloneArrayOrCloneableExpr(param, fieldType), fieldType)), assignS(fieldExpr, cloneCollectionExpr(param, fieldType))); return assignWithDefault(namedArgs, assignInit, param, assignStmt); }
private Statement createLegacyConstructorStatementMapSpecial(FieldNode fNode) { final Expression fieldExpr = varX(fNode); final ClassNode fieldType = fieldExpr.getType(); final Expression initExpr = fNode.getInitialValueExpression(); final Statement assignInit; if (initExpr == null || (initExpr instanceof ConstantExpression && ((ConstantExpression) initExpr).isNullExpression())) { assignInit = assignS(fieldExpr, ConstantExpression.EMPTY_EXPRESSION); } else { assignInit = assignS(fieldExpr, cloneCollectionExpr(initExpr, fieldType)); } Expression namedArgs = findArg(fNode.getName()); Expression baseArgs = varX("args"); Statement assignStmt = ifElseS( equalsNullX(namedArgs), ifElseS( isTrueX(callX(baseArgs, "containsKey", constX(fNode.getName()))), assignS(fieldExpr, namedArgs), assignS(fieldExpr, cloneCollectionExpr(baseArgs, fieldType))), ifElseS( isOneX(callX(baseArgs, "size")), assignS(fieldExpr, cloneCollectionExpr(namedArgs, fieldType)), assignS(fieldExpr, cloneCollectionExpr(baseArgs, fieldType))) ); return ifElseS(equalsNullX(baseArgs), assignInit, assignStmt); }
/** * Tells you if the expression is the null literal. * @param expression * expression. * @return * as described */ public static boolean isNull(ASTNode expression) { return expression instanceof ConstantExpression && ((ConstantExpression)expression).isNullExpression(); }
public boolean isReturningNullOrVoid() { return expression instanceof ConstantExpression && ((ConstantExpression)expression).isNullExpression(); } }
public boolean isReturningNullOrVoid() { return expression instanceof ConstantExpression && ((ConstantExpression)expression).isNullExpression(); } }
public boolean isReturningNullOrVoid() { return expression instanceof ConstantExpression && ((ConstantExpression)expression).isNullExpression(); } }
if (!constantExpression.isNullExpression()) { constantExpression.setType(new ClassNode(constantExpression.getValue().getClass()));