protected int unescapeCharAndAppendTo(String string, boolean useUnicode, int index, StringBuilder result) { char c = string.charAt(index++); if (c == '\\') { return doUnescapeCharAndAppendTo(string, useUnicode, index, result); } validateAndAppendChar(c, result); return index; }
/** * Resolve Java control character sequences with to the actual character value. * Optionally handle unicode escape sequences, too. */ public static String convertFromJavaString(String string, boolean useUnicode) { return CONVERTER.convertFromJavaString(string, useUnicode); }
/** * Escapes control characters with a preceding backslash. * Encodes special chars as unicode escape sequence. * The resulting string is safe to be put into a Java string literal between * the quotes. */ public String convertToJavaString(String theString) { return convertToJavaString(theString, true); }
protected int unescapeUnicodeSequence(String string, int index, StringBuilder result) { if(!isInvalidUnicodeEscapeSequence(string, index)) { char c1 = string.charAt(index); char c2 = string.charAt(index+1); char c3 = string.charAt(index+2); char c4 = string.charAt(index+3); if (isHex(c1) && isHex(c2) && isHex(c3) && isHex(c4)) { int appendMe = 0; appendMe = buildChar(appendMe, c1); appendMe = buildChar(appendMe, c2); appendMe = buildChar(appendMe, c3); appendMe = buildChar(appendMe, c4); validateAndAppendChar((char) appendMe, result); return index + 4; } } return handleInvalidUnicodeEscapeSequence(string, index, result); }
case 'u': if (useUnicode) { return unescapeUnicodeSequence(string, index, result); return handleUnknownEscapeSequence(string, c, useUnicode, index, result); validateAndAppendChar(c, result); return index;
protected void validateAndAppendChar(char c, StringBuilder result) { if (validate(c, result)) { result.append(c); } }
@Override protected int doUnescapeCharAndAppendTo(String string, boolean useUnicode, int index, StringBuilder result) { if (string.length() == index) { badChar = true; return index; } return super.doUnescapeCharAndAppendTo(string, useUnicode, index, result); }
/** * Resolve Java control character sequences to the actual character value. * Optionally handle unicode escape sequences, too. */ public String convertFromJavaString(String string, boolean useUnicode) { int firstEscapeSequence = string.indexOf('\\'); if (firstEscapeSequence == -1) { return string; } int length = string.length(); StringBuilder result = new StringBuilder(length); appendRegion(string, 0, firstEscapeSequence, result); return convertFromJavaString(string, useUnicode, firstEscapeSequence, result); }
protected String convertFromJavaString(String string, boolean useUnicode, int index, StringBuilder result) { int length = string.length(); while(index < length) { index = unescapeCharAndAppendTo(string, useUnicode, index, result); if (index < length) { int nextEscapeSequence = string.indexOf('\\', index); if (nextEscapeSequence == -1) { appendRegion(string, index, length, result); index = length; } else { appendRegion(string, index, nextEscapeSequence, result); index = nextEscapeSequence; } } } return result.toString(); }
protected boolean isHexSequence(String in, int off, int chars) { return doIsHexSequence(in, off, chars); }
/** * Escapes control characters with a preceding backslash. * Optionally encodes special chars as unicode escape sequence. * The resulting string is safe to be put into a Java string literal between * the quotes. */ public String convertToJavaString(String input, boolean useUnicode) { int length = input.length(); StringBuilder result = new StringBuilder(length + 4); for (int i = 0; i < length; i++) { escapeAndAppendTo(input.charAt(i), useUnicode, result); } return result.toString(); }
@Override protected boolean validate(char c, StringBuilder result) { if (result.length() == 0) { if (!isValidIdentifierStart(c)) { badChar = true; return false; } } else { if (!isValidIdentifierPart(c)) { badChar = true; return false; } } return super.validate(c, result); }
protected boolean isHexSequence(char[] in, int off, int chars) { return doIsHexSequence(in, off, chars); }
/** * Escapes control characters with a preceding backslash. * Encodes special chars as unicode escape sequence. * The resulting string is safe to be put into a Java string literal between * the quotes. */ public static String convertToJavaString(String theString) { return CONVERTER.convertToJavaString(theString, true); }
/** * Escapes control characters with a preceding backslash. * Optionally encodes special chars as unicode escape sequence. * The resulting string is safe to be put into a Java string literal between * the quotes. */ public static String convertToJavaString(String input, boolean useUnicode) { return CONVERTER.convertToJavaString(input, useUnicode); }