jodd-proxetta/src/main/java/jodd/proxetta/asm/ProxettaMethodBuilder.java
protected void createFirstChainDelegate_Start() {
		// check invalid access flags
		int access = msign.getAccessFlags();
		if (!wd.allowFinalMethods) {
			if ((access & AsmUtil.ACC_FINAL) != 0) {   // detect final
				throw new ProxettaException(
					"Unable to create proxy for final method: " + msign + ". Remove final modifier or change the pointcut definition.");
			}
		}

		// create proxy methods
		tmd = new TargetMethodData(msign, aspectList);

		access &= ~ACC_NATIVE;
		access &= ~ACC_ABSTRACT;

		methodVisitor = wd.dest.visitMethod(
				access, tmd.msign.getMethodName(), tmd.msign.getDescription(), tmd.msign.getAsmMethodSignature(), null);
	}
protected void createFirstChainDelegate_Start() {
		// check invalid access flags
		int access = msign.getAccessFlags();
		if (!wd.allowFinalMethods) {
			if ((access & AsmUtil.ACC_FINAL) != 0) {   // detect final
				throw new ProxettaException(
					"Unable to create proxy for final method: " + msign + ". Remove final modifier or change the pointcut definition.");
			}
		}

		// create proxy methods
		tmd = new TargetMethodData(msign, aspectList);

		access &= ~ACC_NATIVE;
		access &= ~ACC_ABSTRACT;

		methodVisitor = wd.dest.visitMethod(
				access, tmd.msign.getMethodName(), tmd.msign.getDescription(), tmd.msign.getAsmMethodSignature(), null);
	}
Starts creation of first chain delegate.