/** * Indicates whether the specified character is ignorable in a Java or * Unicode identifier. * * @param c * the character to check. * @return {@code true} if {@code c} is ignorable; {@code false} otherwise. */ public static boolean isIdentifierIgnorable(char c) { return isIdentifierIgnorable((int) c); }
@Override public boolean contains(int ch) { return Character.isIdentifierIgnorable(ch); } };
/** * Return {@code true} if, and only if identifier passed is compliant to JLS9 section 3.8 AND DOES NOT CONTAINS so-called "ignorable" characters. * Ignorable characters are removed by javac silently during compilation and thus may appear only in specially crafted obfuscated classes. * For more information about "ignorable" characters see <a href="https://bugs.openjdk.java.net/browse/JDK-7144981">JDK-7144981</a>. * * @param identifier Identifier to be checked * @return {@code true} in case {@code identifier} passed can be used as an identifier; {@code false} otherwise. */ private static boolean isValidIdentifier(boolean isMethod, String identifier) { assert identifier != null : "Null identifier passed to the isValidIdentifier() method."; assert !identifier.isEmpty() : "Empty identifier passed to the isValidIdentifier() method."; if (isMethod && (identifier.equals(CodeConstants.INIT_NAME) || identifier.equals(CodeConstants.CLINIT_NAME))) { return true; } if (!Character.isJavaIdentifierStart(identifier.charAt(0))) { return false; } char[] chars = identifier.toCharArray(); for(int i = 1; i < chars.length; i++) { char ch = chars[i]; if ((!Character.isJavaIdentifierPart(ch)) || Character.isIdentifierIgnorable(ch)) { return false; } } return true; }
/** * Indicates whether the specified character is ignorable in a Java or * Unicode identifier. * * @param c * the character to check. * @return {@code true} if {@code c} is ignorable; {@code false} otherwise. */ public static boolean isIdentifierIgnorable(char c) { return isIdentifierIgnorable((int) c); }
/** * Indicates whether the specified character is ignorable in a Java or * Unicode identifier. * * @param c * the character to check. * @return {@code true} if {@code c} is ignorable; {@code false} otherwise. */ public static boolean isIdentifierIgnorable(char c) { return isIdentifierIgnorable((int) c); }
/** * Indicates whether the specified character is ignorable in a Java or * Unicode identifier. * * @param c * the character to check. * @return {@code true} if {@code c} is ignorable; {@code false} otherwise. */ public static boolean isIdentifierIgnorable(char c) { return isIdentifierIgnorable((int) c); }
/** * Indicates whether the specified character is ignorable in a Java or * Unicode identifier. * * @param c * the character to check. * @return {@code true} if {@code c} is ignorable; {@code false} otherwise. */ public static boolean isIdentifierIgnorable(char c) { return isIdentifierIgnorable((int) c); }
/** * Indicates whether the specified character is ignorable in a Java or * Unicode identifier. * * @param c * the character to check. * @return {@code true} if {@code c} is ignorable; {@code false} otherwise. */ public static boolean isIdentifierIgnorable(char c) { return isIdentifierIgnorable((int) c); }
/** * Indicates whether the specified character is ignorable in a Java or * Unicode identifier. * * @param c * the character to check. * @return {@code true} if {@code c} is ignorable; {@code false} otherwise. */ public static boolean isIdentifierIgnorable(char c) { return isIdentifierIgnorable((int) c); }
public static boolean isNonPrintable(int c) { return Character.isIdentifierIgnorable(c) || c == '\u00AD'; }
boolean isSatisfiedBy(int ch) { return Character.isIdentifierIgnorable(ch); } });
public static boolean isNonPrintable(int c) { return Character.isIdentifierIgnorable(c) || c == '\u00AD'; }
boolean isSatisfiedBy(int ch) { return Character.isIdentifierIgnorable(ch);}}); defClone("javaSpaceChar", new CloneableProperty() {
@Override public boolean is(char c){return (!Character.isSpaceChar(c))&&(!Character.isIdentifierIgnorable(c));} }).toCharArray();
static boolean isJSIdentifier(String s) { int length = s.length(); if (length == 0 || Character.isIdentifierIgnorable(s.charAt(0)) || !Character.isJavaIdentifierStart(s.charAt(0))) { return false; } for (int i = 1; i < length; i++) { if (Character.isIdentifierIgnorable(s.charAt(i)) || !Character.isJavaIdentifierPart(s.charAt(i))) { return false; } } return true; }
@Override public void write(int c) throws IOException { if (Character.isWhitespace(c) || Character.isIdentifierIgnorable(c)) { return; } else { super.write(c); } }
/** * Returns {@code true} if this subset contains the given Unicode character. */ @Override public boolean contains(final int codePoint) { return Character.isUnicodeIdentifierPart(codePoint) && !Character.isIdentifierIgnorable(codePoint); } }
/** * Returns {@code true} if this subset contains the given Unicode character. */ @Override public boolean contains(final int codePoint) { return Character.isUnicodeIdentifierPart(codePoint) && !Character.isIdentifierIgnorable(codePoint); } }
public boolean isPrintableChar( char c ) { if(!Character.isDefined(c)) return false; if(Character.isIdentifierIgnorable(c)) return false; return true; }
private boolean isCharForSearch (KeyEvent evt) { char ch = evt.getKeyChar(); // refuse backspace key if ((int)ch == 8) { return false; } // #110975: refuse modifiers if (evt.getModifiers() != 0) { return false; } return (Character.isJavaIdentifierPart(ch) && !Character.isIdentifierIgnorable(ch)) || Character.isSpaceChar(ch); }