@Override public Description matchNewClass(NewClassTree tree, VisitorState state) { if (ASTHelpers.isSameType( state.getSymtab().stringBuilderType, ASTHelpers.getType(tree.getIdentifier()), state) && tree.getArguments().size() == 1) { ExpressionTree argument = tree.getArguments().get(0); Type type = ((JCTree) argument).type; if (type.getKind() == TypeKind.CHAR) { if (argument.getKind() == Kind.CHAR_LITERAL) { char ch = (Character) ((LiteralTree) argument).getValue(); return describeMatch( tree, SuggestedFix.replace(argument, "\"" + Convert.quote(Character.toString(ch)) + "\"")); } else { return describeMatch( tree, SuggestedFix.replace( tree, "new StringBuilder().append(" + state.getSourceForNode((JCTree) argument) + ")")); } } } return Description.NO_MATCH; } }
private static String formatString(String s) { return '"' + Convert.quote(s) + '"'; } }
private static String formatString(String s) { return '"' + Convert.quote(s) + '"'; } }
private static String formatString(String s) { return '"' + Convert.quote(s) + '"'; } }
private static String formatChar(char c) { return '\'' + Convert.quote(c) + '\''; }
private static String formatChar(char c) { return '\'' + Convert.quote(c) + '\''; }
private static String formatChar(char c) { return '\'' + Convert.quote(c) + '\''; }
private static String formatString(String s) { return '"' + Convert.quote(s) + '"'; } }
private static String formatChar(char c) { return '\'' + Convert.quote(c) + '\''; }
/** * Escapes each character in a string that has an escape sequence or * is non-printable ASCII. Leaves non-ASCII characters alone. */ public static String quote(String s) { StringBuilder buf = new StringBuilder(); for (int i = 0; i < s.length(); i++) { buf.append(quote(s.charAt(i))); } return buf.toString(); }
/** * Escapes each character in a string that has an escape sequence or * is non-printable ASCII. Leaves non-ASCII characters alone. */ public static String quote(String s) { StringBuilder buf = new StringBuilder(); for (int i = 0; i < s.length(); i++) { buf.append(quote(s.charAt(i))); } return buf.toString(); }
/** * Escapes each character in a string that has an escape sequence or * is non-printable ASCII. Leaves non-ASCII characters alone. */ public static String quote(String s) { StringBuilder buf = new StringBuilder(); for (int i = 0; i < s.length(); i++) { buf.append(quote(s.charAt(i))); } return buf.toString(); }
private static String quote(String val, char keep) { StringBuilder sb = new StringBuilder(); for (int i = 0; i < val.length(); i++) { char c = val.charAt(i); if (c != keep) { sb.append(Convert.quote(c)); } else { sb.append(c); } } return sb.toString(); }
/** * Escapes each character in a string that has an escape sequence or * is non-printable ASCII. Leaves non-ASCII characters alone. */ public static String quote(String s) { StringBuilder buf = new StringBuilder(); for (int i = 0; i < s.length(); i++) { buf.append(quote(s.charAt(i))); } return buf.toString(); }
@Override public Description matchNewClass(NewClassTree tree, VisitorState state) { if (ASTHelpers.isSameType( state.getSymtab().stringBuilderType, ASTHelpers.getType(tree.getIdentifier()), state) && tree.getArguments().size() == 1) { ExpressionTree argument = tree.getArguments().get(0); Type type = ((JCTree) argument).type; if (type.getKind() == TypeKind.CHAR) { if (argument.getKind() == Kind.CHAR_LITERAL) { char ch = (Character) ((LiteralTree) argument).getValue(); return describeMatch( tree, SuggestedFix.replace(argument, "\"" + Convert.quote(Character.toString(ch)) + "\"")); } else { return describeMatch( tree, SuggestedFix.replace( tree, "new StringBuilder().append(" + state.getSourceForNode((JCTree) argument) + ")")); } } } return Description.NO_MATCH; } }