mirror of
https://github.com/hibernate/hibernate-orm
synced 2025-02-16 08:05:05 +00:00
fix uppercasing of names in processor to comply with JPA 3.2 spec
This commit is contained in:
parent
73dba9304d
commit
09c627c0b2
@ -6,6 +6,10 @@
|
||||
|
||||
import java.util.Locale;
|
||||
|
||||
import static java.lang.Character.charCount;
|
||||
import static java.lang.Character.isUpperCase;
|
||||
import static java.lang.Character.toUpperCase;
|
||||
|
||||
/**
|
||||
* @author Hardy Ferentschik
|
||||
*/
|
||||
@ -101,7 +105,17 @@ public static String nameToMethodName(String name) {
|
||||
}
|
||||
|
||||
public static String getUpperUnderscoreCaseFromLowerCamelCase(String lowerCamelCaseString) {
|
||||
return lowerCamelCaseString.replaceAll("(.)(\\p{Upper})", "$1_$2").toUpperCase(Locale.ROOT);
|
||||
final StringBuilder result = new StringBuilder();
|
||||
int position = 0;
|
||||
while ( position < lowerCamelCaseString.length() ) {
|
||||
final int codePoint = lowerCamelCaseString.codePointAt( position );
|
||||
if ( position>0 && isUpperCase( codePoint ) ) {
|
||||
result.append('_');
|
||||
}
|
||||
result.appendCodePoint( toUpperCase( codePoint ) );
|
||||
position += charCount( codePoint );
|
||||
}
|
||||
return result.toString();
|
||||
}
|
||||
|
||||
private static boolean startsWithSeveralUpperCaseLetters(String string) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user