/** 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()); } }