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();