public Resource getResource()

in src/main/java/org/apache/sling/resourceresolver/impl/legacy/LegacyResourceProviderAdapter.java [63:90]


    public Resource getResource(
            ResolveContext<Object> ctx, String path, ResourceContext resourceContext, Resource parent) {
        Resource resourceCandidate;
        if (rp instanceof ParametrizableResourceProvider) {
            resourceCandidate = ((ParametrizableResourceProvider) rp)
                    .getResource(ctx.getResourceResolver(), path, resourceContext.getResolveParameters());
        } else {
            resourceCandidate = rp.getResource(ctx.getResourceResolver(), path);
        }

        ResourceProvider<?> parentProvider = ctx.getParentResourceProvider();
        ResolveContext parentCtx = ctx.getParentResolveContext();
        // Ask the parent provider
        if (resourceCandidate == null && !ownsRoot && parentProvider != null) {
            return parentProvider.getResource(parentCtx, path, resourceContext, parent);
        }

        // Support the INTERNAL_CONTINUE_RESOLVING flag
        Resource fallbackResource = resourceCandidate;
        if (resourceCandidate != null && parentProvider != null && isContinueResolving(resourceCandidate)) {
            resourceCandidate = ctx.getParentResourceProvider().getResource(parentCtx, path, resourceContext, parent);
        }
        if (resourceCandidate != null) {
            return resourceCandidate;
        } else {
            return fallbackResource;
        }
    }