/** * @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(">"); }
/** * * @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); } }
@Override public void visitLiteral(LiteralTree tree) { String value = tree.value(); if (tree.is(Kind.STRING_LITERAL) && value.startsWith("\"") && value.indexOf('\'') < 0) { addIssue(tree, MESSAGE); } }
@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)); } } } }
@Override public void visitLiteral(LiteralTree tree) { if (tree.is(Kind.STRING_LITERAL) && tree.value().contains("\n")) { addIssue(tree, MESSAGE); } }
private static boolean isDirective(LiteralTree tree) { if (tree.is(Kind.STRING_LITERAL)) { return KNOWN_DIRECTIVES.contains(trimQuotes((tree).value())); } return false; }
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; }
@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) { getContext().addIssue(this, tree, "Replace the value of the octal number (" + value + ") by its decimal equivalent (" + newValue + ")."); } } } }
@Override public void visitLiteral(LiteralTree tree) { if (tree.is(Kind.STRING_LITERAL) && tree.value().contains("\n")){ getContext().addIssue(this, tree, "Use string concatenation rather than line continuation."); } }
@Override public void visitLiteral(LiteralTree tree) { if (tree.is(Kind.STRING_LITERAL) && tree.value().startsWith("\"")){ getContext().addIssue(this, tree, "Replace double quotes by simple quote"); } }