in kit/src/main/java/com/oracle/javafx/scenebuilder/kit/metadata/util/PrefixedValue.java [247:307]
public static Type getPrefixedValueType(String prefixedValue) {
final Type result;
String v = prefixedValue;
if (v.startsWith(FXMLLoader.ESCAPE_PREFIX)) {
v = v.substring(FXMLLoader.ESCAPE_PREFIX.length());
if (v.isEmpty()
|| !(v.startsWith(FXMLLoader.ESCAPE_PREFIX)
|| v.startsWith(FXMLLoader.RELATIVE_PATH_PREFIX)
|| v.startsWith(FXMLLoader.RESOURCE_KEY_PREFIX)
|| v.startsWith(FXMLLoader.EXPRESSION_PREFIX)
|| v.startsWith(FXMLLoader.BI_DIRECTIONAL_BINDING_PREFIX))) {
result = Type.INVALID;
} else {
result = Type.PLAIN_STRING;
}
} else if (v.startsWith(FXMLLoader.RELATIVE_PATH_PREFIX)) {
v = v.substring(FXMLLoader.RELATIVE_PATH_PREFIX.length());
if (v.isEmpty()) {
result = Type.INVALID;
} else if (v.startsWith(FXMLLoader.RELATIVE_PATH_PREFIX)) {
// The prefix was escaped
result = Type.PLAIN_STRING;
} else if (v.charAt(0) == '/') {
result = Type.CLASSLOADER_RELATIVE_PATH;
} else {
result = Type.DOCUMENT_RELATIVE_PATH;
}
} else if (v.startsWith(FXMLLoader.RESOURCE_KEY_PREFIX)) {
v = v.substring(FXMLLoader.RESOURCE_KEY_PREFIX.length());
if (v.isEmpty()) {
result = Type.INVALID;
} else if (v.startsWith(FXMLLoader.RESOURCE_KEY_PREFIX)) {
// The prefix was escaped
result = Type.PLAIN_STRING;
} else {
result = Type.RESOURCE_KEY;
}
} else if (v.startsWith(FXMLLoader.BINDING_EXPRESSION_PREFIX)) {
v = v.substring(FXMLLoader.BINDING_EXPRESSION_PREFIX.length());
if (v.isEmpty() || !v.endsWith(FXMLLoader.BINDING_EXPRESSION_SUFFIX)) {
result = Type.INVALID;
} else {
result = Type.BINDING_EXPRESSION;
}
} else if (v.startsWith(FXMLLoader.EXPRESSION_PREFIX)) {
v = v.substring(FXMLLoader.EXPRESSION_PREFIX.length());
if (v.isEmpty()) {
result = Type.INVALID;
} else if (v.startsWith(FXMLLoader.EXPRESSION_PREFIX)) {
// The prefix was escaped
result = Type.PLAIN_STRING;
} else {
result = Type.EXPRESSION;
}
} else {
result = Type.PLAIN_STRING;
}
return result;
}