Exemplo n.º 1
0
  /** Read and process any {@link Implements} annotations on the mixin */
  private void readImplementations(ClassNode classNode) {
    this.interfaces.addAll(classNode.interfaces);

    AnnotationNode implementsAnnotation =
        ASMHelper.getInvisibleAnnotation(classNode, Implements.class);
    if (implementsAnnotation == null) {
      return;
    }

    List<AnnotationNode> interfaces = ASMHelper.getAnnotationValue(implementsAnnotation);
    if (interfaces == null) {
      return;
    }

    for (AnnotationNode interfaceNode : interfaces) {
      InterfaceInfo interfaceInfo = InterfaceInfo.fromAnnotation(this, interfaceNode);
      this.softImplements.add(interfaceInfo);
      this.interfaces.add(interfaceInfo.getInternalName());
      this.classInfo.addInterface(interfaceInfo.getInternalName());
    }
  }