public boolean checkPreconditions()

in src/main/java/org/apache/sling/resourceresolver/impl/FactoryPreconditions.java [141:176]


    public boolean checkPreconditions() {
        boolean canRegister = true;
        for (final RequiredProvider rp : requiredProviders) {
            canRegister = false;
            for (final ResourceProviderHandler h :
                    tracker.getResourceProviderStorage().getAllHandlers()) {
                final ResourceProviderInfo info = h.getInfo();
                if (info == null) {
                    // provider has been deactivated in the meantime
                    // ignore and continue
                    continue;
                }
                @SuppressWarnings("rawtypes")
                final ServiceReference ref = info.getServiceReference();
                final Object servicePid = ref.getProperty(Constants.SERVICE_PID);
                if (rp.name != null && rp.name.equals(info.getName())) {
                    canRegister = true;
                    break;
                } else if (rp.filter != null && rp.filter.match(ref)) {
                    canRegister = true;
                    break;
                } else if (rp.pid != null && rp.pid.equals(servicePid)) {
                    canRegister = true;
                    break;
                } else if (rp.pid != null
                        && rp.pid.equals(ref.getProperty(LegacyResourceProviderWhiteboard.ORIGINAL_SERVICE_PID))) {
                    canRegister = true;
                    break;
                }
            }
            if (!canRegister) {
                break;
            }
        }
        return canRegister;
    }