/** * @param literalTree string literal argument of jQuery() * @return true if argument looks like HTML (e.g. "<div></div>") */ private static boolean isElementCreation(LiteralTree literalTree) { Preconditions.checkArgument(literalTree.is(Tree.Kind.STRING_LITERAL)); String value = literalTree.value(); value = value.substring(1, value.length() - 1); return value.startsWith("<") && value.endsWith(">"); }
@Override public void visitLiteral(LiteralTree tree) { if (tree.is(Tree.Kind.NUMERIC_LITERAL)) { ((LiteralTreeImpl) tree).addType(PrimitiveType.NUMBER); } else if (tree.is(Tree.Kind.STRING_LITERAL)) { ((LiteralTreeImpl) tree).addType(PrimitiveType.STRING); } else if (tree.is(Tree.Kind.BOOLEAN_LITERAL)) { ((LiteralTreeImpl) tree).addType(PrimitiveType.BOOLEAN); } }
private static Integer getInteger(ExpressionTree expression) { if (expression.is(NUMERIC_LITERAL)) { LiteralTree literal = (LiteralTree) expression; Integer decoded; try { decoded = Integer.decode(literal.value()); return decoded; } catch (NumberFormatException e) { return null; } } return null; }
/** * * @param literalTree string literal argument of jQuery() * @return true if argument looks like HTML (e.g. "<div></div>") */ private static boolean isElementCreation(LiteralTree literalTree) { Preconditions.checkArgument(literalTree.is(Tree.Kind.STRING_LITERAL)); String value = literalTree.value(); value = value.substring(1, value.length() - 1); return value.startsWith("<") && value.endsWith(">"); }
@Override public void visitNode(Tree tree) { LiteralTree stringLiteral = (LiteralTree) tree; String value = stringLiteral.value(); int startIndex = value.indexOf("${"); int endIndex = value.indexOf('}'); if (startIndex != -1 && startIndex < endIndex) { addIssue(tree, String.format(MESSAGE, value.charAt(0))); } } }
private static int smallLiteralsNumber(List<ExpressionTree> operandList) { int shortLiteralsNum = 0; for (ExpressionTree operand : operandList) { if (operand.is(Kind.STRING_LITERAL) && ((LiteralTree) operand).value().length() < MIN_LITERAL_LENGTH) { shortLiteralsNum++; } } return shortLiteralsNum; }
private static Integer getInteger(ExpressionTree expression) { if (expression.is(Tree.Kind.NUMERIC_LITERAL)) { LiteralTree literal = (LiteralTree) expression; Integer decoded; try { decoded = Integer.decode(literal.value()); return decoded; } catch (NumberFormatException e) { return null; } } return null; }
private static boolean isZero(ExpressionTree expression) { return expression.is(Kind.NUMERIC_LITERAL) && "0".equals(((LiteralTree) expression).value()); }
private static boolean allSameLiteralSymbolicValue(Set<SymbolicValue> values) { Set<String> literals = new HashSet<>(); for (SymbolicValue value : values) { if (value instanceof LiteralSymbolicValue) { LiteralTree literal = ((LiteralSymbolicValue) value).getLiteral(); if (literal.is(Kind.BOOLEAN_LITERAL)) { return false; } literals.add(literal.value()); } else { return false; } } return literals.size() == 1; }
private static boolean isZero(ExpressionTree expression) { return expression.is(Kind.NUMERIC_LITERAL) && "0".equals(((LiteralTree) expression).value()); } }
@Override public void visitLiteral(LiteralTree tree) { if (tree.is(Tree.Kind.NUMERIC_LITERAL)) { String value = tree.value(); if (value.length() > 1 && value.startsWith("0")) { int newValue; try { newValue = Integer.parseInt(value, 8); } catch (NumberFormatException e) { return; } if (newValue > 9) { addIssue(tree, String.format(MESSAGE, value, newValue)); } } } }
private static boolean isZeroLiteral(ExpressionTree tree) { return tree.is(Tree.Kind.NUMERIC_LITERAL) && ((LiteralTree) tree).value().equals("0"); } }
private static boolean isZero(ExpressionTree expression) { return expression.is(Kind.NUMERIC_LITERAL) && "0".equals(((LiteralTree) expression).value()); }
private static void addImportModule(ImportDeclarationTree tree, ListMultimap<String, ImportDeclarationTree> importsByModule) { String literal = tree.fromClause().module().value(); String moduleName = literal.substring(1, literal.length() - 1); importsByModule.put(moduleName, tree); } }