public Resource getResource()

in src/main/java/org/apache/sling/fsprovider/internal/mapper/FileResourceMapper.java [136:170]


    public Resource getResource(
            final @NotNull ResolveContext<Object> ctx,
            final @NotNull String path,
            final @NotNull ResourceContext resourceContext,
            final @Nullable Resource parent) {

        final ResourceResolver resolver = ctx.getResourceResolver();

        final Map.Entry<Resource, Boolean> resolved = resolveResource(resolver, path);
        final boolean askParentResourceProvider = resolved.getValue();
        Resource rsrc = resolved.getKey();

        if (askParentResourceProvider) {
            // make sure directory resources from parent resource provider have higher precedence than from this
            // provider
            // this allows properties like sling:resourceSuperType to take effect
            if (rsrc == null
                    || rsrc.getResourceMetadata().containsKey(FsResourceProvider.RESOURCE_METADATA_FILE_DIRECTORY)) {
                // get resource from shadowed provider
                @SuppressWarnings("rawtypes")
                final ResourceProvider rp = ctx.getParentResourceProvider();
                @SuppressWarnings("rawtypes")
                final ResolveContext resolveContext = ctx.getParentResolveContext();
                if (rp != null && resolveContext != null) {
                    Resource resourceFromParentResourceProvider =
                            rp.getResource(resolveContext, path, resourceContext, parent);
                    if (resourceFromParentResourceProvider != null) {
                        rsrc = resourceFromParentResourceProvider;
                    }
                }
            }
        }

        return rsrc;
    }