private void replaceExtendsByImplements(final ClassNode cNode) { ClassNode superClass = cNode.getUnresolvedSuperClass(); if (Traits.isTrait(superClass)) { // move from super class to interface; cNode.setSuperClass(ClassHelper.OBJECT_TYPE); cNode.setUnresolvedSuperClass(ClassHelper.OBJECT_TYPE); cNode.addInterface(superClass); resolveScope(cNode); } }
static void configureClass(ClassNode classNode, ClassStub stub, AsmReferenceResolver resolver) { if (stub.signature != null) { parseClassSignature(classNode, stub.signature, resolver); return; } if (stub.superName != null) { classNode.setSuperClass(resolver.resolveClass(AsmDecompiler.fromInternalName(stub.superName))); } ClassNode[] interfaces = new ClassNode[stub.interfaceNames.length]; for (int i = 0; i < stub.interfaceNames.length; i++) { interfaces[i] = resolver.resolveClass(AsmDecompiler.fromInternalName(stub.interfaceNames[i])); } classNode.setInterfaces(interfaces); }
private void setScriptBaseClassFromConfig(ClassNode cn) { String baseClassName = null; if (unit != null) { baseClassName = unit.getConfig().getScriptBaseClass(); } else if (context != null) { baseClassName = context.getConfiguration().getScriptBaseClass(); } if (baseClassName != null) { if (!cn.getSuperClass().getName().equals(baseClassName)) { cn.setSuperClass(ClassHelper.make(baseClassName)); AnnotationNode annotationNode = new AnnotationNode(BaseScriptASTTransformation.MY_TYPE); cn.addAnnotation(annotationNode); } } }
@Override public void call(final SourceUnit source, final GeneratorContext context, final ClassNode classNode) throws CompilationFailedException { if (classNode.isScriptBody()) { classNode.setSuperClass(ClassHelper.make(config.getBaseTemplateClass())); createConstructor(classNode); transformRunMethod(classNode, source); VariableScopeVisitor visitor = new VariableScopeVisitor(source); visitor.visitClass(classNode); } }
public static ClassNode makeEnumNode(String name, int modifiers, ClassNode[] interfaces, ClassNode outerClass) { modifiers = modifiers | Opcodes.ACC_FINAL | Opcodes.ACC_ENUM; ClassNode enumClass; if (outerClass==null) { enumClass = new ClassNode(name,modifiers,null,interfaces,MixinNode.EMPTY_ARRAY); } else { name = outerClass.getName() + "$" + name; modifiers |= Opcodes.ACC_STATIC; enumClass = new InnerClassNode(outerClass,name,modifiers,null,interfaces,MixinNode.EMPTY_ARRAY); } // set super class and generics info // "enum X" -> class X extends Enum<X> GenericsType gt = new GenericsType(enumClass); ClassNode superClass = ClassHelper.makeWithoutCaching("java.lang.Enum"); superClass.setGenericsTypes(new GenericsType[]{gt}); enumClass.setSuperClass(superClass); superClass.setRedirect(ClassHelper.Enum_Type); return enumClass; }
helper.setSuperClass(ClassHelper.OBJECT_TYPE);
cNode.addAnnotations(annotations); cNode.setSuperClass(baseScriptType);
cNode.setSuperClass(baseScriptType);
innerClass.setSuperClass(classNode.getPlainNodeReference()); innerClass.setModifiers(classNode.getModifiers() | Opcodes.ACC_FINAL);
public void visit(ASTNode[] nodes, final SourceUnit source) { for (ClassNode classNode : source.getAST().getClasses()) { out: for (MethodNode method : classNode.getMethods()) { for (AnnotationNode ann : method.getAnnotations()) { if (ann.getClassNode().getName().equals(Command.class.getName())) { ClassNode superClass = classNode.getSuperClass(); if (superClass == null || superClass.getName().equals("java.lang.Object")) { classNode.setSuperClass(CRASH_COMMAND); } break out; } } } } } }
private void setScriptBaseClassFromConfig(ClassNode cn) { if (unit != null) { String baseClassName = unit.getConfig().getScriptBaseClass(); if(baseClassName != null) { if(!cn.getSuperClass().getName().equals(baseClassName)) { cn.setSuperClass(ClassHelper.make(baseClassName)); } } } }
public void visit(ASTNode[] nodes, final SourceUnit source) { for (ClassNode classNode : source.getAST().getClasses()) { out: for (MethodNode method : classNode.getMethods()) { for (AnnotationNode ann : method.getAnnotations()) { if (ann.getClassNode().getName().equals(Command.class.getName())) { ClassNode superClass = classNode.getSuperClass(); if (superClass == null || superClass.getName().equals("java.lang.Object")) { classNode.setSuperClass(CRASH_COMMAND); } break out; } } } } } }
public void visit(ASTNode[] nodes, final SourceUnit source) { for (ClassNode classNode : source.getAST().getClasses()) { out: for (MethodNode method : classNode.getMethods()) { for (AnnotationNode ann : method.getAnnotations()) { if (ann.getClassNode().getName().equals(Command.class.getName())) { ClassNode superClass = classNode.getSuperClass(); if (superClass == null || superClass.getName().equals("java.lang.Object")) { classNode.setSuperClass(CRASH_COMMAND); } break out; } } } } } }
public void visit(ASTNode[] nodes, final SourceUnit source) { for (ClassNode classNode : source.getAST().getClasses()) { out: for (MethodNode method : classNode.getMethods()) { for (AnnotationNode ann : method.getAnnotations()) { if (ann.getClassNode().getName().equals(Command.class.getName())) { ClassNode superClass = classNode.getSuperClass(); if (superClass == null || superClass.getName().equals("java.lang.Object")) { classNode.setSuperClass(CRASH_COMMAND); } break out; } } } } } }
protected void transform(ClassNode classNode) { ClassNode superClass = classNode.getSuperClass(); ClassNode superClassNode = getSuperClassNode(classNode); if (superClassNode != null && ClassHelper.OBJECT_TYPE.equals(superClass)) { LOG.debug("Setting {} as the superclass of {}", superClassNode.getName(), classNode.getName()); classNode.setSuperClass(superClassNode); } else if (!classNode.implementsInterface(getInterfaceNode())) { inject(classNode, superClass); } }
@Override public void call(final SourceUnit source, final GeneratorContext context, final ClassNode classNode) throws CompilationFailedException { if (classNode.isScriptBody()) { classNode.setSuperClass(ClassHelper.make(config.getBaseTemplateClass())); createConstructor(classNode); transformRunMethod(classNode, source); VariableScopeVisitor visitor = new VariableScopeVisitor(source); visitor.visitClass(classNode); } }
public static ClassNode makeEnumNode(String name, int modifiers, ClassNode[] interfaces, ClassNode outerClass) { modifiers = modifiers | Opcodes.ACC_FINAL | Opcodes.ACC_ENUM; ClassNode enumClass; if (outerClass==null) { enumClass = new ClassNode(name,modifiers,null,interfaces,MixinNode.EMPTY_ARRAY); } else { name = outerClass.getName() + "$" + name; enumClass = new InnerClassNode(outerClass,name,modifiers,null,interfaces,MixinNode.EMPTY_ARRAY); } // set super class and generics info // "enum X" -> class X extends Enum<X> GenericsType gt = new GenericsType(enumClass); ClassNode superClass = ClassHelper.makeWithoutCaching("java.lang.Enum"); superClass.setGenericsTypes(new GenericsType[]{gt}); enumClass.setSuperClass(superClass); superClass.setRedirect(ClassHelper.Enum_Type); return enumClass; }
public static ClassNode makeEnumNode(String name, int modifiers, ClassNode[] interfaces, ClassNode outerClass) { modifiers = modifiers | Opcodes.ACC_FINAL | Opcodes.ACC_ENUM; ClassNode enumClass; if (outerClass==null) { enumClass = new ClassNode(name,modifiers,null,interfaces,MixinNode.EMPTY_ARRAY); } else { name = outerClass.getName() + "$" + name; enumClass = new InnerClassNode(outerClass,name,modifiers,null,interfaces,MixinNode.EMPTY_ARRAY); } // set super class and generics info // "enum X" -> class X extends Enum<X> GenericsType gt = new GenericsType(enumClass); ClassNode superClass = ClassHelper.makeWithoutCaching("java.lang.Enum"); superClass.setGenericsTypes(new GenericsType[]{gt}); enumClass.setSuperClass(superClass); superClass.setRedirect(ClassHelper.Enum_Type); return enumClass; }
public static ClassNode makeEnumNode(String name, int modifiers, ClassNode[] interfaces, ClassNode outerClass) { modifiers = modifiers | Opcodes.ACC_FINAL | Opcodes.ACC_ENUM; ClassNode enumClass; if (outerClass==null) { enumClass = new ClassNode(name,modifiers,null,interfaces,MixinNode.EMPTY_ARRAY); } else { name = outerClass.getName() + "$" + name; enumClass = new InnerClassNode(outerClass,name,modifiers,null,interfaces,MixinNode.EMPTY_ARRAY); } // set super class and generics info // "enum X" -> class X extends Enum<X> GenericsType gt = new GenericsType(enumClass); ClassNode superClass = ClassHelper.makeWithoutCaching("java.lang.Enum"); superClass.setGenericsTypes(new GenericsType[]{gt}); enumClass.setSuperClass(superClass); superClass.setRedirect(ClassHelper.Enum_Type); return enumClass; }
public static ClassNode makeEnumNode(String name, int modifiers, ClassNode[] interfaces, ClassNode outerClass) { modifiers = modifiers | Opcodes.ACC_FINAL | Opcodes.ACC_ENUM; ClassNode enumClass; if (outerClass==null) { enumClass = new ClassNode(name,modifiers,null,interfaces,MixinNode.EMPTY_ARRAY); } else { name = outerClass.getName() + "$" + name; enumClass = new InnerClassNode(outerClass,name,modifiers,null,interfaces,MixinNode.EMPTY_ARRAY); } // set super class and generics info // "enum X" -> class X extends Enum<X> GenericsType gt = new GenericsType(enumClass); ClassNode superClass = ClassHelper.makeWithoutCaching("java.lang.Enum"); superClass.setGenericsTypes(new GenericsType[]{gt}); enumClass.setSuperClass(superClass); superClass.setRedirect(ClassHelper.Enum_Type); return enumClass; }