/** * Visits the class. * * @param access * @param name * @param signature * @param superName * @param interfaces */ public void visit( final int version, final int access, final String name, final String signature, final String superName, final String[] interfaces) { ExpressionContext ctx = new ExpressionContext(PointcutType.WITHIN, m_classInfo, m_classInfo); if (!classFilter(m_classInfo, ctx, m_ctx.getDefinitions())) { m_declaringTypeName = name; m_mixinFields = new HashMap(); // populate with fields already present for mixins from previous weaving for (int i = 0; i < m_classInfo.getFields().length; i++) { FieldInfo fieldInfo = m_classInfo.getFields()[i]; if (fieldInfo.getName().startsWith(MIXIN_FIELD_NAME)) { m_mixinFields.put(fieldInfo.getType(), fieldInfo); } } // add fields and method for (not already there) mixins addMixinMembers(); } super.visit(version, access, name, signature, superName, interfaces); }
@Override public void visit( final int version, final int access, final String name, final String signature, final String superName, final String[] interfaces) { Set<String> interfacesSet = new LinkedHashSet<String>(); if (interfaces != null) Collections.addAll(interfacesSet, interfaces); for (Class extraInterface : classList) { if (extraInterface.isInterface()) interfacesSet.add(BytecodeHelper.getClassInternalName(extraInterface)); } final boolean addGroovyObjectSupport = !GroovyObject.class.isAssignableFrom(superClass); if (addGroovyObjectSupport) interfacesSet.add("groovy/lang/GroovyObject"); super.visit( V1_5, ACC_PUBLIC, proxyName, signature, BytecodeHelper.getClassInternalName(superClass), interfacesSet.toArray(new String[interfacesSet.size()])); addDelegateFields(); if (addGroovyObjectSupport) { createGroovyObjectSupport(); } for (Class clazz : classList) { visitClass(clazz); } }
public void visit( final int version, final int access, final String name, final String signature, final String superName, final String[] interfaces) { this.cname = name; super.visit(version, access, name, signature, superName, interfaces); }
@Override public void visit( int version, int access, String name, String signature, String superName, String[] interfaces) { className = name; super.visit(version, access, name, signature, superName, interfaces); }
public void visit( int version, int access, String name, String signature, String superName, String[] interfaces) { super.visit(version, access, name, signature, superName, interfaces); myClassName = name; mySuperName = superName; }