@Override public boolean matches(LiteralTree literalTree, VisitorState state) { if (literalTree.getKind() == Kind.LONG_LITERAL) { // The javac AST doesn't seem to record whether the suffix is present, or whether it's // an 'l' or 'L'. We have to look at the original source String longLiteral = getLongLiteral(literalTree, state); return longLiteral != null && longLiteral.endsWith("l"); } else { return false; } } };
@Override public boolean matches(LiteralTree literalTree, VisitorState state) { if (literalTree.getKind() == Kind.LONG_LITERAL) { // The javac AST doesn't seem to record whether the suffix is present, or whether it's // an 'l' or 'L'. We have to look at the original source String longLiteral = getLongLiteral(literalTree, state); return longLiteral != null && longLiteral.endsWith("l"); } else { return false; } } };
private Object literalValue(Tree arg) { if (!(arg instanceof LiteralTree)) { return null; } return ((LiteralTree) arg).getValue(); } }
public CharacterLiteralNode(LiteralTree t) { super(t); assert t.getKind().equals(Tree.Kind.CHAR_LITERAL); }
private boolean canBooleanExpressionEvalToTrue(ExpressionTree expressionTree) { if (expressionTree instanceof LiteralTree) { LiteralTree expressionAsLiteral = (LiteralTree) expressionTree; if (expressionAsLiteral.getValue() instanceof Boolean) { return (boolean) expressionAsLiteral.getValue(); } else { throw new RuntimeException("not a boolean expression!"); } } // We are fairly conservative, anything other than 'return false;' is assumed to potentially be // true. // No SAT-solving or any other funny business. return true; }
public NullLiteralNode(LiteralTree t) { super(t); assert t.getKind().equals(Tree.Kind.NULL_LITERAL); }
@Override public boolean matches(ExpressionTree expressionTree, VisitorState state) { if (expressionTree instanceof LiteralTree) { LiteralTree literalTree = (LiteralTree) expressionTree; Object actualValue = literalTree.getValue(); return actualValue instanceof String && pattern.matcher((String) actualValue).matches(); } else { return false; } } }
private UsageStatus getUseStatus(LiteralTree tree) { if(tree.getKind() == Tree.Kind.STRING_LITERAL && vbExpression.equals(tree.getValue())) { if(getEnclosingMethodName(getCurrentPath()).equals("_init")) { return UsageStatus.INIT_USE_ONLY; }else { return UsageStatus.USED; } }else { return UsageStatus.NOT_USED; } }
public DoubleLiteralNode(LiteralTree t) { super(t); assert t.getKind().equals(Tree.Kind.DOUBLE_LITERAL); }
private boolean matches(List<? extends ExpressionTree> expressionTrees) { Set<Integer> foundValues = new HashSet<>(); for (Tree tree : expressionTrees) { if (tree instanceof LiteralTree) { Object value = ((LiteralTree) tree).getValue(); if (value instanceof Integer) { boolean duplicate = !foundValues.add((Integer) value); if (!duplicate && foundValues.size() > 1) { return true; } } } } return false; } }
public ShortLiteralNode(LiteralTree t) { super(t); assert t.getKind().equals(Tree.Kind.INT_LITERAL); }
@Override public boolean matches(ExpressionTree expressionTree, VisitorState state) { if (expressionTree.getKind() == Kind.INT_LITERAL) { return ((Integer) ((LiteralTree) expressionTree).getValue()).equals(value); } return false; } };
public IntegerLiteralNode(LiteralTree t) { super(t); assert t.getKind().equals(Tree.Kind.INT_LITERAL); }
@Override public boolean matches(ExpressionTree expressionTree, VisitorState state) { if (expressionTree.getKind() == Tree.Kind.BOOLEAN_LITERAL) { return value == (Boolean) (((LiteralTree) expressionTree).getValue()); } return false; } };