public static boolean fillInByProviders()

in context/src/main/java/org/netbeans/html/context/spi/Contexts.java [84:123]


    public static boolean fillInByProviders(Class<?> requestor, Contexts.Builder cb) {
        boolean found = false;
        ClassLoader l;
        try {
            l = requestor.getClassLoader();
        } catch (SecurityException ex) {
            l = null;
        }
        ClassSet classes = new ClassSet(null);
        for (Provider cp : ServiceLoader.load(Provider.class, l)) {
            if (!classes.add(cp.getClass())) {
                continue;
            }
            cp.fillContext(cb, requestor);
            found = true;
        }
        try {
            for (Provider cp : ServiceLoader.load(Provider.class, Provider.class.getClassLoader())) {
                if (!classes.add(cp.getClass())) {
                    continue;
                }
                cp.fillContext(cb, requestor);
                found = true;
            }
        } catch (SecurityException ex) {
            if (!found) {
                throw ex;
            }
        }
        if (!found) {
            for (Provider cp : ServiceLoader.load(Provider.class)) {
                if (!classes.add(cp.getClass())) {
                    continue;
                }
                cp.fillContext(cb, requestor);
                found = true;
            }
        }
        return found;
    }