public boolean process()

in modules/privilizer/weaver/src/main/java/org/apache/commons/weaver/privilizer/PrivilizerWeaver.java [38:63]


    public boolean process(final WeaveEnvironment weaveEnvironment, final Scanner scanner) {
        final Privilizer privilizer = new Privilizer(weaveEnvironment);

        final Set<Class<?>> privilizedTypes = new LinkedHashSet<>();

        // handle blueprints:
        for (final WeavableClass<?> type : scanner.scan(
            new ScanRequest().add(WeaveInterest.of(Privilizing.class, ElementType.TYPE))).getClasses()) {

            final Class<?> target = type.getTarget();
            if (privilizedTypes.add(target) && validateRequest(privilizer, type)) {
                privilizer.blueprint(target, type.getAnnotation(Privilizing.class));
            }
        }

        // handle remaining classes declaring @Privileged methods:

        for (final WeavableClass<?> type : scanner.scan(
            new ScanRequest().add(WeaveInterest.of(Privileged.class, ElementType.METHOD))).getClasses()) {
            final Class<?> target = type.getTarget();
            if (privilizedTypes.add(target) && validateRequest(privilizer, type)) {
                privilizer.privilize(target);
            }
        }
        return !privilizedTypes.isEmpty();
    }