INNER CODE UNIT · Java

process

xiaojinzi123/Component · ComponentCompiler/src/main/java/com/xiaojinzi/component/AutowireProcessor.java:133

    public boolean process(Set<? extends TypeElement> set, RoundEnvironment roundEnvironment) {
        if (CollectionUtils.isNotEmpty(set)) {
            final Set<? extends Element> filedAutowiredElements = roundEnvironment.getElementsAnnotatedWith(AttrValueAutowiredAnno.class);
            final Set<? extends Element> serviceAutowiredElements = roundEnvironment.getElementsAnnotatedWith(ServiceAutowiredAnno.class);
            final Set<Element> annotatedElements = new HashSet<>();
            annotatedElements.addAll(filedAutowiredElements);
            annotatedElements.addAll(serviceAutowiredElements);
            final Set<VariableElement> fieldElements = new HashSet<>();
            for (Element element : annotatedElements) {
                // 必须标记的是一个类的字段,这个才会被处理
                if (element instanceof VariableElement && element.getEnclosingElement() instanceof TypeElement) {
                    VariableElement variableElement = (VariableElement) element;
                    fieldElements.add(variableElement);
                }
            }
            // 找到标记到相同的一个类上的所有注解
            findSameTargetElement(fieldElements);
            createImpl();

View source record →

📰 Research Paper
Loading…
⏳ Fetching content…