public ResourceProviderStorage()

in src/main/java/org/apache/sling/resourceresolver/impl/providers/ResourceProviderStorage.java [49:92]


    public ResourceProviderStorage(List<ResourceProviderHandler> handlers) {
        this.allHandlers = handlers;
        this.authRequiredHandlers = new ArrayList<>();
        this.adaptableHandlers = new ArrayList<>();
        this.attributableHandlers = new ArrayList<>();
        this.languageQueryableHandlers = new ArrayList<>();
        for (ResourceProviderHandler h : allHandlers) {
            ResourceProviderInfo info = h.getInfo();
            if (info.getAuthType() == AuthType.required) {
                this.authRequiredHandlers.add(h);
            }
            if (info.isAdaptable()) {
                this.adaptableHandlers.add(h);
            }
            if (info.isAttributable()) {
                this.attributableHandlers.add(h);
            }
            final ResourceProvider<Object> rp = h.getResourceProvider();
            if (rp != null && rp.getQueryLanguageProvider() != null) {
                this.languageQueryableHandlers.add(h);
            }
        }
        // sort all lists for consistency
        final Comparator<ResourceProviderHandler> comp = new Comparator<ResourceProviderHandler>() {

            @Override
            public int compare(final ResourceProviderHandler o1, final ResourceProviderHandler o2) {
                final ResourceProviderInfo i1 = o1.getInfo();
                final ResourceProviderInfo i2 = o2.getInfo();
                if ( i1 == null ) {
                    return i2 == null ? 0 : -1;
                }
                if ( i2 == null ) {
                    return 1;
                }
                return i2.getServiceReference().compareTo(i1.getServiceReference());
            }
        };
        Collections.sort(this.authRequiredHandlers, comp);
        Collections.sort(this.adaptableHandlers, comp);
        Collections.sort(this.attributableHandlers, comp);
        Collections.sort(this.languageQueryableHandlers, comp);
        this.handlersTree = new PathTree<>(handlers);
    }