/* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You under the Apache License, Version 2.0 * (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License.
*/ package org.apache.el.util;
/** * Test whether a string is a Java identifier. Note that the behaviour of * this method depend on the system property * {@code org.apache.el.parser.SKIP_IDENTIFIER_CHECK} * * @param key The string to test * * @return {@code true} if the provided String should be treated as a Java * identifier, otherwise false
*/ publicstaticboolean isIdentifier(String key) {
if (SKIP_IDENTIFIER_CHECK) { returntrue;
}
// Should not be the case but check to be sure if (key == null || key.length() == 0) { returnfalse;
}
// Check the list of known invalid values int i = 0; int j = invalidIdentifiers.length; while (i < j) { int k = (i + j) >>> 1; // Avoid overflow int result = invalidIdentifiers[k].compareTo(key); if (result == 0) { returnfalse;
} if (result < 0) {
i = k + 1;
} else {
j = k;
}
}
// Check the start character that has more restrictions if (!Character.isJavaIdentifierStart(key.charAt(0))) { returnfalse;
}
// Check each remaining character used is permitted for (int idx = 1; idx < key.length(); idx++) { if (!Character.isJavaIdentifierPart(key.charAt(idx))) { returnfalse;
}
}
returntrue;
}
}
¤ Dauer der Verarbeitung: 0.1 Sekunden
(vorverarbeitet)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung ist noch experimentell.