in src/main/java/org/apache/sling/api/resource/type/ResourceType.java [117:143]
public static ResourceType parseResourceType(@NotNull String resourceTypeString) {
String type = "";
Version version = null;
if (resourceTypeString != null && !resourceTypeString.isEmpty()) {
int lastSlash = resourceTypeString.lastIndexOf('/');
if (lastSlash != -1 && !resourceTypeString.endsWith("/")) {
String versionString = resourceTypeString.substring(lastSlash + 1);
if (versionPattern.matcher(versionString).matches()) {
try {
version = Version.parseVersion(versionString);
type = resourceTypeString.substring(0, lastSlash);
} catch (IllegalArgumentException e) {
type = resourceTypeString;
}
} else {
type = resourceTypeString;
}
} else {
type = resourceTypeString;
}
}
if (type.isEmpty()) {
throw new IllegalArgumentException(
String.format("Cannot extract a type for the resourceTypeString %s.", resourceTypeString));
}
return new ResourceType(type, version);
}