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

MojoDescriptorGleaner.java 文件源码 项目:takari-lifecycle 阅读 27 收藏 0 点赞 0 评论 0
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));
      }
    }
  }
}
MojoDescriptorGleaner.java 文件源码 项目:takari-lifecycle 阅读 25 收藏 0 点赞 0 评论 0
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;
}
MojoDescriptorGleaner.java 文件源码 项目:takari-lifecycle 阅读 27 收藏 0 点赞 0 评论 0
@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;
}
MojoDescriptorGleaner.java 文件源码 项目:takari-lifecycle 阅读 22 收藏 0 点赞 0 评论 0
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;
}
MojoDescriptorGleaner.java 文件源码 项目:takari-lifecycle 阅读 23 收藏 0 点赞 0 评论 0
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());
}


问题


面经


文章

微信
公众号

扫码关注公众号