in src/main/java/org/apache/sling/api/resource/type/ResourceType.java [117:142]
public static ResourceType parseResourceType(@NotNull String resourceTypeString) {
String type = StringUtils.EMPTY;
Version version = null;
if (StringUtils.isNotEmpty(resourceTypeString)) {
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 (StringUtils.isEmpty(type)) {
throw new IllegalArgumentException(String.format("Cannot extract a type for the resourceTypeString %s.", resourceTypeString));
}
return new ResourceType(type, version);
}