public static String escapeSinglePart( String part ) { if (isReservedWord(part)) { return ID_ESCAPE_CHAR + part + ID_ESCAPE_CHAR; } boolean escape = true; char start = part.charAt(0); if (start == '#' || start == '@' || StringUtil.isLetter(start)) { escape = false; for (int i = 1; !escape && i < part.length(); i++) { char c = part.charAt(i); escape = !StringUtil.isLetterOrDigit(c) && c != '_'; } } if (escape) { return ID_ESCAPE_CHAR + escapeStringValue(part, "\"") + ID_ESCAPE_CHAR; //$NON-NLS-1$ } return part; }
@Test public void testIsLetter() { assertTrue(StringUtil.isLetter('a')); assertTrue(StringUtil.isLetter('A')); assertFalse(StringUtil.isLetter('5')); assertFalse(StringUtil.isLetter('_')); assertTrue(StringUtil.isLetter('\u00cf')); // Latin-1 letter assertFalse(StringUtil.isLetter('\u0967')); // Devanagiri number assertTrue(StringUtil.isLetter('\u0905')); // Devanagiri letter }
public static String escapeSinglePart( String part ) { if (isReservedWord(part)) { return ID_ESCAPE_CHAR + part + ID_ESCAPE_CHAR; } boolean escape = true; char start = part.charAt(0); if (start == '#' || start == '@' || StringUtil.isLetter(start)) { escape = false; for (int i = 1; !escape && i < part.length(); i++) { char c = part.charAt(i); escape = !StringUtil.isLetterOrDigit(c) && c != '_'; } } if (escape) { return ID_ESCAPE_CHAR + escapeStringValue(part, "\"") + ID_ESCAPE_CHAR; //$NON-NLS-1$ } return part; }
public static String escapeSinglePart( String part ) { if (isReservedWord(part)) { return ID_ESCAPE_CHAR + part + ID_ESCAPE_CHAR; } boolean escape = true; char start = part.charAt(0); if (start == '#' || start == '@' || StringUtil.isLetter(start)) { escape = false; for (int i = 1; !escape && i < part.length(); i++) { char c = part.charAt(i); escape = !StringUtil.isLetterOrDigit(c) && c != '_'; } } if (escape) { return ID_ESCAPE_CHAR + escapeStringValue(part, "\"") + ID_ESCAPE_CHAR; //$NON-NLS-1$ } return part; }