private String seek() { if (relPath == null) { if (resourceType == null) { return null; } String typePath = ResourceUtil.resourceTypeToPath(resourceType); if (typePath.startsWith("/")) { resourceType = getResourceSuperType(resourceType); return typePath; } relPath = typePath; } String result = searchPath[pathCounter].concat(relPath); pathCounter++; if (pathCounter >= searchPath.length) { relPath = null; resourceType = getResourceSuperType(resourceType); pathCounter = 0; } return result; }
@Override public String getParentResourceType(String resourceType) { // normalize resource type to a path string final String rtPath = (resourceType == null ? null : ResourceUtil.resourceTypeToPath(resourceType)); // get the resource type resource and check its super type String resourceSuperType = null; if ( rtPath != null ) { final Resource rtResource = getResource(rtPath); if (rtResource != null) { resourceSuperType = rtResource.getResourceSuperType(); } } return resourceSuperType; }
for (String rt : PropertiesUtil.toStringArray(ref.getProperty(SLING_SERVLET_RESOURCE_TYPES))) { if (!rt.startsWith("/")) { rt = getPrefix(ref).concat(ResourceUtil.resourceTypeToPath(rt));
type = ResourceUtil.resourceTypeToPath(type);
/** * Get the parent resource type * * @see org.apache.sling.api.resource.ResourceResolver#getParentResourceType(java.lang.String) */ public String getParentResourceType( final ResourceResolverFactory factory, final ResourceResolver resolver, final String resourceType) { // normalize resource type to a path string final String rtPath = (resourceType == null ? null : ResourceUtil.resourceTypeToPath(resourceType)); // get the resource type resource and check its super type String resourceSuperType = null; if ( rtPath != null ) { ResourceResolver adminResolver = this.getResourceTypeResourceResolver(factory, resolver); if ( adminResolver != null ) { final Resource rtResource = adminResolver.getResource(rtPath); if (rtResource != null) { resourceSuperType = rtResource.getResourceSuperType(); } } } return resourceSuperType; }
private String getResourceSuperType(final ResourceResolver resourceResolver, final String resourceType) { // normalize resource type to a path string final String rtPath = ResourceUtil.resourceTypeToPath(resourceType); // get the resource type resource and check its super type String resourceSuperType = null; // if the path is absolute, use it directly if ( rtPath != null && rtPath.startsWith("/") ) { final String candidatePath = rtPath; final Resource rtResource = resourceResolver.getResource(candidatePath); if ( rtResource != null ) { resourceSuperType = rtResource.getResourceSuperType(); } } else { // if the path is relative we use the search paths for(final String searchPath : this.searchPath) { final String candidatePath = searchPath + rtPath; final Resource rtResource = resourceResolver.getResource(candidatePath); if ( rtResource != null && rtResource.getResourceSuperType() != null ) { resourceSuperType = rtResource.getResourceSuperType(); break; } } } return resourceSuperType; }
private String buildCrxDeLinkToResourceType(HttpServletRequest request, String type) { return getResourceResolver().map(r -> { try { String path = resourceTypeToPath(type); Resource resource = null; Resource iconResource = null; for (String searchPath : r.getSearchPath()) { resource = r.getResource(searchPath + path); if (resource != null && !isNonExistingResource(resource) && !isSyntheticResource(resource)) { iconResource = resource.getChild("icon.png"); break; } } return resource != null ? "<a href=\"" + request.getContextPath() + "/crx/de/#" + resource.getPath() + "\" " + "class=\"crxdelink\">" + "<img class=\"componentIcon\" src=\"" + getLabel() + API_PATH + API_COMPONENTICON + (iconResource == null ? "" : resource.getPath()) + "\"/>" + type + "</a>" : "<span class=\"unresolved\">" + type + "</span>"; } finally { r.close(); } }).orElse("#"); }