804
804
* @return Legal Java identifier corresponding to the given identifier
806
806
public static final String makeJavaIdentifier(String identifier) {
807
return makeJavaIdentifier(identifier, true);
811
* Converts the given identifier to a legal Java identifier
812
* to be used for JSP Tag file attribute names.
815
* Identifier to convert
817
* @return Legal Java identifier corresponding to the given identifier
819
public static final String makeJavaIdentifierForAttribute(String identifier) {
820
return makeJavaIdentifier(identifier, false);
824
* Converts the given identifier to a legal Java identifier.
827
* Identifier to convert
829
* @return Legal Java identifier corresponding to the given identifier
831
private static final String makeJavaIdentifier(String identifier,
832
boolean periodToUnderscore) {
807
833
StringBuilder modifiedIdentifier = new StringBuilder(identifier.length());
808
834
if (!Character.isJavaIdentifierStart(identifier.charAt(0))) {
809
835
modifiedIdentifier.append('_');
811
837
for (int i = 0; i < identifier.length(); i++) {
812
838
char ch = identifier.charAt(i);
813
if (Character.isJavaIdentifierPart(ch) && ch != '_') {
839
if (Character.isJavaIdentifierPart(ch) &&
840
(ch != '_' || !periodToUnderscore)) {
814
841
modifiedIdentifier.append(ch);
815
} else if (ch == '.') {
842
} else if (ch == '.' && periodToUnderscore) {
816
843
modifiedIdentifier.append('_');
818
845
modifiedIdentifier.append(mangleChar(ch));