mirror of
https://github.com/openjdk/jdk.git
synced 2025-08-28 15:24:43 +02:00
8306729: Add nominal descriptors of modules and packages to Constants API
Reviewed-by: mchung
This commit is contained in:
parent
0b5b6429a0
commit
c8f37564bf
8 changed files with 467 additions and 0 deletions
|
@ -75,6 +75,66 @@ class ConstantUtils {
|
|||
return name;
|
||||
}
|
||||
|
||||
/**
|
||||
* Validates the correctness of a binary package name.
|
||||
* In particular checks for the presence of invalid characters in the name.
|
||||
* Empty package name is allowed.
|
||||
*
|
||||
* @param name the package name
|
||||
* @return the package name passed if valid
|
||||
* @throws IllegalArgumentException if the package name is invalid
|
||||
* @throws NullPointerException if the package name is {@code null}
|
||||
*/
|
||||
public static String validateBinaryPackageName(String name) {
|
||||
for (int i=0; i<name.length(); i++) {
|
||||
char ch = name.charAt(i);
|
||||
if (ch == ';' || ch == '[' || ch == '/')
|
||||
throw new IllegalArgumentException("Invalid package name: " + name);
|
||||
}
|
||||
return name;
|
||||
}
|
||||
|
||||
/**
|
||||
* Validates the correctness of an internal package name.
|
||||
* In particular checks for the presence of invalid characters in the name.
|
||||
* Empty package name is allowed.
|
||||
*
|
||||
* @param name the package name
|
||||
* @return the package name passed if valid
|
||||
* @throws IllegalArgumentException if the package name is invalid
|
||||
* @throws NullPointerException if the package name is {@code null}
|
||||
*/
|
||||
public static String validateInternalPackageName(String name) {
|
||||
for (int i=0; i<name.length(); i++) {
|
||||
char ch = name.charAt(i);
|
||||
if (ch == ';' || ch == '[' || ch == '.')
|
||||
throw new IllegalArgumentException("Invalid package name: " + name);
|
||||
}
|
||||
return name;
|
||||
}
|
||||
|
||||
/**
|
||||
* Validates the correctness of a module name.
|
||||
* In particular checks for the presence of invalid characters in the name.
|
||||
* Empty module name is allowed.
|
||||
*
|
||||
* {@jvms 4.2.3} Module and Package Names
|
||||
*
|
||||
* @param name the module name
|
||||
* @return the module name passed if valid
|
||||
* @throws IllegalArgumentException if the module name is invalid
|
||||
* @throws NullPointerException if the module name is {@code null}
|
||||
*/
|
||||
public static String validateModuleName(String name) {
|
||||
for (int i=name.length() - 1; i >= 0; i--) {
|
||||
char ch = name.charAt(i);
|
||||
if ((ch >= '\u0000' && ch <= '\u001F')
|
||||
|| ((ch == '\\' || ch == ':' || ch =='@') && (i == 0 || name.charAt(--i) != '\\')))
|
||||
throw new IllegalArgumentException("Invalid module name: " + name);
|
||||
}
|
||||
return name;
|
||||
}
|
||||
|
||||
/**
|
||||
* Validates a member name
|
||||
*
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue