Java 类org.apache.maven.plugins.annotations.Component 实例源码

项目:takari-lifecycle    文件:MojoDescriptorGleaner.java   
private void processTypeFields(TypeElement type, MojoDescriptor descriptor) {
  // non-static fields
  for (Element member : type.getEnclosedElements()) {
    if (member instanceof VariableElement) {
      Parameter parameter = member.getAnnotation(Parameter.class);
      Component component = member.getAnnotation(Component.class);
      if (parameter != null && component != null) {
        // TODO error marker
      }
      if (parameter != null) {
        descriptor.addParameter(toParameterDescriptor((VariableElement) member, parameter));
      } else if (component != null) {
        descriptor.addRequirement(toComponentDescriptor((VariableElement) member, component));
      }
    }
  }
}
项目:takari-lifecycle    文件:MojoDescriptorGleaner.java   
private Set<TypeElement> getAnnotatedTypes(RoundEnvironment roundEnv) {
  Set<TypeElement> types = new HashSet<>();
  roundEnv.getElementsAnnotatedWith(Mojo.class).forEach(type -> types.add((TypeElement) type));
  addAnnotatedMembers(types, roundEnv, Parameter.class);
  addAnnotatedMembers(types, roundEnv, Component.class);
  return types;
}
项目:takari-lifecycle    文件:MojoDescriptorGleaner.java   
@Override
public Set<String> getSupportedAnnotationTypes() {
  Set<String> types = new HashSet<>();
  types.add(Mojo.class.getName());
  types.add(Parameter.class.getName());
  types.add(Component.class.getName());
  return types;
}
项目:takari-lifecycle    文件:MojoDescriptorGleaner.java   
private MojoRequirement toComponentDescriptor(VariableElement field, Component component) {
  MojoRequirement result = new MojoRequirement();
  result.setFieldName(field.getSimpleName().toString());
  result.setRole(getComponentRole(field, component));
  result.setRoleHint(component.hint());
  return result;
}
项目:takari-lifecycle    文件:MojoDescriptorGleaner.java   
private String getComponentRole(VariableElement field, Component component) {
  String role;
  try {
    role = component.role().getName();
  } catch (MirroredTypeException e) {
    role = e.getTypeMirror().toString();
  }
  if (!Object.class.getName().equals(role)) {
    return role;
  }
  return getTypeString(field.asType());
}