javax.lang.model.element.TypeElement.getInterfaces()方法的使用及代码示例

x33g5p2x  于2022-01-29 转载在 其他  
字(12.7k)|赞(0)|评价(0)|浏览(117)

本文整理了Java中javax.lang.model.element.TypeElement.getInterfaces()方法的一些代码示例,展示了TypeElement.getInterfaces()的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。TypeElement.getInterfaces()方法的具体详情如下:
包路径:javax.lang.model.element.TypeElement
类名称:TypeElement
方法名:getInterfaces

TypeElement.getInterfaces介绍

[英]Returns the interface types directly implemented by this class or extended by this interface.
[中]返回该类直接实现或扩展的接口类型。

代码示例

代码示例来源:origin: immutables/immutables

@Override
public List<? extends TypeMirror> getInterfaces() {
 return delegate.getInterfaces();
}

代码示例来源:origin: androidannotations/androidannotations

public void doesNotExtendInvalidInterfaces(TypeElement element, ElementValidation valid) {
  if (element.getInterfaces().size() > 0) {
    boolean isValid = true;
    for (TypeMirror iface : element.getInterfaces()) {
      if (!VALID_REST_INTERFACES.contains(iface.toString())) {
        isValid = false;
        break;
      }
    }
    if (!isValid) {
      valid.addError("%s interfaces can only extend the following interfaces: " + VALID_REST_INTERFACES);
    }
  }
}

代码示例来源:origin: androidannotations/androidannotations

/**
 * Gets all of the methods of the class and includes the methods of any
 * implemented interfaces.
 *
 * @param typeElement
 * @return full list of methods.
 */
public List<ExecutableElement> getMethods(TypeElement typeElement) {
  List<? extends Element> enclosedElements = typeElement.getEnclosedElements();
  List<ExecutableElement> methods = new ArrayList<>(ElementFilter.methodsIn(enclosedElements));
  // Add methods of the interfaces. These will be valid as they have gone
  // through the validator.
  for (TypeMirror iface : typeElement.getInterfaces()) {
    DeclaredType dt = (DeclaredType) iface;
    methods.addAll(ElementFilter.methodsIn(dt.asElement().getEnclosedElements()));
  }
  return methods;
}

代码示例来源:origin: facebook/litho

public static ImmutableList<TagModel> extractTagsFromSpecClass(Types types, TypeElement element) {
 final List<? extends TypeMirror> interfaces = element.getInterfaces();
 final List<TagModel> tags;
 if (interfaces != null) {
  tags =
    interfaces
      .stream()
      .map(t -> ((DeclaredType) t).asElement())
      .map(t -> newTagModel(t, types))
      .collect(Collectors.toList());
 } else {
  tags = Collections.emptyList();
 }
 return ImmutableList.copyOf(tags);
}

代码示例来源:origin: JakeWharton/butterknife

return true;
for (TypeMirror interfaceType : typeElement.getInterfaces()) {
 if (isSubtypeOfType(interfaceType, otherType)) {
  return true;

代码示例来源:origin: org.jboss.logging/jboss-logging-processor

@Override
default List<? extends TypeMirror> getInterfaces() {
  return getDelegate().getInterfaces();
}

代码示例来源:origin: f2prateek/dart

/**
 * This method returns either an empty String or {@code "(Parcelable)"} if the extra type is
 * Parcelable. We need this explicit conversion in cases where the extra type is both Parcelable
 * and Serializable. In that case we will prefer Parcelable. Not that the extra type has to
 * directly implement Parcelable, not via a super class.
 *
 * @param extraType the type that might be parcelable.
 * @return either an empty String or {@code "(Parcelable)"} if the extra type is Parcelable
 */
private String doCreateParcelableCastIfExtraIsParcelable(TypeMirror extraType) {
 String castToParcelableIfNecessary = "";
 if (extraType instanceof DeclaredType) {
  boolean isParcelable = false;
  final TypeElement typeElement = (TypeElement) ((DeclaredType) extraType).asElement();
  for (TypeMirror interfaceType : typeElement.getInterfaces()) {
   if ("android.os.Parcelable".equals(interfaceType.toString())) {
    isParcelable = true;
   }
  }
  if (isParcelable) {
   castToParcelableIfNecessary = "(android.os.Parcelable)";
  }
 }
 return castToParcelableIfNecessary;
}

代码示例来源:origin: weibocom/motan

private void addSuperInterfaceMethods(List<? extends TypeMirror> superInterfaces, TypeSpec.Builder classBuilder) {
  if (superInterfaces != null && !superInterfaces.isEmpty()) {
    for (TypeMirror tm : superInterfaces) {
      try {
        if (tm.getKind().equals(TypeKind.DECLARED)) {
          TypeElement de = (TypeElement) ((DeclaredType) tm).asElement();
          addMethods(de, classBuilder);
          addSuperInterfaceMethods(de.getInterfaces(), classBuilder);
        }
      } catch (Exception e) {
        processingEnv.getMessager().printMessage(Diagnostic.Kind.WARNING,
            "MotanAsyncProcessor process superinterface " + tm.toString() + " fail. exception:" + e.getMessage());
        e.printStackTrace();
      }
    }
  }
}

代码示例来源:origin: robolectric/robolectric

TypeMirror findInterface(TypeElement shadowPickerType, Class<?> interfaceClass) {
 TypeMirror shadowPickerMirror = elements
   .getTypeElement(interfaceClass.getName())
   .asType();
 for (TypeMirror typeMirror : shadowPickerType.getInterfaces()) {
  if (types.erasure(typeMirror).equals(types.erasure(shadowPickerMirror))) {
   return typeMirror;
  }
 }
 return null;
}

代码示例来源:origin: airbnb/epoxy

return true;
for (TypeMirror interfaceType : typeElement.getInterfaces()) {
 if (isSubtypeOfType(interfaceType, otherType)) {
  return true;

代码示例来源:origin: kiegroup/jbpm

public boolean process(final Set<? extends TypeElement> annotations,
            final RoundEnvironment roundEnv) {
  if (resetResults) {
    processingResults = new HashMap<>();
  }
  for (Element element : roundEnv.getElementsAnnotatedWith(Wid.class)) {
    if (element instanceof TypeElement) {
      TypeElement typeElement = (TypeElement) element;
      processingEnv.getMessager().printMessage(Diagnostic.Kind.NOTE,
                           MessageFormat.format("Wid Processor : processing class {0}.",
                                     typeElement.asType().toString()));
      processingResults.put(typeElement.asType().toString(),
                 new ArrayList<>());
      if (typeElement.getInterfaces() != null && typeElement.getInterfaces().size() > 0) {
        for (TypeMirror mirror : typeElement.getInterfaces()) {
          if (mirror.getAnnotation(Wid.class) != null) {
            processingResults.get(typeElement.asType().toString()).add(mirror.getAnnotation(Wid.class));
          }
        }
      }
      processingResults.get(typeElement.asType().toString()).add(typeElement.getAnnotation(Wid.class));
    }
  }
  return postProcessWorkItemDefinition();
}

代码示例来源:origin: remkop/picocli

private static boolean find(String interfaceName, TypeElement typeElement, Set<Element> visited) {
  if (visited.contains(typeElement)) { return false; }
  visited.add(typeElement);
  //logger.finest("trying to find " + interfaceName + " in " + typeElement);
  if (typeElement.getQualifiedName().contentEquals(interfaceName)) {
    return true;
  }
  for (TypeMirror implemented : typeElement.getInterfaces()) {
    if (find(interfaceName, (TypeElement) ((DeclaredType) implemented).asElement())) {
      return true;
    }
  }
  while (typeElement.getSuperclass().getKind() != TypeKind.NONE) {
    typeElement = (TypeElement) ((DeclaredType) typeElement.getSuperclass()).asElement();
    if (find(interfaceName, typeElement)) {
      return true;
    }
  }
  return false;
}

代码示例来源:origin: weibocom/motan

private void writeAsyncClass(Element elem) throws ClassNotFoundException, IOException, Exception {
  if (elem.getKind().isInterface()) {
    TypeElement interfaceClazz = (TypeElement) elem;
    String className = interfaceClazz.getSimpleName().toString();
    TypeSpec.Builder classBuilder =
        TypeSpec.interfaceBuilder(className + ASYNC).addModifiers(Modifier.PUBLIC)
            .addSuperinterface(TypeName.get(elem.asType()));
    // add class generic type
    classBuilder.addTypeVariables(getTypeNames(interfaceClazz.getTypeParameters()));
    // add direct method
    addMethods(interfaceClazz, classBuilder);
    // add method form superinterface
    addSuperInterfaceMethods(interfaceClazz.getInterfaces(), classBuilder);
    // write class
    JavaFile javaFile =
        JavaFile.builder(processingEnv.getElementUtils().getPackageOf(interfaceClazz).getQualifiedName().toString(),
            classBuilder.build()).build();
    javaFile.writeTo(new File(System.getProperty("basedir"), TARGET_DIR));
  } else {
    processingEnv.getMessager().printMessage(Diagnostic.Kind.NOTE,
        "MotanAsyncProcessor not process, because " + elem.toString() + " not a interface.");
  }
}

代码示例来源:origin: requery/requery

private static boolean implementsInterface(Types types, TypeElement element, String interfaceName) {
  // check name or interfaces
  if (namesEqual(element, interfaceName)) {
    return true;
  }
  TypeMirror type = element.asType();
  while (type != null && type.getKind() != TypeKind.NONE) {
    TypeElement currentElement = (TypeElement) types.asElement(type);
    if (currentElement == null) {
      break;
    }
    List<? extends TypeMirror> interfaces = element.getInterfaces();
    for (TypeMirror interfaceType : interfaces) {
      interfaceType = types.erasure(interfaceType);
      TypeElement typeElement = (TypeElement) types.asElement(interfaceType);
      if (typeElement != null && implementsInterface(types, typeElement, interfaceName)) {
        return true;
      }
    }
    type = currentElement.getSuperclass();
  }
  return false;
}

代码示例来源:origin: hibernate/hibernate-orm

@Override
  public Boolean visitDeclared(DeclaredType declaredType, Element element) {
    if ( ElementKind.ENUM.equals( element.getKind() ) ) {
      return Boolean.TRUE;
    }

    if ( ElementKind.CLASS.equals( element.getKind() ) || ElementKind.INTERFACE.equals( element.getKind() ) ) {
      TypeElement typeElement = ( (TypeElement) element );
      String typeName = typeElement.getQualifiedName().toString();
      if ( Constants.BASIC_TYPES.contains( typeName ) ) {
        return Boolean.TRUE;
      }
      if ( TypeUtils.containsAnnotation( element, Constants.EMBEDDABLE ) ) {
        return Boolean.TRUE;
      }
      for ( TypeMirror mirror : typeElement.getInterfaces() ) {
        TypeElement interfaceElement = (TypeElement) context.getTypeUtils().asElement( mirror );
        if ( "java.io.Serializable".equals( interfaceElement.getQualifiedName().toString() ) ) {
          return Boolean.TRUE;
        }
      }
    }
    return Boolean.FALSE;
  }
}

代码示例来源:origin: facebook/litho

});
final List<? extends TypeMirror> mirrors = typeElement.getInterfaces();
final List<TypeSpec> superinterfaces =
  mirrors != null && !mirrors.isEmpty()

代码示例来源:origin: yanzhenjie/AndServer

private Map<String, TypeElement> findAnnotation(RoundEnvironment roundEnv) {
  Set<? extends Element> set = roundEnv.getElementsAnnotatedWith(Converter.class);
  Map<String, TypeElement> converterMap = new HashMap<>();
  for (Element element : set) {
    if (element instanceof TypeElement) {
      TypeElement typeElement = (TypeElement)element;
      Set<Modifier> modifiers = typeElement.getModifiers();
      Validate.isTrue(modifiers.contains(Modifier.PUBLIC), "The modifier public is missing on %s.",
        typeElement.getQualifiedName());
      List<? extends TypeMirror> interfaces = typeElement.getInterfaces();
      if (CollectionUtils.isEmpty(interfaces)) {
        mLog.w(
          String.format("The annotation Converter must be used in a subclass of [BodyConverter] on %s.",
            typeElement.getQualifiedName()));
        continue;
      }
      for (TypeMirror typeMirror : interfaces) {
        if (mConverter.equals(TypeName.get(typeMirror))) {
          converterMap.put(getGroup(typeElement), typeElement);
          break;
        } else {
          mLog.w(String.format(
            "The annotation Converter must be used in a subclass of [BodyConverter] on %s.",
            typeElement.getQualifiedName()));
        }
      }
    }
  }
  return converterMap;
}

代码示例来源:origin: yanzhenjie/AndServer

private Map<String, TypeElement> findAnnotation(RoundEnvironment roundEnv) {
  Set<? extends Element> set = roundEnv.getElementsAnnotatedWith(Resolver.class);
  Map<String, TypeElement> resolverMap = new HashMap<>();
  for (Element element : set) {
    if (element instanceof TypeElement) {
      TypeElement typeElement = (TypeElement)element;
      Set<Modifier> modifiers = typeElement.getModifiers();
      Validate.isTrue(modifiers.contains(Modifier.PUBLIC), "The modifier public is missing on %s.",
        typeElement.getQualifiedName());
      List<? extends TypeMirror> interfaces = typeElement.getInterfaces();
      if (CollectionUtils.isEmpty(interfaces)) {
        mLog.w(String.format(
          "The annotation Resolver must be used in a subclass of [ExceptionResolver] on %s.",
          typeElement.getQualifiedName()));
        continue;
      }
      for (TypeMirror typeMirror : interfaces) {
        if (mResolver.equals(TypeName.get(typeMirror))) {
          resolverMap.put(getGroup(typeElement), typeElement);
          break;
        } else {
          mLog.w(String.format(
            "The annotation Resolver must be used in a subclass of [ExceptionResolver] on %s.",
            typeElement.getQualifiedName()));
        }
      }
    }
  }
  return resolverMap;
}

代码示例来源:origin: immutables/immutables

private void collectInterfacesMirrors(TypeMirror typeMirror, TypevarContext context) {
 if (typeMirror.getKind() != TypeKind.DECLARED) {
  return;
 }
 DeclaredType declaredType = toDeclaredType(typeMirror);
 TypeElement e = toTypeElement(declaredType);
 if (e.getKind().isInterface()) {
  implementedInterfaces.add(e);
  String stringified = stringify(declaredType, context);
  TypevarContext nestedContext = new TypevarContext(e, stringified);
  implementedInterfaceNames.add(stringified);
  for (TypeMirror m : e.getInterfaces()) {
   collectInterfacesMirrors(m, nestedContext);
  }
 }
}

代码示例来源:origin: immutables/immutables

private void collectHierarchyMirrors(TypeMirror typeMirror, String stringRepresentation) {
 if (typeMirror.getKind() != TypeKind.DECLARED
   || typeMirror.toString().equals(Object.class.getName())) {
  return;
 }
 DeclaredType declaredType = toDeclaredType(typeMirror);
 TypeElement e = toTypeElement(declaredType);
 TypevarContext context = new TypevarContext(e, stringRepresentation);
 collectInterfacesMirrors(declaredType, context);
 TypeMirror superclassMirror = e.getSuperclass();
 if (superclassMirror.getKind() != TypeKind.NONE) {
  DeclaredType superclass = toDeclaredType(superclassMirror);
  String stringified = stringify(superclass, context);
  if (!stringified.equals(Object.class.getName())) {
   extendedClasses.add(toTypeElement(superclass));
   extendedClassNames.add(stringified);
   collectHierarchyMirrors(superclass, stringified);
  }
 }
 for (TypeMirror m : e.getInterfaces()) {
  collectUnresolvedInterface(m, context);
  collectInterfacesMirrors(m, context);
 }
}

相关文章