jodd-proxetta/src/main/java/jodd/proxetta/asm/ProxettaClassBuilder.java
@Override
	public MethodVisitor visitMethod(final int access, final String name, final String desc, final String signature, final String[] exceptions) {
		final MethodSignatureVisitor msign = targetClassInfo.lookupMethodSignatureVisitor(access, name, desc, wd.superReference);
		if (msign == null) {
			return null;
		}
		if (msign.isFinal && !wd.allowFinalMethods) {
			return null;
		}

		// destination constructors [A1]
		if (name.equals(INIT)) {
			MethodVisitor mv = wd.dest.visitMethod(access, name, desc, msign.getAsmMethodSignature(), null);
			return new ProxettaCtorBuilder(mv, msign, wd);
		}
		// ignore destination static block
		if (name.equals(CLINIT)) {
			return null;
		}
		return applyProxy(msign);
	}
@Override
	public MethodVisitor visitMethod(final int access, final String name, final String desc, final String signature, final String[] exceptions) {
		final MethodSignatureVisitor msign = targetClassInfo.lookupMethodSignatureVisitor(access, name, desc, wd.superReference);
		if (msign == null) {
			return null;
		}
		if (msign.isFinal && !wd.allowFinalMethods) {
			return null;
		}

		// destination constructors [A1]
		if (name.equals(INIT)) {
			MethodVisitor mv = wd.dest.visitMethod(access, name, desc, msign.getAsmMethodSignature(), null);
			return new ProxettaCtorBuilder(mv, msign, wd);
		}
		// ignore destination static block
		if (name.equals(CLINIT)) {
			return null;
		}
		return applyProxy(msign);
	}
@ Override public MethodVisitor visitMethod ( final int access , final String name , final String desc , final String signature , final String [ ] exceptions ) { final MethodSignatureVisitor msign = targetClassInfo . lookupMethodSignatureVisitor ( access , name , desc , wd . superReference ) ; if ( msign == null ) { return null ; } if ( msign . isFinal && ! wd . allowFinalMethods ) { return null ; } // destination constructors [A1] if ( name . equals ( INIT ) ) { MethodVisitor mv = wd . dest . visitMethod ( access , name , desc , msign . getAsmMethodSignature ( ) , null ) ; return new ProxettaCtorBuilder ( mv , msign , wd ) ; } // ignore destination static block if ( name . equals ( CLINIT ) ) { return null ; } return applyProxy ( msign ) ; }
Creates proxified methods and constructors.
Destination proxy will have all constructors as a target class, using {@link jodd.proxetta.asm.ProxettaCtorBuilder}.
Static initializers are removed, since they will be execute in target anyway.
For each method, {@link ProxettaMethodBuilder} determines if method matches pointcut. If so, method will be proxified.
Creates proxified methods and constructors . Destination proxy will have all constructors as a target class using {