[jboss-cvs] JBossAS SVN: r61066 - in projects/aop/trunk/aop/src: test/org/jboss/test/aop/beforeafterArgs and 1 other directory.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Fri Mar 2 23:31:17 EST 2007


Author: flavia.rainone at jboss.com
Date: 2007-03-02 23:31:17 -0500 (Fri, 02 Mar 2007)
New Revision: 61066

Added:
   projects/aop/trunk/aop/src/test/org/jboss/test/aop/beforeafterArgs/OverloadedAdvicePOJOCaller.java
   projects/aop/trunk/aop/src/test/org/jboss/test/aop/beforeafterArgs/OverloadedAfterCallAspect.java
   projects/aop/trunk/aop/src/test/org/jboss/test/aop/beforeafterArgs/OverloadedAroundCallAspect.java
   projects/aop/trunk/aop/src/test/org/jboss/test/aop/beforeafterArgs/OverloadedBeforeCallAspect.java
   projects/aop/trunk/aop/src/test/org/jboss/test/aop/beforeafterArgs/OverloadedThrowingCallAspect.java
Modified:
   projects/aop/trunk/aop/src/resources/test/beforeafterArgs/jboss-aop.xml
   projects/aop/trunk/aop/src/test/org/jboss/test/aop/beforeafterArgs/OverloadedAdvicePOJO.java
   projects/aop/trunk/aop/src/test/org/jboss/test/aop/beforeafterArgs/OverloadedAdviceTestCase.java
   projects/aop/trunk/aop/src/test/org/jboss/test/aop/beforeafterArgs/OverloadedAroundAspect.java
   projects/aop/trunk/aop/src/test/org/jboss/test/aop/beforeafterArgs/OverloadedBeforeAspect.java
Log:
[JBAOP-37] Overloaded tests for @Target and @Caller parameters.

Modified: projects/aop/trunk/aop/src/resources/test/beforeafterArgs/jboss-aop.xml
===================================================================
--- projects/aop/trunk/aop/src/resources/test/beforeafterArgs/jboss-aop.xml	2007-03-03 04:29:41 UTC (rev 61065)
+++ projects/aop/trunk/aop/src/resources/test/beforeafterArgs/jboss-aop.xml	2007-03-03 04:31:17 UTC (rev 61066)
@@ -457,11 +457,212 @@
       <after name="after53" aspect="org.jboss.test.aop.beforeafterArgs.OverloadedAfterAspect"/>
       <after name="after54" aspect="org.jboss.test.aop.beforeafterArgs.OverloadedAfterAspect"/>
       <after name="after55" aspect="org.jboss.test.aop.beforeafterArgs.OverloadedAfterAspect"/>
+      <after name="after56" aspect="org.jboss.test.aop.beforeafterArgs.OverloadedAfterAspect"/>
+      <after name="after57" aspect="org.jboss.test.aop.beforeafterArgs.OverloadedAfterAspect"/>
+      <after name="after58" aspect="org.jboss.test.aop.beforeafterArgs.OverloadedAfterAspect"/>
+      <after name="after59" aspect="org.jboss.test.aop.beforeafterArgs.OverloadedAfterAspect"/>
+      <after name="after60" aspect="org.jboss.test.aop.beforeafterArgs.OverloadedAfterAspect"/>
+      <after name="after61" aspect="org.jboss.test.aop.beforeafterArgs.OverloadedAfterAspect"/>
+      <after name="after62" aspect="org.jboss.test.aop.beforeafterArgs.OverloadedAfterAspect"/>
+      <after name="after63" aspect="org.jboss.test.aop.beforeafterArgs.OverloadedAfterAspect"/>
+      <after name="after64" aspect="org.jboss.test.aop.beforeafterArgs.OverloadedAfterAspect"/>
+      <after name="after65" aspect="org.jboss.test.aop.beforeafterArgs.OverloadedAfterAspect"/>
+      <after name="after66" aspect="org.jboss.test.aop.beforeafterArgs.OverloadedAfterAspect"/>
   	</bind>
   	
   	<aspect class="org.jboss.test.aop.beforeafterArgs.OverloadedThrowingAspect" scope="PER_VM"/>
    
-  	<bind pointcut="call(* org.jboss.test.aop.beforeafterArgs.OverloadedAdvicePOJO->method4(..))">
+  	<bind pointcut="execution(org.jboss.test.aop.beforeafterArgs.OverloadedAdvicePOJO->new(org.jboss.test.aop.beforeafterArgs.SubInterface,org.jboss.test.aop.beforeafterArgs.Implementor))">
    	<throwing name="throwing1" aspect="org.jboss.test.aop.beforeafterArgs.OverloadedThrowingAspect"/>
   	</bind>
+  	
+  	<aspect class="org.jboss.test.aop.beforeafterArgs.OverloadedBeforeCallAspect" scope="PER_VM"/>
+  	<aspect class="org.jboss.test.aop.beforeafterArgs.OverloadedAroundCallAspect" scope="PER_VM"/>
+  	<aspect class="org.jboss.test.aop.beforeafterArgs.OverloadedAfterCallAspect" scope="PER_VM"/>
+  	
+  	<bind pointcut="call(* org.jboss.test.aop.beforeafterArgs.OverloadedAdvicePOJO->method3(int))">
+  	   <before name="before1" aspect="org.jboss.test.aop.beforeafterArgs.OverloadedBeforeCallAspect"/>
+  	   <before name="before2" aspect="org.jboss.test.aop.beforeafterArgs.OverloadedBeforeCallAspect"/>
+  	   <before name="before3" aspect="org.jboss.test.aop.beforeafterArgs.OverloadedBeforeCallAspect"/>
+  	   <before name="before4" aspect="org.jboss.test.aop.beforeafterArgs.OverloadedBeforeCallAspect"/>
+  	   <before name="before5" aspect="org.jboss.test.aop.beforeafterArgs.OverloadedBeforeCallAspect"/>
+  	   <before name="before6" aspect="org.jboss.test.aop.beforeafterArgs.OverloadedBeforeCallAspect"/>
+  	   <before name="before7" aspect="org.jboss.test.aop.beforeafterArgs.OverloadedBeforeCallAspect"/>
+  	   <before name="before8" aspect="org.jboss.test.aop.beforeafterArgs.OverloadedBeforeCallAspect"/>
+  	   <before name="before9" aspect="org.jboss.test.aop.beforeafterArgs.OverloadedBeforeCallAspect"/>
+  	   <before name="before10" aspect="org.jboss.test.aop.beforeafterArgs.OverloadedBeforeCallAspect"/>
+  	   <before name="before11" aspect="org.jboss.test.aop.beforeafterArgs.OverloadedBeforeCallAspect"/>
+  	   <before name="before12" aspect="org.jboss.test.aop.beforeafterArgs.OverloadedBeforeCallAspect"/>
+  	   <before name="before13" aspect="org.jboss.test.aop.beforeafterArgs.OverloadedBeforeCallAspect"/>
+  	   <before name="before14" aspect="org.jboss.test.aop.beforeafterArgs.OverloadedBeforeCallAspect"/>
+  	   <before name="before15" aspect="org.jboss.test.aop.beforeafterArgs.OverloadedBeforeCallAspect"/>
+  	   <before name="before16" aspect="org.jboss.test.aop.beforeafterArgs.OverloadedBeforeCallAspect"/>
+  	   <before name="before17" aspect="org.jboss.test.aop.beforeafterArgs.OverloadedBeforeCallAspect"/>
+  	   <before name="before18" aspect="org.jboss.test.aop.beforeafterArgs.OverloadedBeforeCallAspect"/>
+  	   <before name="before19" aspect="org.jboss.test.aop.beforeafterArgs.OverloadedBeforeCallAspect"/>
+  	   <before name="before20" aspect="org.jboss.test.aop.beforeafterArgs.OverloadedBeforeCallAspect"/>
+  	   <before name="before21" aspect="org.jboss.test.aop.beforeafterArgs.OverloadedBeforeCallAspect"/>
+  	   <before name="before22" aspect="org.jboss.test.aop.beforeafterArgs.OverloadedBeforeCallAspect"/>
+  	   <before name="before23" aspect="org.jboss.test.aop.beforeafterArgs.OverloadedBeforeCallAspect"/>
+  	   <before name="before24" aspect="org.jboss.test.aop.beforeafterArgs.OverloadedBeforeCallAspect"/>
+  	   <before name="before25" aspect="org.jboss.test.aop.beforeafterArgs.OverloadedBeforeCallAspect"/>
+  	   <before name="before26" aspect="org.jboss.test.aop.beforeafterArgs.OverloadedBeforeCallAspect"/>
+  	   <before name="before27" aspect="org.jboss.test.aop.beforeafterArgs.OverloadedBeforeCallAspect"/>
+  	   <before name="before28" aspect="org.jboss.test.aop.beforeafterArgs.OverloadedBeforeCallAspect"/>
+  	   <before name="before29" aspect="org.jboss.test.aop.beforeafterArgs.OverloadedBeforeCallAspect"/>
+  	   <before name="before30" aspect="org.jboss.test.aop.beforeafterArgs.OverloadedBeforeCallAspect"/>
+  	   <before name="before31" aspect="org.jboss.test.aop.beforeafterArgs.OverloadedBeforeCallAspect"/>
+  	   <before name="before32" aspect="org.jboss.test.aop.beforeafterArgs.OverloadedBeforeCallAspect"/>
+  	   <before name="before33" aspect="org.jboss.test.aop.beforeafterArgs.OverloadedBeforeCallAspect"/>
+  	   <before name="before34" aspect="org.jboss.test.aop.beforeafterArgs.OverloadedBeforeCallAspect"/>
+  	   <before name="before35" aspect="org.jboss.test.aop.beforeafterArgs.OverloadedBeforeCallAspect"/>
+  	   <before name="before36" aspect="org.jboss.test.aop.beforeafterArgs.OverloadedBeforeCallAspect"/>
+  	   <before name="before37" aspect="org.jboss.test.aop.beforeafterArgs.OverloadedBeforeCallAspect"/>
+  	   <before name="before38" aspect="org.jboss.test.aop.beforeafterArgs.OverloadedBeforeCallAspect"/>
+  	   <before name="before39" aspect="org.jboss.test.aop.beforeafterArgs.OverloadedBeforeCallAspect"/>
+  	   <before name="before40" aspect="org.jboss.test.aop.beforeafterArgs.OverloadedBeforeCallAspect"/>
+  	   <before name="before41" aspect="org.jboss.test.aop.beforeafterArgs.OverloadedBeforeCallAspect"/>
+  	   <before name="before42" aspect="org.jboss.test.aop.beforeafterArgs.OverloadedBeforeCallAspect"/>
+  	   <before name="before43" aspect="org.jboss.test.aop.beforeafterArgs.OverloadedBeforeCallAspect"/>
+  	   <before name="before44" aspect="org.jboss.test.aop.beforeafterArgs.OverloadedBeforeCallAspect"/>
+  	   <before name="before45" aspect="org.jboss.test.aop.beforeafterArgs.OverloadedBeforeCallAspect"/>
+  	   <advice name="around1" aspect="org.jboss.test.aop.beforeafterArgs.OverloadedAroundCallAspect"/>
+  	   <advice name="around2" aspect="org.jboss.test.aop.beforeafterArgs.OverloadedAroundCallAspect"/>
+  	   <advice name="around3" aspect="org.jboss.test.aop.beforeafterArgs.OverloadedAroundCallAspect"/>
+  	   <advice name="around4" aspect="org.jboss.test.aop.beforeafterArgs.OverloadedAroundCallAspect"/>
+  	   <advice name="around5" aspect="org.jboss.test.aop.beforeafterArgs.OverloadedAroundCallAspect"/>
+  	   <advice name="around6" aspect="org.jboss.test.aop.beforeafterArgs.OverloadedAroundCallAspect"/>
+  	   <advice name="around7" aspect="org.jboss.test.aop.beforeafterArgs.OverloadedAroundCallAspect"/>
+  	   <advice name="around8" aspect="org.jboss.test.aop.beforeafterArgs.OverloadedAroundCallAspect"/>
+  	   <advice name="around9" aspect="org.jboss.test.aop.beforeafterArgs.OverloadedAroundCallAspect"/>
+  	   <advice name="around10" aspect="org.jboss.test.aop.beforeafterArgs.OverloadedAroundCallAspect"/>
+  	   <advice name="around11" aspect="org.jboss.test.aop.beforeafterArgs.OverloadedAroundCallAspect"/>
+  	   <advice name="around12" aspect="org.jboss.test.aop.beforeafterArgs.OverloadedAroundCallAspect"/>
+  	   <advice name="around13" aspect="org.jboss.test.aop.beforeafterArgs.OverloadedAroundCallAspect"/>
+  	   <advice name="around14" aspect="org.jboss.test.aop.beforeafterArgs.OverloadedAroundCallAspect"/>
+  	   <advice name="around15" aspect="org.jboss.test.aop.beforeafterArgs.OverloadedAroundCallAspect"/>
+  	   <advice name="around16" aspect="org.jboss.test.aop.beforeafterArgs.OverloadedAroundCallAspect"/>
+  	   <advice name="around17" aspect="org.jboss.test.aop.beforeafterArgs.OverloadedAroundCallAspect"/>
+  	   <advice name="around18" aspect="org.jboss.test.aop.beforeafterArgs.OverloadedAroundCallAspect"/>
+  	   <advice name="around19" aspect="org.jboss.test.aop.beforeafterArgs.OverloadedAroundCallAspect"/>
+  	   <advice name="around20" aspect="org.jboss.test.aop.beforeafterArgs.OverloadedAroundCallAspect"/>
+  	   <advice name="around21" aspect="org.jboss.test.aop.beforeafterArgs.OverloadedAroundCallAspect"/>
+  	   <advice name="around22" aspect="org.jboss.test.aop.beforeafterArgs.OverloadedAroundCallAspect"/>
+  	   <advice name="around23" aspect="org.jboss.test.aop.beforeafterArgs.OverloadedAroundCallAspect"/>
+  	   <advice name="around24" aspect="org.jboss.test.aop.beforeafterArgs.OverloadedAroundCallAspect"/>
+  	   <advice name="around25" aspect="org.jboss.test.aop.beforeafterArgs.OverloadedAroundCallAspect"/>
+  	   <advice name="around26" aspect="org.jboss.test.aop.beforeafterArgs.OverloadedAroundCallAspect"/>
+  	   <advice name="around27" aspect="org.jboss.test.aop.beforeafterArgs.OverloadedAroundCallAspect"/>
+  	   <advice name="around28" aspect="org.jboss.test.aop.beforeafterArgs.OverloadedAroundCallAspect"/>
+  	   <advice name="around29" aspect="org.jboss.test.aop.beforeafterArgs.OverloadedAroundCallAspect"/>
+  	   <advice name="around30" aspect="org.jboss.test.aop.beforeafterArgs.OverloadedAroundCallAspect"/>
+  	   <advice name="around31" aspect="org.jboss.test.aop.beforeafterArgs.OverloadedAroundCallAspect"/>
+  	   <advice name="around32" aspect="org.jboss.test.aop.beforeafterArgs.OverloadedAroundCallAspect"/>
+  	   <advice name="around33" aspect="org.jboss.test.aop.beforeafterArgs.OverloadedAroundCallAspect"/>
+  	   <advice name="around34" aspect="org.jboss.test.aop.beforeafterArgs.OverloadedAroundCallAspect"/>
+  	   <advice name="around35" aspect="org.jboss.test.aop.beforeafterArgs.OverloadedAroundCallAspect"/>
+  	   <advice name="around36" aspect="org.jboss.test.aop.beforeafterArgs.OverloadedAroundCallAspect"/>
+  	   <advice name="around37" aspect="org.jboss.test.aop.beforeafterArgs.OverloadedAroundCallAspect"/>
+  	   <advice name="around38" aspect="org.jboss.test.aop.beforeafterArgs.OverloadedAroundCallAspect"/>
+  	   <advice name="around39" aspect="org.jboss.test.aop.beforeafterArgs.OverloadedAroundCallAspect"/>
+  	   <advice name="around40" aspect="org.jboss.test.aop.beforeafterArgs.OverloadedAroundCallAspect"/>
+  	   <advice name="around41" aspect="org.jboss.test.aop.beforeafterArgs.OverloadedAroundCallAspect"/>
+  	   <advice name="around42" aspect="org.jboss.test.aop.beforeafterArgs.OverloadedAroundCallAspect"/>
+  	   <advice name="around43" aspect="org.jboss.test.aop.beforeafterArgs.OverloadedAroundCallAspect"/>
+  	   <advice name="around44" aspect="org.jboss.test.aop.beforeafterArgs.OverloadedAroundCallAspect"/>
+  	   <advice name="around45" aspect="org.jboss.test.aop.beforeafterArgs.OverloadedAroundCallAspect"/>
+  	   <advice name="around46" aspect="org.jboss.test.aop.beforeafterArgs.OverloadedAroundCallAspect"/>
+  	   <after name="after1" aspect="org.jboss.test.aop.beforeafterArgs.OverloadedAfterCallAspect"/>
+  	   <after name="after2" aspect="org.jboss.test.aop.beforeafterArgs.OverloadedAfterCallAspect"/>
+  	   <after name="after3" aspect="org.jboss.test.aop.beforeafterArgs.OverloadedAfterCallAspect"/>
+  	   <after name="after4" aspect="org.jboss.test.aop.beforeafterArgs.OverloadedAfterCallAspect"/>
+  	   <after name="after5" aspect="org.jboss.test.aop.beforeafterArgs.OverloadedAfterCallAspect"/>
+  	   <after name="after6" aspect="org.jboss.test.aop.beforeafterArgs.OverloadedAfterCallAspect"/>
+  	   <after name="after7" aspect="org.jboss.test.aop.beforeafterArgs.OverloadedAfterCallAspect"/>
+  	   <after name="after8" aspect="org.jboss.test.aop.beforeafterArgs.OverloadedAfterCallAspect"/>
+  	   <after name="after9" aspect="org.jboss.test.aop.beforeafterArgs.OverloadedAfterCallAspect"/>
+  	   <after name="after10" aspect="org.jboss.test.aop.beforeafterArgs.OverloadedAfterCallAspect"/>
+  	   <after name="after11" aspect="org.jboss.test.aop.beforeafterArgs.OverloadedAfterCallAspect"/>
+  	   <after name="after12" aspect="org.jboss.test.aop.beforeafterArgs.OverloadedAfterCallAspect"/>
+  	   <after name="after13" aspect="org.jboss.test.aop.beforeafterArgs.OverloadedAfterCallAspect"/>
+  	   <after name="after14" aspect="org.jboss.test.aop.beforeafterArgs.OverloadedAfterCallAspect"/>
+  	   <after name="after15" aspect="org.jboss.test.aop.beforeafterArgs.OverloadedAfterCallAspect"/>
+  	   <after name="after16" aspect="org.jboss.test.aop.beforeafterArgs.OverloadedAfterCallAspect"/>
+  	   <after name="after17" aspect="org.jboss.test.aop.beforeafterArgs.OverloadedAfterCallAspect"/>
+  	   <after name="after18" aspect="org.jboss.test.aop.beforeafterArgs.OverloadedAfterCallAspect"/>
+  	   <after name="after19" aspect="org.jboss.test.aop.beforeafterArgs.OverloadedAfterCallAspect"/>
+  	   <after name="after20" aspect="org.jboss.test.aop.beforeafterArgs.OverloadedAfterCallAspect"/>
+      <after name="after21" aspect="org.jboss.test.aop.beforeafterArgs.OverloadedAfterCallAspect"/>
+      <after name="after22" aspect="org.jboss.test.aop.beforeafterArgs.OverloadedAfterCallAspect"/>
+      <after name="after23" aspect="org.jboss.test.aop.beforeafterArgs.OverloadedAfterCallAspect"/>
+      <after name="after24" aspect="org.jboss.test.aop.beforeafterArgs.OverloadedAfterCallAspect"/>
+      <after name="after25" aspect="org.jboss.test.aop.beforeafterArgs.OverloadedAfterCallAspect"/>
+      <after name="after26" aspect="org.jboss.test.aop.beforeafterArgs.OverloadedAfterCallAspect"/>
+      <after name="after27" aspect="org.jboss.test.aop.beforeafterArgs.OverloadedAfterCallAspect"/>
+      <after name="after28" aspect="org.jboss.test.aop.beforeafterArgs.OverloadedAfterCallAspect"/>
+      <after name="after29" aspect="org.jboss.test.aop.beforeafterArgs.OverloadedAfterCallAspect"/>
+      <after name="after30" aspect="org.jboss.test.aop.beforeafterArgs.OverloadedAfterCallAspect"/>
+      <after name="after31" aspect="org.jboss.test.aop.beforeafterArgs.OverloadedAfterCallAspect"/>
+      <after name="after32" aspect="org.jboss.test.aop.beforeafterArgs.OverloadedAfterCallAspect"/>
+      <after name="after33" aspect="org.jboss.test.aop.beforeafterArgs.OverloadedAfterCallAspect"/>
+      <after name="after34" aspect="org.jboss.test.aop.beforeafterArgs.OverloadedAfterCallAspect"/>
+      <after name="after35" aspect="org.jboss.test.aop.beforeafterArgs.OverloadedAfterCallAspect"/>
+      <after name="after36" aspect="org.jboss.test.aop.beforeafterArgs.OverloadedAfterCallAspect"/>
+      <after name="after37" aspect="org.jboss.test.aop.beforeafterArgs.OverloadedAfterCallAspect"/>
+      <after name="after38" aspect="org.jboss.test.aop.beforeafterArgs.OverloadedAfterCallAspect"/>
+      <after name="after39" aspect="org.jboss.test.aop.beforeafterArgs.OverloadedAfterCallAspect"/>
+      <after name="after40" aspect="org.jboss.test.aop.beforeafterArgs.OverloadedAfterCallAspect"/>
+      <after name="after41" aspect="org.jboss.test.aop.beforeafterArgs.OverloadedAfterCallAspect"/>
+      <after name="after42" aspect="org.jboss.test.aop.beforeafterArgs.OverloadedAfterCallAspect"/>
+      <after name="after43" aspect="org.jboss.test.aop.beforeafterArgs.OverloadedAfterCallAspect"/>
+      <after name="after44" aspect="org.jboss.test.aop.beforeafterArgs.OverloadedAfterCallAspect"/>
+      <after name="after45" aspect="org.jboss.test.aop.beforeafterArgs.OverloadedAfterCallAspect"/>
+      <after name="after46" aspect="org.jboss.test.aop.beforeafterArgs.OverloadedAfterCallAspect"/>
+      <after name="after47" aspect="org.jboss.test.aop.beforeafterArgs.OverloadedAfterCallAspect"/>
+      <after name="after48" aspect="org.jboss.test.aop.beforeafterArgs.OverloadedAfterCallAspect"/>
+      <after name="after49" aspect="org.jboss.test.aop.beforeafterArgs.OverloadedAfterCallAspect"/>
+      <after name="after50" aspect="org.jboss.test.aop.beforeafterArgs.OverloadedAfterCallAspect"/>
+  	</bind>
+  	
+  	<aspect class="org.jboss.test.aop.beforeafterArgs.OverloadedThrowingCallAspect" scope="PER_VM"/>
+  	
+  	<bind pointcut="call(* org.jboss.test.aop.beforeafterArgs.OverloadedAdvicePOJO->method4(boolean))">
+  	   <throwing name="throwing1" aspect="org.jboss.test.aop.beforeafterArgs.OverloadedThrowingCallAspect"/>
+  	   <throwing name="throwing2" aspect="org.jboss.test.aop.beforeafterArgs.OverloadedThrowingCallAspect"/>
+  	   <throwing name="throwing3" aspect="org.jboss.test.aop.beforeafterArgs.OverloadedThrowingCallAspect"/>
+  	   <throwing name="throwing4" aspect="org.jboss.test.aop.beforeafterArgs.OverloadedThrowingCallAspect"/>
+  	   <throwing name="throwing5" aspect="org.jboss.test.aop.beforeafterArgs.OverloadedThrowingCallAspect"/>
+  	   <throwing name="throwing6" aspect="org.jboss.test.aop.beforeafterArgs.OverloadedThrowingCallAspect"/>
+  	   <throwing name="throwing7" aspect="org.jboss.test.aop.beforeafterArgs.OverloadedThrowingCallAspect"/>
+  	   <throwing name="throwing8" aspect="org.jboss.test.aop.beforeafterArgs.OverloadedThrowingCallAspect"/>
+  	   <throwing name="throwing9" aspect="org.jboss.test.aop.beforeafterArgs.OverloadedThrowingCallAspect"/>
+  	   <throwing name="throwing10" aspect="org.jboss.test.aop.beforeafterArgs.OverloadedThrowingCallAspect"/>
+  	   <throwing name="throwing11" aspect="org.jboss.test.aop.beforeafterArgs.OverloadedThrowingCallAspect"/>
+  	   <throwing name="throwing12" aspect="org.jboss.test.aop.beforeafterArgs.OverloadedThrowingCallAspect"/>
+  	   <throwing name="throwing13" aspect="org.jboss.test.aop.beforeafterArgs.OverloadedThrowingCallAspect"/>
+  	   <throwing name="throwing14" aspect="org.jboss.test.aop.beforeafterArgs.OverloadedThrowingCallAspect"/>
+  	   <throwing name="throwing15" aspect="org.jboss.test.aop.beforeafterArgs.OverloadedThrowingCallAspect"/>
+  	   <throwing name="throwing16" aspect="org.jboss.test.aop.beforeafterArgs.OverloadedThrowingCallAspect"/>
+  	   <throwing name="throwing17" aspect="org.jboss.test.aop.beforeafterArgs.OverloadedThrowingCallAspect"/>
+  	   <throwing name="throwing18" aspect="org.jboss.test.aop.beforeafterArgs.OverloadedThrowingCallAspect"/>
+  	   <throwing name="throwing19" aspect="org.jboss.test.aop.beforeafterArgs.OverloadedThrowingCallAspect"/>
+  	   <throwing name="throwing20" aspect="org.jboss.test.aop.beforeafterArgs.OverloadedThrowingCallAspect"/>
+  	   <throwing name="throwing21" aspect="org.jboss.test.aop.beforeafterArgs.OverloadedThrowingCallAspect"/>
+  	   <throwing name="throwing22" aspect="org.jboss.test.aop.beforeafterArgs.OverloadedThrowingCallAspect"/>
+  	   <throwing name="throwing23" aspect="org.jboss.test.aop.beforeafterArgs.OverloadedThrowingCallAspect"/>
+  	   <throwing name="throwing24" aspect="org.jboss.test.aop.beforeafterArgs.OverloadedThrowingCallAspect"/>
+  	   <throwing name="throwing25" aspect="org.jboss.test.aop.beforeafterArgs.OverloadedThrowingCallAspect"/>
+  	   <throwing name="throwing26" aspect="org.jboss.test.aop.beforeafterArgs.OverloadedThrowingCallAspect"/>
+  	   <throwing name="throwing27" aspect="org.jboss.test.aop.beforeafterArgs.OverloadedThrowingCallAspect"/>
+  	   <throwing name="throwing28" aspect="org.jboss.test.aop.beforeafterArgs.OverloadedThrowingCallAspect"/>
+  	   <throwing name="throwing29" aspect="org.jboss.test.aop.beforeafterArgs.OverloadedThrowingCallAspect"/>
+  	   <throwing name="throwing30" aspect="org.jboss.test.aop.beforeafterArgs.OverloadedThrowingCallAspect"/>
+  	   <throwing name="throwing31" aspect="org.jboss.test.aop.beforeafterArgs.OverloadedThrowingCallAspect"/>
+  	   <throwing name="throwing32" aspect="org.jboss.test.aop.beforeafterArgs.OverloadedThrowingCallAspect"/>
+  	   <throwing name="throwing33" aspect="org.jboss.test.aop.beforeafterArgs.OverloadedThrowingCallAspect"/>
+  	   <throwing name="throwing34" aspect="org.jboss.test.aop.beforeafterArgs.OverloadedThrowingCallAspect"/>
+  	   <throwing name="throwing35" aspect="org.jboss.test.aop.beforeafterArgs.OverloadedThrowingCallAspect"/>
+  	   <throwing name="throwing36" aspect="org.jboss.test.aop.beforeafterArgs.OverloadedThrowingCallAspect"/>
+  	   <throwing name="throwing37" aspect="org.jboss.test.aop.beforeafterArgs.OverloadedThrowingCallAspect"/>
+  	</bind>
 </aop>
\ No newline at end of file

Modified: projects/aop/trunk/aop/src/test/org/jboss/test/aop/beforeafterArgs/OverloadedAdvicePOJO.java
===================================================================
--- projects/aop/trunk/aop/src/test/org/jboss/test/aop/beforeafterArgs/OverloadedAdvicePOJO.java	2007-03-03 04:29:41 UTC (rev 61065)
+++ projects/aop/trunk/aop/src/test/org/jboss/test/aop/beforeafterArgs/OverloadedAdvicePOJO.java	2007-03-03 04:31:17 UTC (rev 61066)
@@ -30,6 +30,13 @@
 {
    public String text;
    
+   public OverloadedAdvicePOJO() {}
+   
+   public OverloadedAdvicePOJO(SubInterface arg1, Implementor arg2) throws POJOException
+   {
+      throw new POJOException();
+   }
+   
    public void method1(int arg1, long arg2) {}
    
    public SuperClass method2(float arg1, SubValue arg2)
@@ -37,12 +44,12 @@
       return null;
    }
    
-   public void method3() throws POJOException
+   public long method3(int arg)
    {
-      this.method4(null, null);
+      return (long) arg;
    }
    
-   public void method4(SubInterface arg1, Implementor arg2) throws POJOException
+   public void method4(boolean arg) throws POJOException
    {
       throw new POJOException();
    }

Added: projects/aop/trunk/aop/src/test/org/jboss/test/aop/beforeafterArgs/OverloadedAdvicePOJOCaller.java
===================================================================
--- projects/aop/trunk/aop/src/test/org/jboss/test/aop/beforeafterArgs/OverloadedAdvicePOJOCaller.java	                        (rev 0)
+++ projects/aop/trunk/aop/src/test/org/jboss/test/aop/beforeafterArgs/OverloadedAdvicePOJOCaller.java	2007-03-03 04:31:17 UTC (rev 61066)
@@ -0,0 +1,45 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.test.aop.beforeafterArgs;
+
+/**
+ * Plain old java object used on overloaded advice tests )for Call and Target
+ * parameters).
+ * 
+ * @author <a href="flavia.rainone at jboss.com">Flavia Rainone</a>
+ */
+public class OverloadedAdvicePOJOCaller extends SuperClass
+{
+   public void callMethod3(OverloadedAdvicePOJO pojo)
+   {
+      pojo.method3(0);
+   }
+   
+   public void callMethod4(OverloadedAdvicePOJO pojo)
+   {
+      try
+      {
+         pojo.method4(true);
+      }
+      catch(POJOException e) {}
+   }
+}
\ No newline at end of file

Modified: projects/aop/trunk/aop/src/test/org/jboss/test/aop/beforeafterArgs/OverloadedAdviceTestCase.java
===================================================================
--- projects/aop/trunk/aop/src/test/org/jboss/test/aop/beforeafterArgs/OverloadedAdviceTestCase.java	2007-03-03 04:29:41 UTC (rev 61065)
+++ projects/aop/trunk/aop/src/test/org/jboss/test/aop/beforeafterArgs/OverloadedAdviceTestCase.java	2007-03-03 04:31:17 UTC (rev 61066)
@@ -174,23 +174,346 @@
       assertEquals("SuperClass,SuperClass,float", OverloadedAfterAspect.after53);
       assertEquals("Object,SuperClass,SubValue", OverloadedAfterAspect.after54);
       assertEquals("Object,SuperClass,SuperValue", OverloadedAfterAspect.after55);
-      /*assertEquals("SuperClass,SuperClass,Object", OverloadedAfterAspect.after56);
-      assertEquals("Object,SuperClass", OverloadedAfterAspect.after57);
-      assertEquals("Object,Object", OverloadedAfterAspect.after58);
-      assertEquals("void,float,SubValue", OverloadedAfterAspect.after59);
-      assertEquals("Object,float", OverloadedAfterAspect.after60);
-      assertEquals("void,SubValue", OverloadedAfterAspect.after61);
-      assertEquals("void,SuperValue", OverloadedAfterAspect.after62);
-      assertEquals("void", OverloadedAfterAspect.after63);*/
+      assertEquals("SuperClass,SuperClass,Object", OverloadedAfterAspect.after56);
+      assertEquals("Object,SuperClass,Object[]", OverloadedAfterAspect.after57);
+      assertEquals("Object,Object,Object[]", OverloadedAfterAspect.after58);
+      assertEquals("Object,SuperClass", OverloadedAfterAspect.after59);
+      assertEquals("Object,Object", OverloadedAfterAspect.after60);
+      assertEquals("void,float,SubValue", OverloadedAfterAspect.after61);
+      assertEquals("Object,float", OverloadedAfterAspect.after62);
+      assertEquals("void,SubValue", OverloadedAfterAspect.after63);
+      assertEquals("void,SuperValue", OverloadedAfterAspect.after64);
+      assertEquals("void,Object[]", OverloadedAfterAspect.after65);
+      assertEquals("void", OverloadedAfterAspect.after66);
    }
    
    public void test4()
    {
       try
       {
-         pojo.method3();
+         new OverloadedAdvicePOJO(null, null);
       } catch (POJOException pe) {}
       assertEquals("JoinPointInfo,Throwable,SubInterface,Implementor",
             OverloadedThrowingAspect.throwing1);
    }
+   
+   public void test5()
+   {
+      (new OverloadedAdvicePOJOCaller()).callMethod3(pojo);
+      assertEquals(
+            "MethodByMethodInfo,OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,int",
+            OverloadedBeforeCallAspect.before1);
+      assertEquals("MethodByMethodInfo,OverloadedAdvicePOJO,SuperClass,int",
+            OverloadedBeforeCallAspect.before2);
+      assertEquals("MethodByMethodInfo,Object,OverloadedAdvicePOJOCaller,int",
+            OverloadedBeforeCallAspect.before3);
+      assertEquals("MethodByMethodInfo,Object,SuperClass,int",
+            OverloadedBeforeCallAspect.before4);
+      assertEquals(
+            "MethodByMethodInfo,OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,Object[]",
+            OverloadedBeforeCallAspect.before5);
+      assertEquals("MethodByMethodInfo,OverloadedAdvicePOJO,SuperClass,Object[]",
+            OverloadedBeforeCallAspect.before6);
+      assertEquals("MethodByMethodInfo,Object,OverloadedAdvicePOJOCaller,Object[]",
+            OverloadedBeforeCallAspect.before7);
+      assertEquals("MethodByMethodInfo,Object,SuperClass,Object[]",
+            OverloadedBeforeCallAspect.before8);
+      assertEquals(
+            "MethodByMethodInfo,OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller",
+            OverloadedBeforeCallAspect.before9);
+      assertEquals("MethodByMethodInfo,OverloadedAdvicePOJO,SuperClass",
+            OverloadedBeforeCallAspect.before10);
+      assertEquals("MethodByMethodInfo,Object,OverloadedAdvicePOJOCaller",
+            OverloadedBeforeCallAspect.before11);
+      assertEquals("MethodByMethodInfo,Object,SuperClass",
+            OverloadedBeforeCallAspect.before12);
+      assertEquals("MethodByMethodInfo,OverloadedAdvicePOJO,int",
+            OverloadedBeforeCallAspect.before13);
+      assertEquals("MethodByMethodInfo,Object,int",
+            OverloadedBeforeCallAspect.before14);
+      assertEquals("MethodByMethodInfo,OverloadedAdvicePOJO,Object[]",
+            OverloadedBeforeCallAspect.before15);
+      assertEquals("MethodByMethodInfo,Object,Object[]",
+            OverloadedBeforeCallAspect.before16);
+      assertEquals("MethodByMethodInfo,OverloadedAdvicePOJOCaller,int",
+            OverloadedBeforeCallAspect.before17);
+      assertEquals("MethodByMethodInfo,SuperClass,int",
+            OverloadedBeforeCallAspect.before18);
+      assertEquals("MethodByMethodInfo,OverloadedAdvicePOJOCaller,Object[]",
+            OverloadedBeforeCallAspect.before19);
+      assertEquals("MethodByMethodInfo,SuperClass,Object[]",
+            OverloadedBeforeCallAspect.before20);
+      assertEquals("MethodByMethodInfo,int", OverloadedBeforeCallAspect.before21);
+      assertEquals("MethodByMethodInfo,Object[]",
+            OverloadedBeforeCallAspect.before22);
+      assertEquals("MethodByMethodInfo", OverloadedBeforeCallAspect.before23);
+      assertEquals("OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,int",
+            OverloadedBeforeCallAspect.before24);
+      assertEquals("OverloadedAdvicePOJO,SuperClass,int",
+            OverloadedBeforeCallAspect.before25);
+      assertEquals("Object,OverloadedAdvicePOJOCaller,int",
+            OverloadedBeforeCallAspect.before26);
+      assertEquals("Object,SuperClass,int", OverloadedBeforeCallAspect.before27);
+      assertEquals("OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,Object[]",
+            OverloadedBeforeCallAspect.before28);
+      assertEquals("OverloadedAdvicePOJO,SuperClass,Object[]",
+            OverloadedBeforeCallAspect.before29);
+      assertEquals("Object,OverloadedAdvicePOJOCaller,Object[]",
+            OverloadedBeforeCallAspect.before30);
+      assertEquals("Object,SuperClass,Object[]",
+            OverloadedBeforeCallAspect.before31);
+      assertEquals("OverloadedAdvicePOJO,int", OverloadedBeforeCallAspect.before32);
+      assertEquals("Object,int", OverloadedBeforeCallAspect.before33);
+      assertEquals("OverloadedAdvicePOJO,Object[]",
+            OverloadedBeforeCallAspect.before34);
+      assertEquals("Object,Object[]", OverloadedBeforeCallAspect.before35);
+      assertEquals("OverloadedAdvicePOJO", OverloadedBeforeCallAspect.before36);
+      assertEquals("Object", OverloadedBeforeCallAspect.before37);
+      assertEquals("OverloadedAdvicePOJOCaller,int",
+            OverloadedBeforeCallAspect.before38);
+      assertEquals("SuperClass,int", OverloadedBeforeCallAspect.before39);
+      assertEquals("OverloadedAdvicePOJOCaller,Object[]",
+            OverloadedBeforeCallAspect.before40);
+      assertEquals("SuperClass,Object[]", OverloadedBeforeCallAspect.before41);
+      assertEquals("OverloadedAdvicePOJOCaller",
+            OverloadedBeforeCallAspect.before42);
+      assertEquals("SuperClass", OverloadedBeforeCallAspect.before43);
+      assertEquals("int", OverloadedBeforeCallAspect.before44);
+      assertEquals("Object[]", OverloadedBeforeCallAspect.before45);
+   }
+   
+   public void test6()
+   {
+      (new OverloadedAdvicePOJOCaller()).callMethod3(pojo);
+      assertEquals("defaultSignature", OverloadedAroundCallAspect.around1);
+      assertEquals(
+            "MethodCalledByMethodInvocation,OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,int",
+            OverloadedAroundCallAspect.around2);
+      assertEquals(
+            "MethodCalledByMethodInvocation,OverloadedAdvicePOJO,SuperClass,int",
+            OverloadedAroundCallAspect.around3);
+      assertEquals(
+            "MethodCalledByMethodInvocation,Object,OverloadedAdvicePOJOCaller,int",
+            OverloadedAroundCallAspect.around4);
+      assertEquals("MethodCalledByMethodInvocation,Object,SuperClass,int",
+            OverloadedAroundCallAspect.around5);
+      assertEquals(
+            "MethodCalledByMethodInvocation,OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,Object[]",
+            OverloadedAroundCallAspect.around6);
+      assertEquals(
+            "MethodCalledByMethodInvocation,OverloadedAdvicePOJO,SuperClass,Object[]",
+            OverloadedAroundCallAspect.around7);
+      assertEquals(
+            "MethodCalledByMethodInvocation,Object,OverloadedAdvicePOJOCaller,Object[]",
+            OverloadedAroundCallAspect.around8);
+      assertEquals("MethodCalledByMethodInvocation,Object,SuperClass,Object[]",
+            OverloadedAroundCallAspect.around9);
+      assertEquals(
+            "MethodCalledByMethodInvocation,OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller",
+            OverloadedAroundCallAspect.around10);
+      assertEquals("MethodCalledByMethodInvocation,OverloadedAdvicePOJO,SuperClass",
+            OverloadedAroundCallAspect.around11);
+      assertEquals(
+            "MethodCalledByMethodInvocation,Object,OverloadedAdvicePOJOCaller",
+            OverloadedAroundCallAspect.around12);
+      assertEquals("MethodCalledByMethodInvocation,Object,SuperClass",
+            OverloadedAroundCallAspect.around13);
+      assertEquals("MethodCalledByMethodInvocation,OverloadedAdvicePOJO,int",
+            OverloadedAroundCallAspect.around14);
+      assertEquals("MethodCalledByMethodInvocation,Object,int",
+            OverloadedAroundCallAspect.around15);
+      assertEquals("MethodCalledByMethodInvocation,OverloadedAdvicePOJO,Object[]",
+            OverloadedAroundCallAspect.around16);
+      assertEquals("MethodCalledByMethodInvocation,Object,Object[]",
+            OverloadedAroundCallAspect.around17);
+      assertEquals("MethodCalledByMethodInvocation,OverloadedAdvicePOJOCaller,int",
+            OverloadedAroundCallAspect.around18);
+      assertEquals("MethodCalledByMethodInvocation,SuperClass,int",
+            OverloadedAroundCallAspect.around19);
+      assertEquals(
+            "MethodCalledByMethodInvocation,OverloadedAdvicePOJOCaller,Object[]",
+            OverloadedAroundCallAspect.around20);
+      assertEquals("MethodCalledByMethodInvocation,SuperClass,Object[]",
+            OverloadedAroundCallAspect.around21);
+      assertEquals("MethodCalledByMethodInvocation,int",
+            OverloadedAroundCallAspect.around22);
+      assertEquals("MethodCalledByMethodInvocation,Object[]",
+            OverloadedAroundCallAspect.around23);
+      assertEquals("MethodCalledByMethodInvocation",
+            OverloadedAroundCallAspect.around24);
+      assertEquals("OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,int",
+            OverloadedAroundCallAspect.around25);
+      assertEquals("OverloadedAdvicePOJO,SuperClass,int",
+            OverloadedAroundCallAspect.around26);
+      assertEquals("Object,OverloadedAdvicePOJOCaller,int",
+            OverloadedAroundCallAspect.around27);
+      assertEquals("Object,SuperClass,int", OverloadedAroundCallAspect.around28);
+      assertEquals("OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,Object[]",
+            OverloadedAroundCallAspect.around29);
+      assertEquals("OverloadedAdvicePOJO,SuperClass,Object[]",
+            OverloadedAroundCallAspect.around30);
+      assertEquals("Object,OverloadedAdvicePOJOCaller,Object[]",
+            OverloadedAroundCallAspect.around31);
+      assertEquals("Object,SuperClass,Object[]",
+            OverloadedAroundCallAspect.around32);
+      assertEquals("OverloadedAdvicePOJO,int", OverloadedAroundCallAspect.around33);
+      assertEquals("Object,int", OverloadedAroundCallAspect.around34);
+      assertEquals("OverloadedAdvicePOJO,Object[]",
+            OverloadedAroundCallAspect.around35);
+      assertEquals("Object,Object[]", OverloadedAroundCallAspect.around36);
+      assertEquals("OverloadedAdvicePOJO", OverloadedAroundCallAspect.around37);
+      assertEquals("Object", OverloadedAroundCallAspect.around38);
+      assertEquals("OverloadedAdvicePOJOCaller,int",
+            OverloadedAroundCallAspect.around39);
+      assertEquals("SuperClass,int", OverloadedAroundCallAspect.around40);
+      assertEquals("OverloadedAdvicePOJOCaller,Object[]",
+            OverloadedAroundCallAspect.around41);
+      assertEquals("SuperClass,Object[]", OverloadedAroundCallAspect.around42);
+      assertEquals("OverloadedAdvicePOJOCaller",
+            OverloadedAroundCallAspect.around43);
+      assertEquals("SuperClass", OverloadedAroundCallAspect.around44);
+      assertEquals("int", OverloadedAroundCallAspect.around45);
+      assertEquals("Object[]", OverloadedAroundCallAspect.around46);
+   }
+   
+   public void test7()
+   {
+      (new OverloadedAdvicePOJOCaller()).callMethod3(pojo);
+      assertEquals("MethodByMethodInfo,OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,long,int", OverloadedAfterCallAspect.after1);
+      assertEquals("MethodByMethodInfo,OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,long,Object[]", OverloadedAfterCallAspect.after2);
+      assertEquals("MethodByMethodInfo,OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,long", OverloadedAfterCallAspect.after3);
+      assertEquals("MethodByMethodInfo,OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,int", OverloadedAfterCallAspect.after4);
+      assertEquals("MethodByMethodInfo,OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller", OverloadedAfterCallAspect.after5);
+      assertEquals("MethodByMethodInfo,OverloadedAdvicePOJO,long,int", OverloadedAfterCallAspect.after6);
+      assertEquals("MethodByMethodInfo,OverloadedAdvicePOJO,long,Object[]", OverloadedAfterCallAspect.after7);
+      assertEquals("MethodByMethodInfo,OverloadedAdvicePOJO,long", OverloadedAfterCallAspect.after8);
+      assertEquals("MethodByMethodInfo,OverloadedAdvicePOJO,int", OverloadedAfterCallAspect.after9);
+      assertEquals("MethodByMethodInfo,OverloadedAdvicePOJO", OverloadedAfterCallAspect.after10);
+      assertEquals("MethodByMethodInfo,OverloadedAdvicePOJOCaller,long,int", OverloadedAfterCallAspect.after11);
+      assertEquals("MethodByMethodInfo,OverloadedAdvicePOJOCaller,long,Object[]", OverloadedAfterCallAspect.after12);
+      assertEquals("MethodByMethodInfo,OverloadedAdvicePOJOCaller,long", OverloadedAfterCallAspect.after13);
+      assertEquals("MethodByMethodInfo,OverloadedAdvicePOJOCaller,int", OverloadedAfterCallAspect.after14);
+      assertEquals("MethodByMethodInfo,OverloadedAdvicePOJOCaller", OverloadedAfterCallAspect.after15);
+      assertEquals("MethodByMethodInfo,long,int", OverloadedAfterCallAspect.after16);
+      assertEquals("MethodByMethodInfo,long,Object[]", OverloadedAfterCallAspect.after17);
+      assertEquals("MethodByMethodInfo,long", OverloadedAfterCallAspect.after18);
+      assertEquals("MethodByMethodInfo,int", OverloadedAfterCallAspect.after19);
+      assertEquals("MethodByMethodInfo", OverloadedAfterCallAspect.after20);
+      assertEquals("OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,long,int", OverloadedAfterCallAspect.after21);
+      assertEquals("OverloadedAdvicePOJO,SuperClass,long,int", OverloadedAfterCallAspect.after22);
+      assertEquals("Object,OverloadedAdvicePOJOCaller,long,int", OverloadedAfterCallAspect.after23);
+      assertEquals("Object,SuperClass,long,int", OverloadedAfterCallAspect.after24);
+      assertEquals("OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,long,Object[]", OverloadedAfterCallAspect.after25);
+      assertEquals("OverloadedAdvicePOJO,SuperClass,long,Object[]", OverloadedAfterCallAspect.after26);
+      assertEquals("Object,OverloadedAdvicePOJOCaller,long,Object[]", OverloadedAfterCallAspect.after27);
+      assertEquals("Object,SuperClass,long,Object[]", OverloadedAfterCallAspect.after28);
+      assertEquals("OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,long", OverloadedAfterCallAspect.after29);
+      assertEquals("OverloadedAdvicePOJO,SuperClass,long", OverloadedAfterCallAspect.after30);
+      assertEquals("Object,OverloadedAdvicePOJOCaller,long", OverloadedAfterCallAspect.after31);
+      assertEquals("Object,SuperClass,long", OverloadedAfterCallAspect.after32);
+      assertEquals("OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,int", OverloadedAfterCallAspect.after33);
+      assertEquals("OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller", OverloadedAfterCallAspect.after34);
+      assertEquals("OverloadedAdvicePOJO,long,int", OverloadedAfterCallAspect.after35);
+      assertEquals("Object,long,int", OverloadedAfterCallAspect.after36);
+      assertEquals("OverloadedAdvicePOJO,long,Object[]", OverloadedAfterCallAspect.after37);
+      assertEquals("Object,long,Object[]", OverloadedAfterCallAspect.after38);
+      assertEquals("OverloadedAdvicePOJO,long", OverloadedAfterCallAspect.after39);
+      assertEquals("Object,long", OverloadedAfterCallAspect.after40);
+      assertEquals("OverloadedAdvicePOJO,int", OverloadedAfterCallAspect.after41);
+      assertEquals("OverloadedAdvicePOJO", OverloadedAfterCallAspect.after42);
+      assertEquals("OverloadedAdvicePOJOCaller,long,int", OverloadedAfterCallAspect.after43);
+      assertEquals("SuperClass,long,int", OverloadedAfterCallAspect.after44);
+      assertEquals("OverloadedAdvicePOJOCaller,long,Object[]", OverloadedAfterCallAspect.after45);
+      assertEquals("SuperClass,long,Object[]", OverloadedAfterCallAspect.after46);
+      assertEquals("OverloadedAdvicePOJOCaller,long", OverloadedAfterCallAspect.after47);
+      assertEquals("SuperClass,long", OverloadedAfterCallAspect.after48);
+      assertEquals("OverloadedAdvicePOJOCaller,int", OverloadedAfterCallAspect.after49);
+      assertEquals("OverloadedAdvicePOJOCaller", OverloadedAfterCallAspect.after50);
+   }
+   
+   public void test8()
+   {
+      (new OverloadedAdvicePOJOCaller()).callMethod4(pojo);
+      assertEquals(
+            "MethodByMethodInfo,OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,Throwable,boolean",
+            OverloadedThrowingCallAspect.throwing1);
+      assertEquals(
+            "MethodByMethodInfo,OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,Throwable,Object[]",
+            OverloadedThrowingCallAspect.throwing2);
+      assertEquals(
+            "MethodByMethodInfo,OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,Throwable",
+            OverloadedThrowingCallAspect.throwing3);
+      assertEquals(
+            "MethodByMethodInfo,OverloadedAdvicePOJO,Throwable,boolean",
+            OverloadedThrowingCallAspect.throwing4);
+      assertEquals(
+            "MethodByMethodInfo,OverloadedAdvicePOJO,Throwable,Object[]",
+            OverloadedThrowingCallAspect.throwing5);
+      assertEquals(
+            "MethodByMethodInfo,OverloadedAdvicePOJO,Throwable",
+            OverloadedThrowingCallAspect.throwing6);
+      assertEquals(
+            "MethodByMethodInfo,OverloadedAdvicePOJOCaller,Throwable,boolean",
+            OverloadedThrowingCallAspect.throwing7);
+      assertEquals(
+            "MethodByMethodInfo,OverloadedAdvicePOJOCaller,Throwable,Object[]",
+            OverloadedThrowingCallAspect.throwing8);
+      assertEquals("MethodByMethodInfo,OverloadedAdvicePOJOCaller,Throwable",
+            OverloadedThrowingCallAspect.throwing9);
+      assertEquals("MethodByMethodInfo,Throwable,boolean",
+            OverloadedThrowingCallAspect.throwing10);
+      assertEquals("MethodByMethodInfo,Throwable,Object[]",
+            OverloadedThrowingCallAspect.throwing11);
+      assertEquals("MethodByMethodInfo,Throwable",
+            OverloadedThrowingCallAspect.throwing12);
+      assertEquals(
+            "OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,Throwable,boolean",
+            OverloadedThrowingCallAspect.throwing13);
+      assertEquals("OverloadedAdvicePOJO,SuperClass,Throwable,boolean",
+            OverloadedThrowingCallAspect.throwing14);
+      assertEquals("Object,OverloadedAdvicePOJOCaller,Throwable,boolean",
+            OverloadedThrowingCallAspect.throwing15);
+      assertEquals("Object,SuperClass,Throwable,boolean",
+            OverloadedThrowingCallAspect.throwing16);
+      assertEquals(
+            "OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,Throwable,Object[]",
+            OverloadedThrowingCallAspect.throwing17);
+      assertEquals("OverloadedAdvicePOJO,SuperClass,Throwable,Object[]",
+            OverloadedThrowingCallAspect.throwing18);
+      assertEquals("Object,OverloadedAdvicePOJOCaller,Throwable,Object[]",
+            OverloadedThrowingCallAspect.throwing19);
+      assertEquals("Object,SuperClass,Throwable,Object[]",
+            OverloadedThrowingCallAspect.throwing20);
+      assertEquals("OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,Throwable",
+            OverloadedThrowingCallAspect.throwing21);
+      assertEquals("OverloadedAdvicePOJO,SuperClass,Throwable",
+            OverloadedThrowingCallAspect.throwing22);
+      assertEquals("Object,OverloadedAdvicePOJOCaller,Throwable",
+            OverloadedThrowingCallAspect.throwing23);
+      assertEquals("Object,SuperClass,Throwable",
+            OverloadedThrowingCallAspect.throwing24);
+      assertEquals("OverloadedAdvicePOJO,Throwable,boolean",
+            OverloadedThrowingCallAspect.throwing25);
+      assertEquals("Object,Throwable,boolean",
+            OverloadedThrowingCallAspect.throwing26);
+      assertEquals("OverloadedAdvicePOJO,Throwable,Object[]",
+            OverloadedThrowingCallAspect.throwing27);
+      assertEquals("Object,Throwable,Object[]",
+            OverloadedThrowingCallAspect.throwing28);
+      assertEquals("OverloadedAdvicePOJO,Throwable",
+            OverloadedThrowingCallAspect.throwing29);
+      assertEquals("Object,Throwable", OverloadedThrowingCallAspect.throwing30);
+      assertEquals("OverloadedAdvicePOJOCaller,Throwable,boolean",
+            OverloadedThrowingCallAspect.throwing31);
+      assertEquals("SuperClass,Throwable,boolean",
+            OverloadedThrowingCallAspect.throwing32);
+      assertEquals("OverloadedAdvicePOJOCaller,Throwable,Object[]",
+            OverloadedThrowingCallAspect.throwing33);
+      assertEquals("SuperClass,Throwable,Object[]",
+            OverloadedThrowingCallAspect.throwing34);
+      assertEquals("OverloadedAdvicePOJOCaller,Throwable",
+            OverloadedThrowingCallAspect.throwing35);
+      assertEquals("SuperClass,Throwable", OverloadedThrowingCallAspect.throwing36);
+      assertEquals("Throwable,boolean", OverloadedThrowingCallAspect.throwing37);
+   }
 }
\ No newline at end of file

Added: projects/aop/trunk/aop/src/test/org/jboss/test/aop/beforeafterArgs/OverloadedAfterCallAspect.java
===================================================================
--- projects/aop/trunk/aop/src/test/org/jboss/test/aop/beforeafterArgs/OverloadedAfterCallAspect.java	                        (rev 0)
+++ projects/aop/trunk/aop/src/test/org/jboss/test/aop/beforeafterArgs/OverloadedAfterCallAspect.java	2007-03-03 04:31:17 UTC (rev 61066)
@@ -0,0 +1,8716 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.test.aop.beforeafterArgs;
+
+import org.jboss.aop.MethodByMethodInfo;
+import org.jboss.aop.advice.annotation.Arg;
+import org.jboss.aop.advice.annotation.Args;
+import org.jboss.aop.advice.annotation.Caller;
+import org.jboss.aop.advice.annotation.JoinPoint;
+import org.jboss.aop.advice.annotation.Return;
+import org.jboss.aop.advice.annotation.Target;
+
+/**
+ * Aspect used on overloaded after advice tests (for Call and Target tests
+ * only).
+ *
+ * @author <a href="flavia.rainone at jboss.com">Flavia Rainone</a>
+ */
+public class OverloadedAfterCallAspect
+{
+   static String after1;
+   static String after2;
+   static String after3;
+   static String after4;
+   static String after5;
+   static String after6;
+   static String after7;
+   static String after8;
+   static String after9;
+   static String after10;
+   static String after11;
+   static String after12;
+   static String after13;
+   static String after14;
+   static String after15;
+   static String after16;
+   static String after17;
+   static String after18;
+   static String after19;
+   static String after20;
+   static String after21;
+   static String after22;
+   static String after23;
+   static String after24;
+   static String after25;
+   static String after26;
+   static String after27;
+   static String after28;
+   static String after29;
+   static String after30;
+   static String after31;
+   static String after32;
+   static String after33;
+   static String after34;
+   static String after35;
+   static String after36;
+   static String after37;
+   static String after38;
+   static String after39;
+   static String after40;
+   static String after41;
+   static String after42;
+   static String after43;
+   static String after44;
+   static String after45;
+   static String after46;
+   static String after47;
+   static String after48;
+   static String after49;
+   static String after50;
+   
+   public static void clear()
+   {
+      after1 = null;
+      after2 = null;
+      after3 = null;
+      after4 = null;
+      after5 = null;
+      after6 = null;
+      after7 = null;
+      after8 = null;
+      after9 = null;
+      after10 = null;
+      after11 = null;
+      after12 = null;
+      after13 = null;
+      after14 = null;
+      after15 = null;
+      after16 = null;
+      after17 = null;
+      after18 = null;
+      after19 = null;
+      after20 = null;
+      after21 = null;
+      after22 = null;
+      after23 = null;
+      after24 = null;
+      after25 = null;
+      after26 = null;
+      after27 = null;
+      after28 = null;
+      after29 = null;
+      after30 = null;
+      after31 = null;
+      after32 = null;
+      after33 = null;
+      after34 = null;
+      after35 = null;
+      after36 = null;
+      after37 = null;
+      after38 = null;
+      after39 = null;
+      after40 = null;
+      after41 = null;
+      after42 = null;
+      after43 = null;
+      after44 = null;
+      after45 = null;
+      after46 = null;
+      after47 = null;
+      after48 = null;
+      after49 = null;
+      after50 = null;
+   }
+
+   /* AFTER1 ADVICE */
+   
+   public void after1(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Return long valueReturned,
+         @Arg int arg)
+   {
+      after1 = "MethodByMethodInfo,OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,long,int";
+   }
+   
+   public void after1(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Return long valueReturned,
+         @Args Object[] args)
+   {
+      after1 = "MethodByMethodInfo,OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,long,Object[]";
+   }
+   
+   public void after1(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Return long valueReturned)
+   {
+      after1 = "MethodByMethodInfo,OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,long";
+   }
+   
+   public void after1(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+   {
+      after1 = "MethodByMethodInfo,OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,int";
+   }
+   
+   public void after1(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Args Object[] args)
+   {
+      after1 = "MethodByMethodInfo,OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,Object[]";
+   }
+   
+   public void after1(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller)
+   {
+      after1 = "MethodByMethodInfo,OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller";
+   }
+   
+   public void after1(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Target OverloadedAdvicePOJO target, @Return long valueReturned,
+         @Arg int arg)
+   {
+      after1 = "MethodByMethodInfo,OverloadedAdvicePOJO,long,int";
+   }
+   
+   public void after1(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Target OverloadedAdvicePOJO target, @Return long valueReturned,
+         @Args Object[] args)
+   {
+      after1 = "MethodByMethodInfo,OverloadedAdvicePOJO,long,Object[]";
+   }
+   
+   public void after1(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Target OverloadedAdvicePOJO target, @Return long valueReturned)
+   {
+      after1 = "MethodByMethodInfo,OverloadedAdvicePOJO,long";
+   }
+   
+   public void after1(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Target OverloadedAdvicePOJO target, @Arg int arg)
+   {
+      after1 = "MethodByMethodInfo,OverloadedAdvicePOJO,int";
+   }
+   
+   public void after1(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Target OverloadedAdvicePOJO target, @Args Object[] args)
+   {
+      after1 = "MethodByMethodInfo,OverloadedAdvicePOJO,Object[]";
+   }
+   
+   public void after1(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Target OverloadedAdvicePOJO target)
+   {
+      after1 = "MethodByMethodInfo,OverloadedAdvicePOJO";
+   }
+   
+   public void after1(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Caller OverloadedAdvicePOJOCaller caller, @Return long valueReturned,
+         @Arg int arg)
+   {
+      after1 = "MethodByMethodInfo,OverloadedAdvicePOJOCaller,long,int";
+   }
+   
+   public void after1(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Caller OverloadedAdvicePOJOCaller caller, @Return long valueReturned,
+         @Args Object[] args)
+   {
+      after1 = "MethodByMethodInfo,OverloadedAdvicePOJOCaller,long,Object[]";
+   }
+   
+   public void after1(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Caller OverloadedAdvicePOJOCaller caller, @Return long valueReturned)
+   {
+      after1 = "MethodByMethodInfo,OverloadedAdvicePOJOCaller,long";
+   }
+   
+   public void after1(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+   {
+      after1 = "MethodByMethodInfo,OverloadedAdvicePOJOCaller,int";
+   }
+   
+   public void after1(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Caller OverloadedAdvicePOJOCaller caller, @Args Object[] args)
+   {
+      after1 = "MethodByMethodInfo,OverloadedAdvicePOJOCaller,Object[]";
+   }
+   
+   public void after1(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Caller OverloadedAdvicePOJOCaller caller)
+   {
+      after1 = "MethodByMethodInfo,OverloadedAdvicePOJOCaller";
+   }
+   
+   public void after1(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Return long valueReturned, @Arg int arg)
+   {
+      after1 = "MethodByMethodInfo,long,int";
+   }
+   
+   public void after1(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Return long valueReturned, @Args Object[] args)
+   {
+      after1 = "MethodByMethodInfo,long,Object[]";
+   }
+   
+   public void after1(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Return long valueReturned)
+   {
+      after1 = "MethodByMethodInfo,long";
+   }
+   
+   public void after1(@JoinPoint MethodByMethodInfo joinPointInfo, @Arg int arg)
+   {
+      after1 = "MethodByMethodInfo,int";
+   }
+   
+   public void after1(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Args Object[] args)
+   {
+      after1 = "MethodByMethodInfo,Object[]";
+   }
+   
+   public void after1(@JoinPoint MethodByMethodInfo joinPointInfo)
+   {
+      after1 = "MethodByMethodInfo";
+   }
+   
+   public void after1(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Return long valueReturned,
+         @Arg int arg)
+   {
+      after1="OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,long,int";
+   }
+   
+   public void after1(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Return long valueReturned,
+         @Arg int arg)
+   {
+      after1="OverloadedAdvicePOJO,SuperClass,long,int";
+   }
+   
+   public void after1(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Return long valueReturned,
+         @Arg int arg)
+   {
+      after1="Object,OverloadedAdvicePOJOCaller,long,int";
+   }
+   
+   public void after1(@Target Object target, @Caller SuperClass caller,
+         @Return long valueReturned, @Arg int arg)
+   {
+      after1="Object,SuperClass,long,int";
+   }
+   
+   public void after1(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Return long valueReturned,
+         @Args Object[] args)
+   {
+      after1="OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,long,Object[]";
+   }
+   
+   public void after1(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Return long valueReturned,
+         @Args Object[] args)
+   {
+      after1="OverloadedAdvicePOJO,SuperClass,long,Object[]";
+   }
+   
+   public void after1(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Return long valueReturned,
+         @Args Object[] args)
+   {
+      after1="Object,OverloadedAdvicePOJOCaller,long,Object[]";
+   }
+   
+   public void after1(@Target Object target, @Caller SuperClass caller,
+         @Return long valueReturned, @Args Object[] args)
+   {
+      after1="Object,SuperClass,long,Object[]";
+   }
+   
+   public void after1(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Return long valueReturned)
+   {
+      after1="OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,long";
+   }
+   
+   public void after1(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Return long valueReturned)
+   {
+      after1="OverloadedAdvicePOJO,SuperClass,long";
+   }
+   
+   public void after1(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Return long valueReturned)
+   {
+      after1="Object,OverloadedAdvicePOJOCaller,long";
+   }
+   
+   public void after1(@Target Object target, @Caller SuperClass caller,
+         @Return long valueReturned)
+   {
+      after1="Object,SuperClass,long";
+   }
+   
+   public void after1(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+   {
+      after1="OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,int";
+   }
+   
+   public void after1(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Args Object[] args)
+   {
+      after1="OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,Object[]";
+   }
+   
+   public void after1(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller)
+   {
+      after1="OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller";
+   }
+   
+   public void after1(@Target OverloadedAdvicePOJO target,
+         @Return long returnedValue, @Arg int arg)
+   {
+      after1="OverloadedAdvicePOJO,long,int";
+   }
+   
+   public void after1(@Target Object target, @Return long returnedValue,
+         @Arg int arg)
+   {
+      after1="Object,long,int";
+   }
+   
+   public void after1(@Target OverloadedAdvicePOJO target,
+         @Return long returnedValue, @Args Object[] args)
+   {
+      after1="OverloadedAdvicePOJO,long,Object[]";
+   }
+   
+   public void after1(@Target Object target, @Return long returnedValue,
+         @Args Object[] args)
+   {
+      after1="Object,long,Object[]";
+   }
+   
+   public void after1(@Target OverloadedAdvicePOJO target,
+         @Return long returnedValue)
+   {
+      after1="OverloadedAdvicePOJO,long";
+   }
+   
+   public void after1(@Target Object target, @Return long returnedValue)
+   {
+      after1="Object,long";
+   }
+   
+   public void after1(@Target OverloadedAdvicePOJO target, @Arg int arg)
+   {
+      after1="OverloadedAdvicePOJO,int";
+   }
+   
+   public void after1(@Target OverloadedAdvicePOJO target, @Args Object[] args)
+   {
+      after1="OverloadedAdvicePOJO,Object[]";
+   }
+   
+   public void after1(@Target OverloadedAdvicePOJO target)
+   {
+      after1="OverloadedAdvicePOJO";
+   }
+   
+   public void after1(@Caller OverloadedAdvicePOJOCaller caller,
+         @Return long returnedValue, @Arg int arg)
+   {
+      after1="OverloadedAdvicePOJOCaller,long,int";
+   }
+   
+   public void after1(@Caller SuperClass caller, @Return long returnedValue,
+         @Arg int arg)
+   {
+      after1 = "SuperClass,long,int";
+   }
+   
+   public void after1(@Caller OverloadedAdvicePOJOCaller caller,
+         @Return long returnedValue, @Args Object[] args)
+   {
+      after1 = "OverloadedAdvicePOJOCaller,long,Object[]";
+   }
+   
+   public void after1(@Caller SuperClass caller, @Return long returnedValue,
+         @Args Object[] args)
+   {
+      after1 = "SuperClass,long,Object[]";
+   }
+   
+   public void after1(@Caller OverloadedAdvicePOJOCaller caller,
+         @Return long returnedValue)
+   {
+      after1 = "OverloadedAdvicePOJOCaller,long";
+   }
+   
+   public void after1(@Caller SuperClass caller, @Return long returnedValue)
+   {
+      after1 = "SuperClass,long";
+   }
+   
+   public void after1(@Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+   {
+      after1 = "OverloadedAdvicePOJOCaller,int";
+   }
+   
+   public void after1(@Caller OverloadedAdvicePOJOCaller caller)
+   {
+      after1 = "OverloadedAdvicePOJOCaller";
+   }
+   
+   public void after1(@Return long returnedValue, @Arg int arg)
+   {
+      after1 = "long,int";
+   }
+   
+   /* AFTER2 ADVICE */
+   
+   public void after2(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Return long valueReturned,
+         @Args Object[] args)
+   {
+      after2 = "MethodByMethodInfo,OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,long,Object[]";
+   }
+   
+   public void after2(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Return long valueReturned)
+   {
+      after2 = "MethodByMethodInfo,OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,long";
+   }
+   
+   public void after2(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+   {
+      after2 = "MethodByMethodInfo,OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,int";
+   }
+   
+   public void after2(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Args Object[] args)
+   {
+      after2 = "MethodByMethodInfo,OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,Object[]";
+   }
+   
+   public void after2(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller)
+   {
+      after2 = "MethodByMethodInfo,OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller";
+   }
+   
+   public void after2(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Target OverloadedAdvicePOJO target, @Return long valueReturned,
+         @Arg int arg)
+   {
+      after2 = "MethodByMethodInfo,OverloadedAdvicePOJO,long,int";
+   }
+   
+   public void after2(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Target OverloadedAdvicePOJO target, @Return long valueReturned,
+         @Args Object[] args)
+   {
+      after2 = "MethodByMethodInfo,OverloadedAdvicePOJO,long,Object[]";
+   }
+   
+   public void after2(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Target OverloadedAdvicePOJO target, @Return long valueReturned)
+   {
+      after2 = "MethodByMethodInfo,OverloadedAdvicePOJO,long";
+   }
+   
+   public void after2(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Target OverloadedAdvicePOJO target, @Arg int arg)
+   {
+      after2 = "MethodByMethodInfo,OverloadedAdvicePOJO,int";
+   }
+   
+   public void after2(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Target OverloadedAdvicePOJO target, @Args Object[] args)
+   {
+      after2 = "MethodByMethodInfo,OverloadedAdvicePOJO,Object[]";
+   }
+   
+   public void after2(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Target OverloadedAdvicePOJO target)
+   {
+      after2 = "MethodByMethodInfo,OverloadedAdvicePOJO";
+   }
+   
+   public void after2(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Caller OverloadedAdvicePOJOCaller caller, @Return long valueReturned,
+         @Arg int arg)
+   {
+      after2 = "MethodByMethodInfo,OverloadedAdvicePOJOCaller,long,int";
+   }
+   
+   public void after2(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Caller OverloadedAdvicePOJOCaller caller, @Return long valueReturned,
+         @Args Object[] args)
+   {
+      after2 = "MethodByMethodInfo,OverloadedAdvicePOJOCaller,long,Object[]";
+   }
+   
+   public void after2(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Caller OverloadedAdvicePOJOCaller caller, @Return long valueReturned)
+   {
+      after2 = "MethodByMethodInfo,OverloadedAdvicePOJOCaller,long";
+   }
+   
+   public void after2(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+   {
+      after2 = "MethodByMethodInfo,OverloadedAdvicePOJOCaller,int";
+   }
+   
+   public void after2(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Caller OverloadedAdvicePOJOCaller caller, @Args Object[] args)
+   {
+      after2 = "MethodByMethodInfo,OverloadedAdvicePOJOCaller,Object[]";
+   }
+   
+   public void after2(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Caller OverloadedAdvicePOJOCaller caller)
+   {
+      after2 = "MethodByMethodInfo,OverloadedAdvicePOJOCaller";
+   }
+   
+   public void after2(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Return long valueReturned, @Arg int arg)
+   {
+      after2 = "MethodByMethodInfo,long,int";
+   }
+   
+   public void after2(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Return long valueReturned, @Args Object[] args)
+   {
+      after2 = "MethodByMethodInfo,long,Object[]";
+   }
+   
+   public void after2(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Return long valueReturned)
+   {
+      after2 = "MethodByMethodInfo,long";
+   }
+   
+   public void after2(@JoinPoint MethodByMethodInfo joinPointInfo, @Arg int arg)
+   {
+      after2 = "MethodByMethodInfo,int";
+   }
+   
+   public void after2(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Args Object[] args)
+   {
+      after2 = "MethodByMethodInfo,Object[]";
+   }
+   
+   public void after2(@JoinPoint MethodByMethodInfo joinPointInfo)
+   {
+      after2 = "MethodByMethodInfo";
+   }
+   
+   public void after2(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Return long valueReturned,
+         @Arg int arg)
+   {
+      after2="OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,long,int";
+   }
+   
+   public void after2(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Return long valueReturned,
+         @Arg int arg)
+   {
+      after2="OverloadedAdvicePOJO,SuperClass,long,int";
+   }
+   
+   public void after2(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Return long valueReturned,
+         @Arg int arg)
+   {
+      after2="Object,OverloadedAdvicePOJOCaller,long,int";
+   }
+   
+   public void after2(@Target Object target, @Caller SuperClass caller,
+         @Return long valueReturned, @Arg int arg)
+   {
+      after2="Object,SuperClass,long,int";
+   }
+   
+   public void after2(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Return long valueReturned,
+         @Args Object[] args)
+   {
+      after2="OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,long,Object[]";
+   }
+   
+   public void after2(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Return long valueReturned,
+         @Args Object[] args)
+   {
+      after2="OverloadedAdvicePOJO,SuperClass,long,Object[]";
+   }
+   
+   public void after2(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Return long valueReturned,
+         @Args Object[] args)
+   {
+      after2="Object,OverloadedAdvicePOJOCaller,long,Object[]";
+   }
+   
+   public void after2(@Target Object target, @Caller SuperClass caller,
+         @Return long valueReturned, @Args Object[] args)
+   {
+      after2="Object,SuperClass,long,Object[]";
+   }
+   
+   public void after2(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Return long valueReturned)
+   {
+      after2="OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,long";
+   }
+   
+   public void after2(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Return long valueReturned)
+   {
+      after2="OverloadedAdvicePOJO,SuperClass,long";
+   }
+   
+   public void after2(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Return long valueReturned)
+   {
+      after2="Object,OverloadedAdvicePOJOCaller,long";
+   }
+   
+   public void after2(@Target Object target, @Caller SuperClass caller,
+         @Return long valueReturned)
+   {
+      after2="Object,SuperClass,long";
+   }
+   
+   public void after2(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+   {
+      after2="OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,int";
+   }
+   
+   public void after2(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Args Object[] args)
+   {
+      after2="OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,Object[]";
+   }
+   
+   public void after2(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller)
+   {
+      after2="OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller";
+   }
+   
+   public void after2(@Target OverloadedAdvicePOJO target,
+         @Return long returnedValue, @Arg int arg)
+   {
+      after2="OverloadedAdvicePOJO,long,int";
+   }
+   
+   public void after2(@Target Object target, @Return long returnedValue,
+         @Arg int arg)
+   {
+      after2="Object,long,int";
+   }
+   
+   public void after2(@Target OverloadedAdvicePOJO target,
+         @Return long returnedValue, @Args Object[] args)
+   {
+      after2="OverloadedAdvicePOJO,long,Object[]";
+   }
+   
+   public void after2(@Target Object target, @Return long returnedValue,
+         @Args Object[] args)
+   {
+      after2="Object,long,Object[]";
+   }
+   
+   public void after2(@Target OverloadedAdvicePOJO target,
+         @Return long returnedValue)
+   {
+      after2="OverloadedAdvicePOJO,long";
+   }
+   
+   public void after2(@Target Object target, @Return long returnedValue)
+   {
+      after2="Object,long";
+   }
+   
+   public void after2(@Target OverloadedAdvicePOJO target, @Arg int arg)
+   {
+      after2="OverloadedAdvicePOJO,int";
+   }
+   
+   public void after2(@Target OverloadedAdvicePOJO target, @Args Object[] args)
+   {
+      after2="OverloadedAdvicePOJO,Object[]";
+   }
+   
+   public void after2(@Target OverloadedAdvicePOJO target)
+   {
+      after2="OverloadedAdvicePOJO";
+   }
+   
+   public void after2(@Caller OverloadedAdvicePOJOCaller caller,
+         @Return long returnedValue, @Arg int arg)
+   {
+      after2="OverloadedAdvicePOJOCaller,long,int";
+   }
+   
+   public void after2(@Caller SuperClass caller, @Return long returnedValue,
+         @Arg int arg)
+   {
+      after2 = "SuperClass,long,int";
+   }
+   
+   public void after2(@Caller OverloadedAdvicePOJOCaller caller,
+         @Return long returnedValue, @Args Object[] args)
+   {
+      after2 = "OverloadedAdvicePOJOCaller,long,Object[]";
+   }
+   
+   public void after2(@Caller SuperClass caller, @Return long returnedValue,
+         @Args Object[] args)
+   {
+      after2 = "SuperClass,long,Object[]";
+   }
+   
+   public void after2(@Caller OverloadedAdvicePOJOCaller caller,
+         @Return long returnedValue)
+   {
+      after2 = "OverloadedAdvicePOJOCaller,long";
+   }
+   
+   public void after2(@Caller SuperClass caller, @Return long returnedValue)
+   {
+      after2 = "SuperClass,long";
+   }
+   
+   public void after2(@Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+   {
+      after2 = "OverloadedAdvicePOJOCaller,int";
+   }
+   
+   public void after2(@Caller OverloadedAdvicePOJOCaller caller)
+   {
+      after2 = "OverloadedAdvicePOJOCaller";
+   }
+   
+   public void after2(@Return long returnedValue, @Arg int arg)
+   {
+      after2 = "long,int";
+   }
+   
+   /* AFTER3 ADVICE */
+   
+   public void after3(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Return long valueReturned)
+   {
+      after3 = "MethodByMethodInfo,OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,long";
+   }
+   
+   public void after3(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+   {
+      after3 = "MethodByMethodInfo,OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,int";
+   }
+   
+   public void after3(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Args Object[] args)
+   {
+      after3 = "MethodByMethodInfo,OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,Object[]";
+   }
+   
+   public void after3(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller)
+   {
+      after3 = "MethodByMethodInfo,OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller";
+   }
+   
+   public void after3(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Target OverloadedAdvicePOJO target, @Return long valueReturned,
+         @Arg int arg)
+   {
+      after3 = "MethodByMethodInfo,OverloadedAdvicePOJO,long,int";
+   }
+   
+   public void after3(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Target OverloadedAdvicePOJO target, @Return long valueReturned,
+         @Args Object[] args)
+   {
+      after3 = "MethodByMethodInfo,OverloadedAdvicePOJO,long,Object[]";
+   }
+   
+   public void after3(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Target OverloadedAdvicePOJO target, @Return long valueReturned)
+   {
+      after3 = "MethodByMethodInfo,OverloadedAdvicePOJO,long";
+   }
+   
+   public void after3(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Target OverloadedAdvicePOJO target, @Arg int arg)
+   {
+      after3 = "MethodByMethodInfo,OverloadedAdvicePOJO,int";
+   }
+   
+   public void after3(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Target OverloadedAdvicePOJO target, @Args Object[] args)
+   {
+      after3 = "MethodByMethodInfo,OverloadedAdvicePOJO,Object[]";
+   }
+   
+   public void after3(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Target OverloadedAdvicePOJO target)
+   {
+      after3 = "MethodByMethodInfo,OverloadedAdvicePOJO";
+   }
+   
+   public void after3(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Caller OverloadedAdvicePOJOCaller caller, @Return long valueReturned,
+         @Arg int arg)
+   {
+      after3 = "MethodByMethodInfo,OverloadedAdvicePOJOCaller,long,int";
+   }
+   
+   public void after3(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Caller OverloadedAdvicePOJOCaller caller, @Return long valueReturned,
+         @Args Object[] args)
+   {
+      after3 = "MethodByMethodInfo,OverloadedAdvicePOJOCaller,long,Object[]";
+   }
+   
+   public void after3(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Caller OverloadedAdvicePOJOCaller caller, @Return long valueReturned)
+   {
+      after3 = "MethodByMethodInfo,OverloadedAdvicePOJOCaller,long";
+   }
+   
+   public void after3(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+   {
+      after3 = "MethodByMethodInfo,OverloadedAdvicePOJOCaller,int";
+   }
+   
+   public void after3(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Caller OverloadedAdvicePOJOCaller caller, @Args Object[] args)
+   {
+      after3 = "MethodByMethodInfo,OverloadedAdvicePOJOCaller,Object[]";
+   }
+   
+   public void after3(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Caller OverloadedAdvicePOJOCaller caller)
+   {
+      after3 = "MethodByMethodInfo,OverloadedAdvicePOJOCaller";
+   }
+   
+   public void after3(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Return long valueReturned, @Arg int arg)
+   {
+      after3 = "MethodByMethodInfo,long,int";
+   }
+   
+   public void after3(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Return long valueReturned, @Args Object[] args)
+   {
+      after3 = "MethodByMethodInfo,long,Object[]";
+   }
+   
+   public void after3(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Return long valueReturned)
+   {
+      after3 = "MethodByMethodInfo,long";
+   }
+   
+   public void after3(@JoinPoint MethodByMethodInfo joinPointInfo, @Arg int arg)
+   {
+      after3 = "MethodByMethodInfo,int";
+   }
+   
+   public void after3(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Args Object[] args)
+   {
+      after3 = "MethodByMethodInfo,Object[]";
+   }
+   
+   public void after3(@JoinPoint MethodByMethodInfo joinPointInfo)
+   {
+      after3 = "MethodByMethodInfo";
+   }
+   
+   public void after3(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Return long valueReturned,
+         @Arg int arg)
+   {
+      after3="OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,long,int";
+   }
+   
+   public void after3(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Return long valueReturned,
+         @Arg int arg)
+   {
+      after3="OverloadedAdvicePOJO,SuperClass,long,int";
+   }
+   
+   public void after3(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Return long valueReturned,
+         @Arg int arg)
+   {
+      after3="Object,OverloadedAdvicePOJOCaller,long,int";
+   }
+   
+   public void after3(@Target Object target, @Caller SuperClass caller,
+         @Return long valueReturned, @Arg int arg)
+   {
+      after3="Object,SuperClass,long,int";
+   }
+   
+   public void after3(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Return long valueReturned,
+         @Args Object[] args)
+   {
+      after3="OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,long,Object[]";
+   }
+   
+   public void after3(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Return long valueReturned,
+         @Args Object[] args)
+   {
+      after3="OverloadedAdvicePOJO,SuperClass,long,Object[]";
+   }
+   
+   public void after3(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Return long valueReturned,
+         @Args Object[] args)
+   {
+      after3="Object,OverloadedAdvicePOJOCaller,long,Object[]";
+   }
+   
+   public void after3(@Target Object target, @Caller SuperClass caller,
+         @Return long valueReturned, @Args Object[] args)
+   {
+      after3="Object,SuperClass,long,Object[]";
+   }
+   
+   public void after3(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Return long valueReturned)
+   {
+      after3="OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,long";
+   }
+   
+   public void after3(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Return long valueReturned)
+   {
+      after3="OverloadedAdvicePOJO,SuperClass,long";
+   }
+   
+   public void after3(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Return long valueReturned)
+   {
+      after3="Object,OverloadedAdvicePOJOCaller,long";
+   }
+   
+   public void after3(@Target Object target, @Caller SuperClass caller,
+         @Return long valueReturned)
+   {
+      after3="Object,SuperClass,long";
+   }
+   
+   public void after3(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+   {
+      after3="OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,int";
+   }
+   
+   public void after3(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Args Object[] args)
+   {
+      after3="OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,Object[]";
+   }
+   
+   public void after3(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller)
+   {
+      after3="OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller";
+   }
+   
+   public void after3(@Target OverloadedAdvicePOJO target,
+         @Return long returnedValue, @Arg int arg)
+   {
+      after3="OverloadedAdvicePOJO,long,int";
+   }
+   
+   public void after3(@Target Object target, @Return long returnedValue,
+         @Arg int arg)
+   {
+      after3="Object,long,int";
+   }
+   
+   public void after3(@Target OverloadedAdvicePOJO target,
+         @Return long returnedValue, @Args Object[] args)
+   {
+      after3="OverloadedAdvicePOJO,long,Object[]";
+   }
+   
+   public void after3(@Target Object target, @Return long returnedValue,
+         @Args Object[] args)
+   {
+      after3="Object,long,Object[]";
+   }
+   
+   public void after3(@Target OverloadedAdvicePOJO target,
+         @Return long returnedValue)
+   {
+      after3="OverloadedAdvicePOJO,long";
+   }
+   
+   public void after3(@Target Object target, @Return long returnedValue)
+   {
+      after3="Object,long";
+   }
+   
+   public void after3(@Target OverloadedAdvicePOJO target, @Arg int arg)
+   {
+      after3="OverloadedAdvicePOJO,int";
+   }
+   
+   public void after3(@Target OverloadedAdvicePOJO target, @Args Object[] args)
+   {
+      after3="OverloadedAdvicePOJO,Object[]";
+   }
+   
+   public void after3(@Target OverloadedAdvicePOJO target)
+   {
+      after3="OverloadedAdvicePOJO";
+   }
+   
+   public void after3(@Caller OverloadedAdvicePOJOCaller caller,
+         @Return long returnedValue, @Arg int arg)
+   {
+      after3="OverloadedAdvicePOJOCaller,long,int";
+   }
+   
+   public void after3(@Caller SuperClass caller, @Return long returnedValue,
+         @Arg int arg)
+   {
+      after3 = "SuperClass,long,int";
+   }
+   
+   public void after3(@Caller OverloadedAdvicePOJOCaller caller,
+         @Return long returnedValue, @Args Object[] args)
+   {
+      after3 = "OverloadedAdvicePOJOCaller,long,Object[]";
+   }
+   
+   public void after3(@Caller SuperClass caller, @Return long returnedValue,
+         @Args Object[] args)
+   {
+      after3 = "SuperClass,long,Object[]";
+   }
+   
+   public void after3(@Caller OverloadedAdvicePOJOCaller caller,
+         @Return long returnedValue)
+   {
+      after3 = "OverloadedAdvicePOJOCaller,long";
+   }
+   
+   public void after3(@Caller SuperClass caller, @Return long returnedValue)
+   {
+      after3 = "SuperClass,long";
+   }
+   
+   public void after3(@Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+   {
+      after3 = "OverloadedAdvicePOJOCaller,int";
+   }
+   
+   public void after3(@Caller OverloadedAdvicePOJOCaller caller)
+   {
+      after3 = "OverloadedAdvicePOJOCaller";
+   }
+   
+   public void after3(@Return long returnedValue, @Arg int arg)
+   {
+      after3 = "long,int";
+   }
+   
+   /* AFTER4 ADVICE */
+   
+   public void after4(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+   {
+      after4 = "MethodByMethodInfo,OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,int";
+   }
+   
+   public void after4(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Args Object[] args)
+   {
+      after4 = "MethodByMethodInfo,OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,Object[]";
+   }
+   
+   public void after4(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller)
+   {
+      after4 = "MethodByMethodInfo,OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller";
+   }
+   
+   public void after4(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Target OverloadedAdvicePOJO target, @Return long valueReturned,
+         @Arg int arg)
+   {
+      after4 = "MethodByMethodInfo,OverloadedAdvicePOJO,long,int";
+   }
+   
+   public void after4(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Target OverloadedAdvicePOJO target, @Return long valueReturned,
+         @Args Object[] args)
+   {
+      after4 = "MethodByMethodInfo,OverloadedAdvicePOJO,long,Object[]";
+   }
+   
+   public void after4(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Target OverloadedAdvicePOJO target, @Return long valueReturned)
+   {
+      after4 = "MethodByMethodInfo,OverloadedAdvicePOJO,long";
+   }
+   
+   public void after4(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Target OverloadedAdvicePOJO target, @Arg int arg)
+   {
+      after4 = "MethodByMethodInfo,OverloadedAdvicePOJO,int";
+   }
+   
+   public void after4(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Target OverloadedAdvicePOJO target, @Args Object[] args)
+   {
+      after4 = "MethodByMethodInfo,OverloadedAdvicePOJO,Object[]";
+   }
+   
+   public void after4(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Target OverloadedAdvicePOJO target)
+   {
+      after4 = "MethodByMethodInfo,OverloadedAdvicePOJO";
+   }
+   
+   public void after4(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Caller OverloadedAdvicePOJOCaller caller, @Return long valueReturned,
+         @Arg int arg)
+   {
+      after4 = "MethodByMethodInfo,OverloadedAdvicePOJOCaller,long,int";
+   }
+   
+   public void after4(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Caller OverloadedAdvicePOJOCaller caller, @Return long valueReturned,
+         @Args Object[] args)
+   {
+      after4 = "MethodByMethodInfo,OverloadedAdvicePOJOCaller,long,Object[]";
+   }
+   
+   public void after4(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Caller OverloadedAdvicePOJOCaller caller, @Return long valueReturned)
+   {
+      after4 = "MethodByMethodInfo,OverloadedAdvicePOJOCaller,long";
+   }
+   
+   public void after4(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+   {
+      after4 = "MethodByMethodInfo,OverloadedAdvicePOJOCaller,int";
+   }
+   
+   public void after4(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Caller OverloadedAdvicePOJOCaller caller, @Args Object[] args)
+   {
+      after4 = "MethodByMethodInfo,OverloadedAdvicePOJOCaller,Object[]";
+   }
+   
+   public void after4(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Caller OverloadedAdvicePOJOCaller caller)
+   {
+      after4 = "MethodByMethodInfo,OverloadedAdvicePOJOCaller";
+   }
+   
+   public void after4(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Return long valueReturned, @Arg int arg)
+   {
+      after4 = "MethodByMethodInfo,long,int";
+   }
+   
+   public void after4(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Return long valueReturned, @Args Object[] args)
+   {
+      after4 = "MethodByMethodInfo,long,Object[]";
+   }
+   
+   public void after4(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Return long valueReturned)
+   {
+      after4 = "MethodByMethodInfo,long";
+   }
+   
+   public void after4(@JoinPoint MethodByMethodInfo joinPointInfo, @Arg int arg)
+   {
+      after4 = "MethodByMethodInfo,int";
+   }
+   
+   public void after4(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Args Object[] args)
+   {
+      after4 = "MethodByMethodInfo,Object[]";
+   }
+   
+   public void after4(@JoinPoint MethodByMethodInfo joinPointInfo)
+   {
+      after4 = "MethodByMethodInfo";
+   }
+   
+   public void after4(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Return long valueReturned,
+         @Arg int arg)
+   {
+      after4="OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,long,int";
+   }
+   
+   public void after4(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Return long valueReturned,
+         @Arg int arg)
+   {
+      after4="OverloadedAdvicePOJO,SuperClass,long,int";
+   }
+   
+   public void after4(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Return long valueReturned,
+         @Arg int arg)
+   {
+      after4="Object,OverloadedAdvicePOJOCaller,long,int";
+   }
+   
+   public void after4(@Target Object target, @Caller SuperClass caller,
+         @Return long valueReturned, @Arg int arg)
+   {
+      after4="Object,SuperClass,long,int";
+   }
+   
+   public void after4(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Return long valueReturned,
+         @Args Object[] args)
+   {
+      after4="OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,long,Object[]";
+   }
+   
+   public void after4(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Return long valueReturned,
+         @Args Object[] args)
+   {
+      after4="OverloadedAdvicePOJO,SuperClass,long,Object[]";
+   }
+   
+   public void after4(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Return long valueReturned,
+         @Args Object[] args)
+   {
+      after4="Object,OverloadedAdvicePOJOCaller,long,Object[]";
+   }
+   
+   public void after4(@Target Object target, @Caller SuperClass caller,
+         @Return long valueReturned, @Args Object[] args)
+   {
+      after4="Object,SuperClass,long,Object[]";
+   }
+   
+   public void after4(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Return long valueReturned)
+   {
+      after4="OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,long";
+   }
+   
+   public void after4(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Return long valueReturned)
+   {
+      after4="OverloadedAdvicePOJO,SuperClass,long";
+   }
+   
+   public void after4(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Return long valueReturned)
+   {
+      after4="Object,OverloadedAdvicePOJOCaller,long";
+   }
+   
+   public void after4(@Target Object target, @Caller SuperClass caller,
+         @Return long valueReturned)
+   {
+      after4="Object,SuperClass,long";
+   }
+   
+   public void after4(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+   {
+      after4="OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,int";
+   }
+   
+   public void after4(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Args Object[] args)
+   {
+      after4="OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,Object[]";
+   }
+   
+   public void after4(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller)
+   {
+      after4="OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller";
+   }
+   
+   public void after4(@Target OverloadedAdvicePOJO target,
+         @Return long returnedValue, @Arg int arg)
+   {
+      after4="OverloadedAdvicePOJO,long,int";
+   }
+   
+   public void after4(@Target Object target, @Return long returnedValue,
+         @Arg int arg)
+   {
+      after4="Object,long,int";
+   }
+   
+   public void after4(@Target OverloadedAdvicePOJO target,
+         @Return long returnedValue, @Args Object[] args)
+   {
+      after4="OverloadedAdvicePOJO,long,Object[]";
+   }
+   
+   public void after4(@Target Object target, @Return long returnedValue,
+         @Args Object[] args)
+   {
+      after4="Object,long,Object[]";
+   }
+   
+   public void after4(@Target OverloadedAdvicePOJO target,
+         @Return long returnedValue)
+   {
+      after4="OverloadedAdvicePOJO,long";
+   }
+   
+   public void after4(@Target Object target, @Return long returnedValue)
+   {
+      after4="Object,long";
+   }
+   
+   public void after4(@Target OverloadedAdvicePOJO target, @Arg int arg)
+   {
+      after4="OverloadedAdvicePOJO,int";
+   }
+   
+   public void after4(@Target OverloadedAdvicePOJO target, @Args Object[] args)
+   {
+      after4="OverloadedAdvicePOJO,Object[]";
+   }
+   
+   public void after4(@Target OverloadedAdvicePOJO target)
+   {
+      after4="OverloadedAdvicePOJO";
+   }
+   
+   public void after4(@Caller OverloadedAdvicePOJOCaller caller,
+         @Return long returnedValue, @Arg int arg)
+   {
+      after4="OverloadedAdvicePOJOCaller,long,int";
+   }
+   
+   public void after4(@Caller SuperClass caller, @Return long returnedValue,
+         @Arg int arg)
+   {
+      after4 = "SuperClass,long,int";
+   }
+   
+   public void after4(@Caller OverloadedAdvicePOJOCaller caller,
+         @Return long returnedValue, @Args Object[] args)
+   {
+      after4 = "OverloadedAdvicePOJOCaller,long,Object[]";
+   }
+   
+   public void after4(@Caller SuperClass caller, @Return long returnedValue,
+         @Args Object[] args)
+   {
+      after4 = "SuperClass,long,Object[]";
+   }
+   
+   public void after4(@Caller OverloadedAdvicePOJOCaller caller,
+         @Return long returnedValue)
+   {
+      after4 = "OverloadedAdvicePOJOCaller,long";
+   }
+   
+   public void after4(@Caller SuperClass caller, @Return long returnedValue)
+   {
+      after4 = "SuperClass,long";
+   }
+   
+   public void after4(@Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+   {
+      after4 = "OverloadedAdvicePOJOCaller,int";
+   }
+   
+   public void after4(@Caller OverloadedAdvicePOJOCaller caller)
+   {
+      after4 = "OverloadedAdvicePOJOCaller";
+   }
+   
+   public void after4(@Return long returnedValue, @Arg int arg)
+   {
+      after4 = "long,int";
+   }
+   
+   /* AFTER5 ADVICE */
+   
+   public void after5(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller)
+   {
+      after5 = "MethodByMethodInfo,OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller";
+   }
+   
+   public void after5(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Target OverloadedAdvicePOJO target, @Return long valueReturned,
+         @Arg int arg)
+   {
+      after5 = "MethodByMethodInfo,OverloadedAdvicePOJO,long,int";
+   }
+   
+   public void after5(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Target OverloadedAdvicePOJO target, @Return long valueReturned,
+         @Args Object[] args)
+   {
+      after5 = "MethodByMethodInfo,OverloadedAdvicePOJO,long,Object[]";
+   }
+   
+   public void after5(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Target OverloadedAdvicePOJO target, @Return long valueReturned)
+   {
+      after5 = "MethodByMethodInfo,OverloadedAdvicePOJO,long";
+   }
+   
+   public void after5(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Target OverloadedAdvicePOJO target, @Arg int arg)
+   {
+      after5 = "MethodByMethodInfo,OverloadedAdvicePOJO,int";
+   }
+   
+   public void after5(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Target OverloadedAdvicePOJO target, @Args Object[] args)
+   {
+      after5 = "MethodByMethodInfo,OverloadedAdvicePOJO,Object[]";
+   }
+   
+   public void after5(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Target OverloadedAdvicePOJO target)
+   {
+      after5 = "MethodByMethodInfo,OverloadedAdvicePOJO";
+   }
+   
+   public void after5(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Caller OverloadedAdvicePOJOCaller caller, @Return long valueReturned,
+         @Arg int arg)
+   {
+      after5 = "MethodByMethodInfo,OverloadedAdvicePOJOCaller,long,int";
+   }
+   
+   public void after5(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Caller OverloadedAdvicePOJOCaller caller, @Return long valueReturned,
+         @Args Object[] args)
+   {
+      after5 = "MethodByMethodInfo,OverloadedAdvicePOJOCaller,long,Object[]";
+   }
+   
+   public void after5(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Caller OverloadedAdvicePOJOCaller caller, @Return long valueReturned)
+   {
+      after5 = "MethodByMethodInfo,OverloadedAdvicePOJOCaller,long";
+   }
+   
+   public void after5(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+   {
+      after5 = "MethodByMethodInfo,OverloadedAdvicePOJOCaller,int";
+   }
+   
+   public void after5(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Caller OverloadedAdvicePOJOCaller caller, @Args Object[] args)
+   {
+      after5 = "MethodByMethodInfo,OverloadedAdvicePOJOCaller,Object[]";
+   }
+   
+   public void after5(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Caller OverloadedAdvicePOJOCaller caller)
+   {
+      after5 = "MethodByMethodInfo,OverloadedAdvicePOJOCaller";
+   }
+   
+   public void after5(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Return long valueReturned, @Arg int arg)
+   {
+      after5 = "MethodByMethodInfo,long,int";
+   }
+   
+   public void after5(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Return long valueReturned, @Args Object[] args)
+   {
+      after5 = "MethodByMethodInfo,long,Object[]";
+   }
+   
+   public void after5(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Return long valueReturned)
+   {
+      after5 = "MethodByMethodInfo,long";
+   }
+   
+   public void after5(@JoinPoint MethodByMethodInfo joinPointInfo, @Arg int arg)
+   {
+      after5 = "MethodByMethodInfo,int";
+   }
+   
+   public void after5(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Args Object[] args)
+   {
+      after5 = "MethodByMethodInfo,Object[]";
+   }
+   
+   public void after5(@JoinPoint MethodByMethodInfo joinPointInfo)
+   {
+      after5 = "MethodByMethodInfo";
+   }
+   
+   public void after5(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Return long valueReturned,
+         @Arg int arg)
+   {
+      after5="OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,long,int";
+   }
+   
+   public void after5(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Return long valueReturned,
+         @Arg int arg)
+   {
+      after5="OverloadedAdvicePOJO,SuperClass,long,int";
+   }
+   
+   public void after5(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Return long valueReturned,
+         @Arg int arg)
+   {
+      after5="Object,OverloadedAdvicePOJOCaller,long,int";
+   }
+   
+   public void after5(@Target Object target, @Caller SuperClass caller,
+         @Return long valueReturned, @Arg int arg)
+   {
+      after5="Object,SuperClass,long,int";
+   }
+   
+   public void after5(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Return long valueReturned,
+         @Args Object[] args)
+   {
+      after5="OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,long,Object[]";
+   }
+   
+   public void after5(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Return long valueReturned,
+         @Args Object[] args)
+   {
+      after5="OverloadedAdvicePOJO,SuperClass,long,Object[]";
+   }
+   
+   public void after5(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Return long valueReturned,
+         @Args Object[] args)
+   {
+      after5="Object,OverloadedAdvicePOJOCaller,long,Object[]";
+   }
+   
+   public void after5(@Target Object target, @Caller SuperClass caller,
+         @Return long valueReturned, @Args Object[] args)
+   {
+      after5="Object,SuperClass,long,Object[]";
+   }
+   
+   public void after5(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Return long valueReturned)
+   {
+      after5="OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,long";
+   }
+   
+   public void after5(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Return long valueReturned)
+   {
+      after5="OverloadedAdvicePOJO,SuperClass,long";
+   }
+   
+   public void after5(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Return long valueReturned)
+   {
+      after5="Object,OverloadedAdvicePOJOCaller,long";
+   }
+   
+   public void after5(@Target Object target, @Caller SuperClass caller,
+         @Return long valueReturned)
+   {
+      after5="Object,SuperClass,long";
+   }
+   
+   public void after5(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+   {
+      after5="OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,int";
+   }
+   
+   public void after5(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Args Object[] args)
+   {
+      after5="OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,Object[]";
+   }
+   
+   public void after5(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller)
+   {
+      after5="OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller";
+   }
+   
+   public void after5(@Target OverloadedAdvicePOJO target,
+         @Return long returnedValue, @Arg int arg)
+   {
+      after5="OverloadedAdvicePOJO,long,int";
+   }
+   
+   public void after5(@Target Object target, @Return long returnedValue,
+         @Arg int arg)
+   {
+      after5="Object,long,int";
+   }
+   
+   public void after5(@Target OverloadedAdvicePOJO target,
+         @Return long returnedValue, @Args Object[] args)
+   {
+      after5="OverloadedAdvicePOJO,long,Object[]";
+   }
+   
+   public void after5(@Target Object target, @Return long returnedValue,
+         @Args Object[] args)
+   {
+      after5="Object,long,Object[]";
+   }
+   
+   public void after5(@Target OverloadedAdvicePOJO target,
+         @Return long returnedValue)
+   {
+      after5="OverloadedAdvicePOJO,long";
+   }
+   
+   public void after5(@Target Object target, @Return long returnedValue)
+   {
+      after5="Object,long";
+   }
+   
+   public void after5(@Target OverloadedAdvicePOJO target, @Arg int arg)
+   {
+      after5="OverloadedAdvicePOJO,int";
+   }
+   
+   public void after5(@Target OverloadedAdvicePOJO target, @Args Object[] args)
+   {
+      after5="OverloadedAdvicePOJO,Object[]";
+   }
+   
+   public void after5(@Target OverloadedAdvicePOJO target)
+   {
+      after5="OverloadedAdvicePOJO";
+   }
+   
+   public void after5(@Caller OverloadedAdvicePOJOCaller caller,
+         @Return long returnedValue, @Arg int arg)
+   {
+      after5="OverloadedAdvicePOJOCaller,long,int";
+   }
+   
+   public void after5(@Caller SuperClass caller, @Return long returnedValue,
+         @Arg int arg)
+   {
+      after5 = "SuperClass,long,int";
+   }
+   
+   public void after5(@Caller OverloadedAdvicePOJOCaller caller,
+         @Return long returnedValue, @Args Object[] args)
+   {
+      after5 = "OverloadedAdvicePOJOCaller,long,Object[]";
+   }
+   
+   public void after5(@Caller SuperClass caller, @Return long returnedValue,
+         @Args Object[] args)
+   {
+      after5 = "SuperClass,long,Object[]";
+   }
+   
+   public void after5(@Caller OverloadedAdvicePOJOCaller caller,
+         @Return long returnedValue)
+   {
+      after5 = "OverloadedAdvicePOJOCaller,long";
+   }
+   
+   public void after5(@Caller SuperClass caller, @Return long returnedValue)
+   {
+      after5 = "SuperClass,long";
+   }
+   
+   public void after5(@Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+   {
+      after5 = "OverloadedAdvicePOJOCaller,int";
+   }
+   
+   public void after5(@Caller OverloadedAdvicePOJOCaller caller)
+   {
+      after5 = "OverloadedAdvicePOJOCaller";
+   }
+   
+   public void after5(@Return long returnedValue, @Arg int arg)
+   {
+      after5 = "long,int";
+   }
+   
+   /* AFTER6 ADVICE */
+   
+   public void after6(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Target OverloadedAdvicePOJO target, @Return long valueReturned,
+         @Arg int arg)
+   {
+      after6 = "MethodByMethodInfo,OverloadedAdvicePOJO,long,int";
+   }
+   
+   public void after6(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Target OverloadedAdvicePOJO target, @Return long valueReturned,
+         @Args Object[] args)
+   {
+      after6 = "MethodByMethodInfo,OverloadedAdvicePOJO,long,Object[]";
+   }
+   
+   public void after6(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Target OverloadedAdvicePOJO target, @Return long valueReturned)
+   {
+      after6 = "MethodByMethodInfo,OverloadedAdvicePOJO,long";
+   }
+   
+   public void after6(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Target OverloadedAdvicePOJO target, @Arg int arg)
+   {
+      after6 = "MethodByMethodInfo,OverloadedAdvicePOJO,int";
+   }
+   
+   public void after6(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Target OverloadedAdvicePOJO target, @Args Object[] args)
+   {
+      after6 = "MethodByMethodInfo,OverloadedAdvicePOJO,Object[]";
+   }
+   
+   public void after6(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Target OverloadedAdvicePOJO target)
+   {
+      after6 = "MethodByMethodInfo,OverloadedAdvicePOJO";
+   }
+   
+   public void after6(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Caller OverloadedAdvicePOJOCaller caller, @Return long valueReturned,
+         @Arg int arg)
+   {
+      after6 = "MethodByMethodInfo,OverloadedAdvicePOJOCaller,long,int";
+   }
+   
+   public void after6(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Caller OverloadedAdvicePOJOCaller caller, @Return long valueReturned,
+         @Args Object[] args)
+   {
+      after6 = "MethodByMethodInfo,OverloadedAdvicePOJOCaller,long,Object[]";
+   }
+   
+   public void after6(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Caller OverloadedAdvicePOJOCaller caller, @Return long valueReturned)
+   {
+      after6 = "MethodByMethodInfo,OverloadedAdvicePOJOCaller,long";
+   }
+   
+   public void after6(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+   {
+      after6 = "MethodByMethodInfo,OverloadedAdvicePOJOCaller,int";
+   }
+   
+   public void after6(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Caller OverloadedAdvicePOJOCaller caller, @Args Object[] args)
+   {
+      after6 = "MethodByMethodInfo,OverloadedAdvicePOJOCaller,Object[]";
+   }
+   
+   public void after6(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Caller OverloadedAdvicePOJOCaller caller)
+   {
+      after6 = "MethodByMethodInfo,OverloadedAdvicePOJOCaller";
+   }
+   
+   public void after6(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Return long valueReturned, @Arg int arg)
+   {
+      after6 = "MethodByMethodInfo,long,int";
+   }
+   
+   public void after6(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Return long valueReturned, @Args Object[] args)
+   {
+      after6 = "MethodByMethodInfo,long,Object[]";
+   }
+   
+   public void after6(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Return long valueReturned)
+   {
+      after6 = "MethodByMethodInfo,long";
+   }
+   
+   public void after6(@JoinPoint MethodByMethodInfo joinPointInfo, @Arg int arg)
+   {
+      after6 = "MethodByMethodInfo,int";
+   }
+   
+   public void after6(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Args Object[] args)
+   {
+      after6 = "MethodByMethodInfo,Object[]";
+   }
+   
+   public void after6(@JoinPoint MethodByMethodInfo joinPointInfo)
+   {
+      after6 = "MethodByMethodInfo";
+   }
+   
+   public void after6(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Return long valueReturned,
+         @Arg int arg)
+   {
+      after6="OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,long,int";
+   }
+   
+   public void after6(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Return long valueReturned,
+         @Arg int arg)
+   {
+      after6="OverloadedAdvicePOJO,SuperClass,long,int";
+   }
+   
+   public void after6(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Return long valueReturned,
+         @Arg int arg)
+   {
+      after6="Object,OverloadedAdvicePOJOCaller,long,int";
+   }
+   
+   public void after6(@Target Object target, @Caller SuperClass caller,
+         @Return long valueReturned, @Arg int arg)
+   {
+      after6="Object,SuperClass,long,int";
+   }
+   
+   public void after6(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Return long valueReturned,
+         @Args Object[] args)
+   {
+      after6="OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,long,Object[]";
+   }
+   
+   public void after6(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Return long valueReturned,
+         @Args Object[] args)
+   {
+      after6="OverloadedAdvicePOJO,SuperClass,long,Object[]";
+   }
+   
+   public void after6(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Return long valueReturned,
+         @Args Object[] args)
+   {
+      after6="Object,OverloadedAdvicePOJOCaller,long,Object[]";
+   }
+   
+   public void after6(@Target Object target, @Caller SuperClass caller,
+         @Return long valueReturned, @Args Object[] args)
+   {
+      after6="Object,SuperClass,long,Object[]";
+   }
+   
+   public void after6(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Return long valueReturned)
+   {
+      after6="OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,long";
+   }
+   
+   public void after6(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Return long valueReturned)
+   {
+      after6="OverloadedAdvicePOJO,SuperClass,long";
+   }
+   
+   public void after6(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Return long valueReturned)
+   {
+      after6="Object,OverloadedAdvicePOJOCaller,long";
+   }
+   
+   public void after6(@Target Object target, @Caller SuperClass caller,
+         @Return long valueReturned)
+   {
+      after6="Object,SuperClass,long";
+   }
+   
+   public void after6(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+   {
+      after6="OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,int";
+   }
+   
+   public void after6(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Args Object[] args)
+   {
+      after6="OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,Object[]";
+   }
+   
+   public void after6(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller)
+   {
+      after6="OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller";
+   }
+   
+   public void after6(@Target OverloadedAdvicePOJO target,
+         @Return long returnedValue, @Arg int arg)
+   {
+      after6="OverloadedAdvicePOJO,long,int";
+   }
+   
+   public void after6(@Target Object target, @Return long returnedValue,
+         @Arg int arg)
+   {
+      after6="Object,long,int";
+   }
+   
+   public void after6(@Target OverloadedAdvicePOJO target,
+         @Return long returnedValue, @Args Object[] args)
+   {
+      after6="OverloadedAdvicePOJO,long,Object[]";
+   }
+   
+   public void after6(@Target Object target, @Return long returnedValue,
+         @Args Object[] args)
+   {
+      after6="Object,long,Object[]";
+   }
+   
+   public void after6(@Target OverloadedAdvicePOJO target,
+         @Return long returnedValue)
+   {
+      after6="OverloadedAdvicePOJO,long";
+   }
+   
+   public void after6(@Target Object target, @Return long returnedValue)
+   {
+      after6="Object,long";
+   }
+   
+   public void after6(@Target OverloadedAdvicePOJO target, @Arg int arg)
+   {
+      after6="OverloadedAdvicePOJO,int";
+   }
+   
+   public void after6(@Target OverloadedAdvicePOJO target, @Args Object[] args)
+   {
+      after6="OverloadedAdvicePOJO,Object[]";
+   }
+   
+   public void after6(@Target OverloadedAdvicePOJO target)
+   {
+      after6="OverloadedAdvicePOJO";
+   }
+   
+   public void after6(@Caller OverloadedAdvicePOJOCaller caller,
+         @Return long returnedValue, @Arg int arg)
+   {
+      after6="OverloadedAdvicePOJOCaller,long,int";
+   }
+   
+   public void after6(@Caller SuperClass caller, @Return long returnedValue,
+         @Arg int arg)
+   {
+      after6 = "SuperClass,long,int";
+   }
+   
+   public void after6(@Caller OverloadedAdvicePOJOCaller caller,
+         @Return long returnedValue, @Args Object[] args)
+   {
+      after6 = "OverloadedAdvicePOJOCaller,long,Object[]";
+   }
+   
+   public void after6(@Caller SuperClass caller, @Return long returnedValue,
+         @Args Object[] args)
+   {
+      after6 = "SuperClass,long,Object[]";
+   }
+   
+   public void after6(@Caller OverloadedAdvicePOJOCaller caller,
+         @Return long returnedValue)
+   {
+      after6 = "OverloadedAdvicePOJOCaller,long";
+   }
+   
+   public void after6(@Caller SuperClass caller, @Return long returnedValue)
+   {
+      after6 = "SuperClass,long";
+   }
+   
+   public void after6(@Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+   {
+      after6 = "OverloadedAdvicePOJOCaller,int";
+   }
+   
+   public void after6(@Caller OverloadedAdvicePOJOCaller caller)
+   {
+      after6 = "OverloadedAdvicePOJOCaller";
+   }
+   
+   public void after6(@Return long returnedValue, @Arg int arg)
+   {
+      after6 = "long,int";
+   }
+   
+   /* AFTER7 ADVICE */
+   
+   public void after7(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Target OverloadedAdvicePOJO target, @Return long valueReturned,
+         @Args Object[] args)
+   {
+      after7 = "MethodByMethodInfo,OverloadedAdvicePOJO,long,Object[]";
+   }
+   
+   public void after7(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Target OverloadedAdvicePOJO target, @Return long valueReturned)
+   {
+      after7 = "MethodByMethodInfo,OverloadedAdvicePOJO,long";
+   }
+   
+   public void after7(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Target OverloadedAdvicePOJO target, @Arg int arg)
+   {
+      after7 = "MethodByMethodInfo,OverloadedAdvicePOJO,int";
+   }
+   
+   public void after7(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Target OverloadedAdvicePOJO target, @Args Object[] args)
+   {
+      after7 = "MethodByMethodInfo,OverloadedAdvicePOJO,Object[]";
+   }
+   
+   public void after7(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Target OverloadedAdvicePOJO target)
+   {
+      after7 = "MethodByMethodInfo,OverloadedAdvicePOJO";
+   }
+   
+   public void after7(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Caller OverloadedAdvicePOJOCaller caller, @Return long valueReturned,
+         @Arg int arg)
+   {
+      after7 = "MethodByMethodInfo,OverloadedAdvicePOJOCaller,long,int";
+   }
+   
+   public void after7(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Caller OverloadedAdvicePOJOCaller caller, @Return long valueReturned,
+         @Args Object[] args)
+   {
+      after7 = "MethodByMethodInfo,OverloadedAdvicePOJOCaller,long,Object[]";
+   }
+   
+   public void after7(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Caller OverloadedAdvicePOJOCaller caller, @Return long valueReturned)
+   {
+      after7 = "MethodByMethodInfo,OverloadedAdvicePOJOCaller,long";
+   }
+   
+   public void after7(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+   {
+      after7 = "MethodByMethodInfo,OverloadedAdvicePOJOCaller,int";
+   }
+   
+   public void after7(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Caller OverloadedAdvicePOJOCaller caller, @Args Object[] args)
+   {
+      after7 = "MethodByMethodInfo,OverloadedAdvicePOJOCaller,Object[]";
+   }
+   
+   public void after7(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Caller OverloadedAdvicePOJOCaller caller)
+   {
+      after7 = "MethodByMethodInfo,OverloadedAdvicePOJOCaller";
+   }
+   
+   public void after7(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Return long valueReturned, @Arg int arg)
+   {
+      after7 = "MethodByMethodInfo,long,int";
+   }
+   
+   public void after7(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Return long valueReturned, @Args Object[] args)
+   {
+      after7 = "MethodByMethodInfo,long,Object[]";
+   }
+   
+   public void after7(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Return long valueReturned)
+   {
+      after7 = "MethodByMethodInfo,long";
+   }
+   
+   public void after7(@JoinPoint MethodByMethodInfo joinPointInfo, @Arg int arg)
+   {
+      after7 = "MethodByMethodInfo,int";
+   }
+   
+   public void after7(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Args Object[] args)
+   {
+      after7 = "MethodByMethodInfo,Object[]";
+   }
+   
+   public void after7(@JoinPoint MethodByMethodInfo joinPointInfo)
+   {
+      after7 = "MethodByMethodInfo";
+   }
+   
+   public void after7(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Return long valueReturned,
+         @Arg int arg)
+   {
+      after7="OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,long,int";
+   }
+   
+   public void after7(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Return long valueReturned,
+         @Arg int arg)
+   {
+      after7="OverloadedAdvicePOJO,SuperClass,long,int";
+   }
+   
+   public void after7(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Return long valueReturned,
+         @Arg int arg)
+   {
+      after7="Object,OverloadedAdvicePOJOCaller,long,int";
+   }
+   
+   public void after7(@Target Object target, @Caller SuperClass caller,
+         @Return long valueReturned, @Arg int arg)
+   {
+      after7="Object,SuperClass,long,int";
+   }
+   
+   public void after7(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Return long valueReturned,
+         @Args Object[] args)
+   {
+      after7="OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,long,Object[]";
+   }
+   
+   public void after7(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Return long valueReturned,
+         @Args Object[] args)
+   {
+      after7="OverloadedAdvicePOJO,SuperClass,long,Object[]";
+   }
+   
+   public void after7(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Return long valueReturned,
+         @Args Object[] args)
+   {
+      after7="Object,OverloadedAdvicePOJOCaller,long,Object[]";
+   }
+   
+   public void after7(@Target Object target, @Caller SuperClass caller,
+         @Return long valueReturned, @Args Object[] args)
+   {
+      after7="Object,SuperClass,long,Object[]";
+   }
+   
+   public void after7(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Return long valueReturned)
+   {
+      after7="OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,long";
+   }
+   
+   public void after7(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Return long valueReturned)
+   {
+      after7="OverloadedAdvicePOJO,SuperClass,long";
+   }
+   
+   public void after7(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Return long valueReturned)
+   {
+      after7="Object,OverloadedAdvicePOJOCaller,long";
+   }
+   
+   public void after7(@Target Object target, @Caller SuperClass caller,
+         @Return long valueReturned)
+   {
+      after7="Object,SuperClass,long";
+   }
+   
+   public void after7(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+   {
+      after7="OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,int";
+   }
+   
+   public void after7(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Args Object[] args)
+   {
+      after7="OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,Object[]";
+   }
+   
+   public void after7(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller)
+   {
+      after7="OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller";
+   }
+   
+   public void after7(@Target OverloadedAdvicePOJO target,
+         @Return long returnedValue, @Arg int arg)
+   {
+      after7="OverloadedAdvicePOJO,long,int";
+   }
+   
+   public void after7(@Target Object target, @Return long returnedValue,
+         @Arg int arg)
+   {
+      after7="Object,long,int";
+   }
+   
+   public void after7(@Target OverloadedAdvicePOJO target,
+         @Return long returnedValue, @Args Object[] args)
+   {
+      after7="OverloadedAdvicePOJO,long,Object[]";
+   }
+   
+   public void after7(@Target Object target, @Return long returnedValue,
+         @Args Object[] args)
+   {
+      after7="Object,long,Object[]";
+   }
+   
+   public void after7(@Target OverloadedAdvicePOJO target,
+         @Return long returnedValue)
+   {
+      after7="OverloadedAdvicePOJO,long";
+   }
+   
+   public void after7(@Target Object target, @Return long returnedValue)
+   {
+      after7="Object,long";
+   }
+   
+   public void after7(@Target OverloadedAdvicePOJO target, @Arg int arg)
+   {
+      after7="OverloadedAdvicePOJO,int";
+   }
+   
+   public void after7(@Target OverloadedAdvicePOJO target, @Args Object[] args)
+   {
+      after7="OverloadedAdvicePOJO,Object[]";
+   }
+   
+   public void after7(@Target OverloadedAdvicePOJO target)
+   {
+      after7="OverloadedAdvicePOJO";
+   }
+   
+   public void after7(@Caller OverloadedAdvicePOJOCaller caller,
+         @Return long returnedValue, @Arg int arg)
+   {
+      after7="OverloadedAdvicePOJOCaller,long,int";
+   }
+   
+   public void after7(@Caller SuperClass caller, @Return long returnedValue,
+         @Arg int arg)
+   {
+      after7 = "SuperClass,long,int";
+   }
+   
+   public void after7(@Caller OverloadedAdvicePOJOCaller caller,
+         @Return long returnedValue, @Args Object[] args)
+   {
+      after7 = "OverloadedAdvicePOJOCaller,long,Object[]";
+   }
+   
+   public void after7(@Caller SuperClass caller, @Return long returnedValue,
+         @Args Object[] args)
+   {
+      after7 = "SuperClass,long,Object[]";
+   }
+   
+   public void after7(@Caller OverloadedAdvicePOJOCaller caller,
+         @Return long returnedValue)
+   {
+      after7 = "OverloadedAdvicePOJOCaller,long";
+   }
+   
+   public void after7(@Caller SuperClass caller, @Return long returnedValue)
+   {
+      after7 = "SuperClass,long";
+   }
+   
+   public void after7(@Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+   {
+      after7 = "OverloadedAdvicePOJOCaller,int";
+   }
+   
+   public void after7(@Caller OverloadedAdvicePOJOCaller caller)
+   {
+      after7 = "OverloadedAdvicePOJOCaller";
+   }
+   
+   public void after7(@Return long returnedValue, @Arg int arg)
+   {
+      after7 = "long,int";
+   }
+   
+   /* AFTER8 ADVICE */
+   
+   public void after8(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Target OverloadedAdvicePOJO target, @Return long valueReturned)
+   {
+      after8 = "MethodByMethodInfo,OverloadedAdvicePOJO,long";
+   }
+   
+   public void after8(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Target OverloadedAdvicePOJO target, @Arg int arg)
+   {
+      after8 = "MethodByMethodInfo,OverloadedAdvicePOJO,int";
+   }
+   
+   public void after8(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Target OverloadedAdvicePOJO target, @Args Object[] args)
+   {
+      after8 = "MethodByMethodInfo,OverloadedAdvicePOJO,Object[]";
+   }
+   
+   public void after8(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Target OverloadedAdvicePOJO target)
+   {
+      after8 = "MethodByMethodInfo,OverloadedAdvicePOJO";
+   }
+   
+   public void after8(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Caller OverloadedAdvicePOJOCaller caller, @Return long valueReturned,
+         @Arg int arg)
+   {
+      after8 = "MethodByMethodInfo,OverloadedAdvicePOJOCaller,long,int";
+   }
+   
+   public void after8(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Caller OverloadedAdvicePOJOCaller caller, @Return long valueReturned,
+         @Args Object[] args)
+   {
+      after8 = "MethodByMethodInfo,OverloadedAdvicePOJOCaller,long,Object[]";
+   }
+   
+   public void after8(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Caller OverloadedAdvicePOJOCaller caller, @Return long valueReturned)
+   {
+      after8 = "MethodByMethodInfo,OverloadedAdvicePOJOCaller,long";
+   }
+   
+   public void after8(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+   {
+      after8 = "MethodByMethodInfo,OverloadedAdvicePOJOCaller,int";
+   }
+   
+   public void after8(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Caller OverloadedAdvicePOJOCaller caller, @Args Object[] args)
+   {
+      after8 = "MethodByMethodInfo,OverloadedAdvicePOJOCaller,Object[]";
+   }
+   
+   public void after8(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Caller OverloadedAdvicePOJOCaller caller)
+   {
+      after8 = "MethodByMethodInfo,OverloadedAdvicePOJOCaller";
+   }
+   
+   public void after8(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Return long valueReturned, @Arg int arg)
+   {
+      after8 = "MethodByMethodInfo,long,int";
+   }
+   
+   public void after8(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Return long valueReturned, @Args Object[] args)
+   {
+      after8 = "MethodByMethodInfo,long,Object[]";
+   }
+   
+   public void after8(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Return long valueReturned)
+   {
+      after8 = "MethodByMethodInfo,long";
+   }
+   
+   public void after8(@JoinPoint MethodByMethodInfo joinPointInfo, @Arg int arg)
+   {
+      after8 = "MethodByMethodInfo,int";
+   }
+   
+   public void after8(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Args Object[] args)
+   {
+      after8 = "MethodByMethodInfo,Object[]";
+   }
+   
+   public void after8(@JoinPoint MethodByMethodInfo joinPointInfo)
+   {
+      after8 = "MethodByMethodInfo";
+   }
+   
+   public void after8(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Return long valueReturned,
+         @Arg int arg)
+   {
+      after8="OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,long,int";
+   }
+   
+   public void after8(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Return long valueReturned,
+         @Arg int arg)
+   {
+      after8="OverloadedAdvicePOJO,SuperClass,long,int";
+   }
+   
+   public void after8(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Return long valueReturned,
+         @Arg int arg)
+   {
+      after8="Object,OverloadedAdvicePOJOCaller,long,int";
+   }
+   
+   public void after8(@Target Object target, @Caller SuperClass caller,
+         @Return long valueReturned, @Arg int arg)
+   {
+      after8="Object,SuperClass,long,int";
+   }
+   
+   public void after8(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Return long valueReturned,
+         @Args Object[] args)
+   {
+      after8="OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,long,Object[]";
+   }
+   
+   public void after8(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Return long valueReturned,
+         @Args Object[] args)
+   {
+      after8="OverloadedAdvicePOJO,SuperClass,long,Object[]";
+   }
+   
+   public void after8(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Return long valueReturned,
+         @Args Object[] args)
+   {
+      after8="Object,OverloadedAdvicePOJOCaller,long,Object[]";
+   }
+   
+   public void after8(@Target Object target, @Caller SuperClass caller,
+         @Return long valueReturned, @Args Object[] args)
+   {
+      after8="Object,SuperClass,long,Object[]";
+   }
+   
+   public void after8(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Return long valueReturned)
+   {
+      after8="OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,long";
+   }
+   
+   public void after8(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Return long valueReturned)
+   {
+      after8="OverloadedAdvicePOJO,SuperClass,long";
+   }
+   
+   public void after8(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Return long valueReturned)
+   {
+      after8="Object,OverloadedAdvicePOJOCaller,long";
+   }
+   
+   public void after8(@Target Object target, @Caller SuperClass caller,
+         @Return long valueReturned)
+   {
+      after8="Object,SuperClass,long";
+   }
+   
+   public void after8(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+   {
+      after8="OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,int";
+   }
+   
+   public void after8(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Args Object[] args)
+   {
+      after8="OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,Object[]";
+   }
+   
+   public void after8(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller)
+   {
+      after8="OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller";
+   }
+   
+   public void after8(@Target OverloadedAdvicePOJO target,
+         @Return long returnedValue, @Arg int arg)
+   {
+      after8="OverloadedAdvicePOJO,long,int";
+   }
+   
+   public void after8(@Target Object target, @Return long returnedValue,
+         @Arg int arg)
+   {
+      after8="Object,long,int";
+   }
+   
+   public void after8(@Target OverloadedAdvicePOJO target,
+         @Return long returnedValue, @Args Object[] args)
+   {
+      after8="OverloadedAdvicePOJO,long,Object[]";
+   }
+   
+   public void after8(@Target Object target, @Return long returnedValue,
+         @Args Object[] args)
+   {
+      after8="Object,long,Object[]";
+   }
+   
+   public void after8(@Target OverloadedAdvicePOJO target,
+         @Return long returnedValue)
+   {
+      after8="OverloadedAdvicePOJO,long";
+   }
+   
+   public void after8(@Target Object target, @Return long returnedValue)
+   {
+      after8="Object,long";
+   }
+   
+   public void after8(@Target OverloadedAdvicePOJO target, @Arg int arg)
+   {
+      after8="OverloadedAdvicePOJO,int";
+   }
+   
+   public void after8(@Target OverloadedAdvicePOJO target, @Args Object[] args)
+   {
+      after8="OverloadedAdvicePOJO,Object[]";
+   }
+   
+   public void after8(@Target OverloadedAdvicePOJO target)
+   {
+      after8="OverloadedAdvicePOJO";
+   }
+   
+   public void after8(@Caller OverloadedAdvicePOJOCaller caller,
+         @Return long returnedValue, @Arg int arg)
+   {
+      after8="OverloadedAdvicePOJOCaller,long,int";
+   }
+   
+   public void after8(@Caller SuperClass caller, @Return long returnedValue,
+         @Arg int arg)
+   {
+      after8 = "SuperClass,long,int";
+   }
+   
+   public void after8(@Caller OverloadedAdvicePOJOCaller caller,
+         @Return long returnedValue, @Args Object[] args)
+   {
+      after8 = "OverloadedAdvicePOJOCaller,long,Object[]";
+   }
+   
+   public void after8(@Caller SuperClass caller, @Return long returnedValue,
+         @Args Object[] args)
+   {
+      after8 = "SuperClass,long,Object[]";
+   }
+   
+   public void after8(@Caller OverloadedAdvicePOJOCaller caller,
+         @Return long returnedValue)
+   {
+      after8 = "OverloadedAdvicePOJOCaller,long";
+   }
+   
+   public void after8(@Caller SuperClass caller, @Return long returnedValue)
+   {
+      after8 = "SuperClass,long";
+   }
+   
+   public void after8(@Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+   {
+      after8 = "OverloadedAdvicePOJOCaller,int";
+   }
+   
+   public void after8(@Caller OverloadedAdvicePOJOCaller caller)
+   {
+      after8 = "OverloadedAdvicePOJOCaller";
+   }
+   
+   public void after8(@Return long returnedValue, @Arg int arg)
+   {
+      after8 = "long,int";
+   }
+   
+   /* AFTER9 ADVICE */
+   
+   public void after9(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Target OverloadedAdvicePOJO target, @Arg int arg)
+   {
+      after9 = "MethodByMethodInfo,OverloadedAdvicePOJO,int";
+   }
+   
+   public void after9(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Target OverloadedAdvicePOJO target, @Args Object[] args)
+   {
+      after9 = "MethodByMethodInfo,OverloadedAdvicePOJO,Object[]";
+   }
+   
+   public void after9(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Target OverloadedAdvicePOJO target)
+   {
+      after9 = "MethodByMethodInfo,OverloadedAdvicePOJO";
+   }
+   
+   public void after9(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Caller OverloadedAdvicePOJOCaller caller, @Return long valueReturned,
+         @Arg int arg)
+   {
+      after9 = "MethodByMethodInfo,OverloadedAdvicePOJOCaller,long,int";
+   }
+   
+   public void after9(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Caller OverloadedAdvicePOJOCaller caller, @Return long valueReturned,
+         @Args Object[] args)
+   {
+      after9 = "MethodByMethodInfo,OverloadedAdvicePOJOCaller,long,Object[]";
+   }
+   
+   public void after9(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Caller OverloadedAdvicePOJOCaller caller, @Return long valueReturned)
+   {
+      after9 = "MethodByMethodInfo,OverloadedAdvicePOJOCaller,long";
+   }
+   
+   public void after9(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+   {
+      after9 = "MethodByMethodInfo,OverloadedAdvicePOJOCaller,int";
+   }
+   
+   public void after9(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Caller OverloadedAdvicePOJOCaller caller, @Args Object[] args)
+   {
+      after9 = "MethodByMethodInfo,OverloadedAdvicePOJOCaller,Object[]";
+   }
+   
+   public void after9(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Caller OverloadedAdvicePOJOCaller caller)
+   {
+      after9 = "MethodByMethodInfo,OverloadedAdvicePOJOCaller";
+   }
+   
+   public void after9(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Return long valueReturned, @Arg int arg)
+   {
+      after9 = "MethodByMethodInfo,long,int";
+   }
+   
+   public void after9(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Return long valueReturned, @Args Object[] args)
+   {
+      after9 = "MethodByMethodInfo,long,Object[]";
+   }
+   
+   public void after9(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Return long valueReturned)
+   {
+      after9 = "MethodByMethodInfo,long";
+   }
+   
+   public void after9(@JoinPoint MethodByMethodInfo joinPointInfo, @Arg int arg)
+   {
+      after9 = "MethodByMethodInfo,int";
+   }
+   
+   public void after9(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Args Object[] args)
+   {
+      after9 = "MethodByMethodInfo,Object[]";
+   }
+   
+   public void after9(@JoinPoint MethodByMethodInfo joinPointInfo)
+   {
+      after9 = "MethodByMethodInfo";
+   }
+   
+   public void after9(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Return long valueReturned,
+         @Arg int arg)
+   {
+      after9="OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,long,int";
+   }
+   
+   public void after9(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Return long valueReturned,
+         @Arg int arg)
+   {
+      after9="OverloadedAdvicePOJO,SuperClass,long,int";
+   }
+   
+   public void after9(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Return long valueReturned,
+         @Arg int arg)
+   {
+      after9="Object,OverloadedAdvicePOJOCaller,long,int";
+   }
+   
+   public void after9(@Target Object target, @Caller SuperClass caller,
+         @Return long valueReturned, @Arg int arg)
+   {
+      after9="Object,SuperClass,long,int";
+   }
+   
+   public void after9(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Return long valueReturned,
+         @Args Object[] args)
+   {
+      after9="OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,long,Object[]";
+   }
+   
+   public void after9(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Return long valueReturned,
+         @Args Object[] args)
+   {
+      after9="OverloadedAdvicePOJO,SuperClass,long,Object[]";
+   }
+   
+   public void after9(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Return long valueReturned,
+         @Args Object[] args)
+   {
+      after9="Object,OverloadedAdvicePOJOCaller,long,Object[]";
+   }
+   
+   public void after9(@Target Object target, @Caller SuperClass caller,
+         @Return long valueReturned, @Args Object[] args)
+   {
+      after9="Object,SuperClass,long,Object[]";
+   }
+   
+   public void after9(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Return long valueReturned)
+   {
+      after9="OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,long";
+   }
+   
+   public void after9(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Return long valueReturned)
+   {
+      after9="OverloadedAdvicePOJO,SuperClass,long";
+   }
+   
+   public void after9(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Return long valueReturned)
+   {
+      after9="Object,OverloadedAdvicePOJOCaller,long";
+   }
+   
+   public void after9(@Target Object target, @Caller SuperClass caller,
+         @Return long valueReturned)
+   {
+      after9="Object,SuperClass,long";
+   }
+   
+   public void after9(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+   {
+      after9="OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,int";
+   }
+   
+   public void after9(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Args Object[] args)
+   {
+      after9="OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,Object[]";
+   }
+   
+   public void after9(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller)
+   {
+      after9="OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller";
+   }
+   
+   public void after9(@Target OverloadedAdvicePOJO target,
+         @Return long returnedValue, @Arg int arg)
+   {
+      after9="OverloadedAdvicePOJO,long,int";
+   }
+   
+   public void after9(@Target Object target, @Return long returnedValue,
+         @Arg int arg)
+   {
+      after9="Object,long,int";
+   }
+   
+   public void after9(@Target OverloadedAdvicePOJO target,
+         @Return long returnedValue, @Args Object[] args)
+   {
+      after9="OverloadedAdvicePOJO,long,Object[]";
+   }
+   
+   public void after9(@Target Object target, @Return long returnedValue,
+         @Args Object[] args)
+   {
+      after9="Object,long,Object[]";
+   }
+   
+   public void after9(@Target OverloadedAdvicePOJO target,
+         @Return long returnedValue)
+   {
+      after9="OverloadedAdvicePOJO,long";
+   }
+   
+   public void after9(@Target Object target, @Return long returnedValue)
+   {
+      after9="Object,long";
+   }
+   
+   public void after9(@Target OverloadedAdvicePOJO target, @Arg int arg)
+   {
+      after9="OverloadedAdvicePOJO,int";
+   }
+   
+   public void after9(@Target OverloadedAdvicePOJO target, @Args Object[] args)
+   {
+      after9="OverloadedAdvicePOJO,Object[]";
+   }
+   
+   public void after9(@Target OverloadedAdvicePOJO target)
+   {
+      after9="OverloadedAdvicePOJO";
+   }
+   
+   public void after9(@Caller OverloadedAdvicePOJOCaller caller,
+         @Return long returnedValue, @Arg int arg)
+   {
+      after9="OverloadedAdvicePOJOCaller,long,int";
+   }
+   
+   public void after9(@Caller SuperClass caller, @Return long returnedValue,
+         @Arg int arg)
+   {
+      after9 = "SuperClass,long,int";
+   }
+   
+   public void after9(@Caller OverloadedAdvicePOJOCaller caller,
+         @Return long returnedValue, @Args Object[] args)
+   {
+      after9 = "OverloadedAdvicePOJOCaller,long,Object[]";
+   }
+   
+   public void after9(@Caller SuperClass caller, @Return long returnedValue,
+         @Args Object[] args)
+   {
+      after9 = "SuperClass,long,Object[]";
+   }
+   
+   public void after9(@Caller OverloadedAdvicePOJOCaller caller,
+         @Return long returnedValue)
+   {
+      after9 = "OverloadedAdvicePOJOCaller,long";
+   }
+   
+   public void after9(@Caller SuperClass caller, @Return long returnedValue)
+   {
+      after9 = "SuperClass,long";
+   }
+   
+   public void after9(@Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+   {
+      after9 = "OverloadedAdvicePOJOCaller,int";
+   }
+   
+   public void after9(@Caller OverloadedAdvicePOJOCaller caller)
+   {
+      after9 = "OverloadedAdvicePOJOCaller";
+   }
+   
+   public void after9(@Return long returnedValue, @Arg int arg)
+   {
+      after9 = "long,int";
+   }
+   
+   /* AFTER10 ADVICE */
+   
+   public void after10(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Target OverloadedAdvicePOJO target)
+   {
+      after10 = "MethodByMethodInfo,OverloadedAdvicePOJO";
+   }
+   
+   public void after10(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Caller OverloadedAdvicePOJOCaller caller, @Return long valueReturned,
+         @Arg int arg)
+   {
+      after10 = "MethodByMethodInfo,OverloadedAdvicePOJOCaller,long,int";
+   }
+   
+   public void after10(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Caller OverloadedAdvicePOJOCaller caller, @Return long valueReturned,
+         @Args Object[] args)
+   {
+      after10 = "MethodByMethodInfo,OverloadedAdvicePOJOCaller,long,Object[]";
+   }
+   
+   public void after10(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Caller OverloadedAdvicePOJOCaller caller, @Return long valueReturned)
+   {
+      after10 = "MethodByMethodInfo,OverloadedAdvicePOJOCaller,long";
+   }
+   
+   public void after10(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+   {
+      after10 = "MethodByMethodInfo,OverloadedAdvicePOJOCaller,int";
+   }
+   
+   public void after10(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Caller OverloadedAdvicePOJOCaller caller, @Args Object[] args)
+   {
+      after10 = "MethodByMethodInfo,OverloadedAdvicePOJOCaller,Object[]";
+   }
+   
+   public void after10(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Caller OverloadedAdvicePOJOCaller caller)
+   {
+      after10 = "MethodByMethodInfo,OverloadedAdvicePOJOCaller";
+   }
+   
+   public void after10(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Return long valueReturned, @Arg int arg)
+   {
+      after10 = "MethodByMethodInfo,long,int";
+   }
+   
+   public void after10(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Return long valueReturned, @Args Object[] args)
+   {
+      after10 = "MethodByMethodInfo,long,Object[]";
+   }
+   
+   public void after10(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Return long valueReturned)
+   {
+      after10 = "MethodByMethodInfo,long";
+   }
+   
+   public void after10(@JoinPoint MethodByMethodInfo joinPointInfo, @Arg int arg)
+   {
+      after10 = "MethodByMethodInfo,int";
+   }
+   
+   public void after10(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Args Object[] args)
+   {
+      after10 = "MethodByMethodInfo,Object[]";
+   }
+   
+   public void after10(@JoinPoint MethodByMethodInfo joinPointInfo)
+   {
+      after10 = "MethodByMethodInfo";
+   }
+   
+   public void after10(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Return long valueReturned,
+         @Arg int arg)
+   {
+      after10="OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,long,int";
+   }
+   
+   public void after10(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Return long valueReturned,
+         @Arg int arg)
+   {
+      after10="OverloadedAdvicePOJO,SuperClass,long,int";
+   }
+   
+   public void after10(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Return long valueReturned,
+         @Arg int arg)
+   {
+      after10="Object,OverloadedAdvicePOJOCaller,long,int";
+   }
+   
+   public void after10(@Target Object target, @Caller SuperClass caller,
+         @Return long valueReturned, @Arg int arg)
+   {
+      after10="Object,SuperClass,long,int";
+   }
+   
+   public void after10(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Return long valueReturned,
+         @Args Object[] args)
+   {
+      after10="OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,long,Object[]";
+   }
+   
+   public void after10(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Return long valueReturned,
+         @Args Object[] args)
+   {
+      after10="OverloadedAdvicePOJO,SuperClass,long,Object[]";
+   }
+   
+   public void after10(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Return long valueReturned,
+         @Args Object[] args)
+   {
+      after10="Object,OverloadedAdvicePOJOCaller,long,Object[]";
+   }
+   
+   public void after10(@Target Object target, @Caller SuperClass caller,
+         @Return long valueReturned, @Args Object[] args)
+   {
+      after10="Object,SuperClass,long,Object[]";
+   }
+   
+   public void after10(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Return long valueReturned)
+   {
+      after10="OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,long";
+   }
+   
+   public void after10(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Return long valueReturned)
+   {
+      after10="OverloadedAdvicePOJO,SuperClass,long";
+   }
+   
+   public void after10(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Return long valueReturned)
+   {
+      after10="Object,OverloadedAdvicePOJOCaller,long";
+   }
+   
+   public void after10(@Target Object target, @Caller SuperClass caller,
+         @Return long valueReturned)
+   {
+      after10="Object,SuperClass,long";
+   }
+   
+   public void after10(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+   {
+      after10="OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,int";
+   }
+   
+   public void after10(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Args Object[] args)
+   {
+      after10="OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,Object[]";
+   }
+   
+   public void after10(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller)
+   {
+      after10="OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller";
+   }
+   
+   public void after10(@Target OverloadedAdvicePOJO target,
+         @Return long returnedValue, @Arg int arg)
+   {
+      after10="OverloadedAdvicePOJO,long,int";
+   }
+   
+   public void after10(@Target Object target, @Return long returnedValue,
+         @Arg int arg)
+   {
+      after10="Object,long,int";
+   }
+   
+   public void after10(@Target OverloadedAdvicePOJO target,
+         @Return long returnedValue, @Args Object[] args)
+   {
+      after10="OverloadedAdvicePOJO,long,Object[]";
+   }
+   
+   public void after10(@Target Object target, @Return long returnedValue,
+         @Args Object[] args)
+   {
+      after10="Object,long,Object[]";
+   }
+   
+   public void after10(@Target OverloadedAdvicePOJO target,
+         @Return long returnedValue)
+   {
+      after10="OverloadedAdvicePOJO,long";
+   }
+   
+   public void after10(@Target Object target, @Return long returnedValue)
+   {
+      after10="Object,long";
+   }
+   
+   public void after10(@Target OverloadedAdvicePOJO target, @Arg int arg)
+   {
+      after10="OverloadedAdvicePOJO,int";
+   }
+   
+   public void after10(@Target OverloadedAdvicePOJO target, @Args Object[] args)
+   {
+      after10="OverloadedAdvicePOJO,Object[]";
+   }
+   
+   public void after10(@Target OverloadedAdvicePOJO target)
+   {
+      after10="OverloadedAdvicePOJO";
+   }
+   
+   public void after10(@Caller OverloadedAdvicePOJOCaller caller,
+         @Return long returnedValue, @Arg int arg)
+   {
+      after10="OverloadedAdvicePOJOCaller,long,int";
+   }
+   
+   public void after10(@Caller SuperClass caller, @Return long returnedValue,
+         @Arg int arg)
+   {
+      after10 = "SuperClass,long,int";
+   }
+   
+   public void after10(@Caller OverloadedAdvicePOJOCaller caller,
+         @Return long returnedValue, @Args Object[] args)
+   {
+      after10 = "OverloadedAdvicePOJOCaller,long,Object[]";
+   }
+   
+   public void after10(@Caller SuperClass caller, @Return long returnedValue,
+         @Args Object[] args)
+   {
+      after10 = "SuperClass,long,Object[]";
+   }
+   
+   public void after10(@Caller OverloadedAdvicePOJOCaller caller,
+         @Return long returnedValue)
+   {
+      after10 = "OverloadedAdvicePOJOCaller,long";
+   }
+   
+   public void after10(@Caller SuperClass caller, @Return long returnedValue)
+   {
+      after10 = "SuperClass,long";
+   }
+   
+   public void after10(@Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+   {
+      after10 = "OverloadedAdvicePOJOCaller,int";
+   }
+   
+   public void after10(@Caller OverloadedAdvicePOJOCaller caller)
+   {
+      after10 = "OverloadedAdvicePOJOCaller";
+   }
+   
+   public void after10(@Return long returnedValue, @Arg int arg)
+   {
+      after10 = "long,int";
+   }
+   
+   /* AFTER11 ADVICE */
+   
+   public void after11(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Caller OverloadedAdvicePOJOCaller caller, @Return long valueReturned,
+         @Arg int arg)
+   {
+      after11 = "MethodByMethodInfo,OverloadedAdvicePOJOCaller,long,int";
+   }
+   
+   public void after11(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Caller OverloadedAdvicePOJOCaller caller, @Return long valueReturned,
+         @Args Object[] args)
+   {
+      after11 = "MethodByMethodInfo,OverloadedAdvicePOJOCaller,long,Object[]";
+   }
+   
+   public void after11(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Caller OverloadedAdvicePOJOCaller caller, @Return long valueReturned)
+   {
+      after11 = "MethodByMethodInfo,OverloadedAdvicePOJOCaller,long";
+   }
+   
+   public void after11(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+   {
+      after11 = "MethodByMethodInfo,OverloadedAdvicePOJOCaller,int";
+   }
+   
+   public void after11(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Caller OverloadedAdvicePOJOCaller caller, @Args Object[] args)
+   {
+      after11 = "MethodByMethodInfo,OverloadedAdvicePOJOCaller,Object[]";
+   }
+   
+   public void after11(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Caller OverloadedAdvicePOJOCaller caller)
+   {
+      after11 = "MethodByMethodInfo,OverloadedAdvicePOJOCaller";
+   }
+   
+   public void after11(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Return long valueReturned, @Arg int arg)
+   {
+      after11 = "MethodByMethodInfo,long,int";
+   }
+   
+   public void after11(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Return long valueReturned, @Args Object[] args)
+   {
+      after11 = "MethodByMethodInfo,long,Object[]";
+   }
+   
+   public void after11(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Return long valueReturned)
+   {
+      after11 = "MethodByMethodInfo,long";
+   }
+   
+   public void after11(@JoinPoint MethodByMethodInfo joinPointInfo, @Arg int arg)
+   {
+      after11 = "MethodByMethodInfo,int";
+   }
+   
+   public void after11(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Args Object[] args)
+   {
+      after11 = "MethodByMethodInfo,Object[]";
+   }
+   
+   public void after11(@JoinPoint MethodByMethodInfo joinPointInfo)
+   {
+      after11 = "MethodByMethodInfo";
+   }
+   
+   public void after11(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Return long valueReturned,
+         @Arg int arg)
+   {
+      after11="OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,long,int";
+   }
+   
+   public void after11(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Return long valueReturned,
+         @Arg int arg)
+   {
+      after11="OverloadedAdvicePOJO,SuperClass,long,int";
+   }
+   
+   public void after11(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Return long valueReturned,
+         @Arg int arg)
+   {
+      after11="Object,OverloadedAdvicePOJOCaller,long,int";
+   }
+   
+   public void after11(@Target Object target, @Caller SuperClass caller,
+         @Return long valueReturned, @Arg int arg)
+   {
+      after11="Object,SuperClass,long,int";
+   }
+   
+   public void after11(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Return long valueReturned,
+         @Args Object[] args)
+   {
+      after11="OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,long,Object[]";
+   }
+   
+   public void after11(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Return long valueReturned,
+         @Args Object[] args)
+   {
+      after11="OverloadedAdvicePOJO,SuperClass,long,Object[]";
+   }
+   
+   public void after11(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Return long valueReturned,
+         @Args Object[] args)
+   {
+      after11="Object,OverloadedAdvicePOJOCaller,long,Object[]";
+   }
+   
+   public void after11(@Target Object target, @Caller SuperClass caller,
+         @Return long valueReturned, @Args Object[] args)
+   {
+      after11="Object,SuperClass,long,Object[]";
+   }
+   
+   public void after11(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Return long valueReturned)
+   {
+      after11="OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,long";
+   }
+   
+   public void after11(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Return long valueReturned)
+   {
+      after11="OverloadedAdvicePOJO,SuperClass,long";
+   }
+   
+   public void after11(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Return long valueReturned)
+   {
+      after11="Object,OverloadedAdvicePOJOCaller,long";
+   }
+   
+   public void after11(@Target Object target, @Caller SuperClass caller,
+         @Return long valueReturned)
+   {
+      after11="Object,SuperClass,long";
+   }
+   
+   public void after11(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+   {
+      after11="OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,int";
+   }
+   
+   public void after11(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Args Object[] args)
+   {
+      after11="OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,Object[]";
+   }
+   
+   public void after11(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller)
+   {
+      after11="OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller";
+   }
+   
+   public void after11(@Target OverloadedAdvicePOJO target,
+         @Return long returnedValue, @Arg int arg)
+   {
+      after11="OverloadedAdvicePOJO,long,int";
+   }
+   
+   public void after11(@Target Object target, @Return long returnedValue,
+         @Arg int arg)
+   {
+      after11="Object,long,int";
+   }
+   
+   public void after11(@Target OverloadedAdvicePOJO target,
+         @Return long returnedValue, @Args Object[] args)
+   {
+      after11="OverloadedAdvicePOJO,long,Object[]";
+   }
+   
+   public void after11(@Target Object target, @Return long returnedValue,
+         @Args Object[] args)
+   {
+      after11="Object,long,Object[]";
+   }
+   
+   public void after11(@Target OverloadedAdvicePOJO target,
+         @Return long returnedValue)
+   {
+      after11="OverloadedAdvicePOJO,long";
+   }
+   
+   public void after11(@Target Object target, @Return long returnedValue)
+   {
+      after11="Object,long";
+   }
+   
+   public void after11(@Target OverloadedAdvicePOJO target, @Arg int arg)
+   {
+      after11="OverloadedAdvicePOJO,int";
+   }
+   
+   public void after11(@Target OverloadedAdvicePOJO target, @Args Object[] args)
+   {
+      after11="OverloadedAdvicePOJO,Object[]";
+   }
+   
+   public void after11(@Target OverloadedAdvicePOJO target)
+   {
+      after11="OverloadedAdvicePOJO";
+   }
+   
+   public void after11(@Caller OverloadedAdvicePOJOCaller caller,
+         @Return long returnedValue, @Arg int arg)
+   {
+      after11="OverloadedAdvicePOJOCaller,long,int";
+   }
+   
+   public void after11(@Caller SuperClass caller, @Return long returnedValue,
+         @Arg int arg)
+   {
+      after11 = "SuperClass,long,int";
+   }
+   
+   public void after11(@Caller OverloadedAdvicePOJOCaller caller,
+         @Return long returnedValue, @Args Object[] args)
+   {
+      after11 = "OverloadedAdvicePOJOCaller,long,Object[]";
+   }
+   
+   public void after11(@Caller SuperClass caller, @Return long returnedValue,
+         @Args Object[] args)
+   {
+      after11 = "SuperClass,long,Object[]";
+   }
+   
+   public void after11(@Caller OverloadedAdvicePOJOCaller caller,
+         @Return long returnedValue)
+   {
+      after11 = "OverloadedAdvicePOJOCaller,long";
+   }
+   
+   public void after11(@Caller SuperClass caller, @Return long returnedValue)
+   {
+      after11 = "SuperClass,long";
+   }
+   
+   public void after11(@Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+   {
+      after11 = "OverloadedAdvicePOJOCaller,int";
+   }
+   
+   public void after11(@Caller OverloadedAdvicePOJOCaller caller)
+   {
+      after11 = "OverloadedAdvicePOJOCaller";
+   }
+   
+   public void after11(@Return long returnedValue, @Arg int arg)
+   {
+      after11 = "long,int";
+   }
+   
+   /* AFTER12 ADVICE */
+   
+   public void after12(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Caller OverloadedAdvicePOJOCaller caller, @Return long valueReturned,
+         @Args Object[] args)
+   {
+      after12 = "MethodByMethodInfo,OverloadedAdvicePOJOCaller,long,Object[]";
+   }
+   
+   public void after12(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Caller OverloadedAdvicePOJOCaller caller, @Return long valueReturned)
+   {
+      after12 = "MethodByMethodInfo,OverloadedAdvicePOJOCaller,long";
+   }
+   
+   public void after12(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+   {
+      after12 = "MethodByMethodInfo,OverloadedAdvicePOJOCaller,int";
+   }
+   
+   public void after12(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Caller OverloadedAdvicePOJOCaller caller, @Args Object[] args)
+   {
+      after12 = "MethodByMethodInfo,OverloadedAdvicePOJOCaller,Object[]";
+   }
+   
+   public void after12(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Caller OverloadedAdvicePOJOCaller caller)
+   {
+      after12 = "MethodByMethodInfo,OverloadedAdvicePOJOCaller";
+   }
+   
+   public void after12(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Return long valueReturned, @Arg int arg)
+   {
+      after12 = "MethodByMethodInfo,long,int";
+   }
+   
+   public void after12(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Return long valueReturned, @Args Object[] args)
+   {
+      after12 = "MethodByMethodInfo,long,Object[]";
+   }
+   
+   public void after12(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Return long valueReturned)
+   {
+      after12 = "MethodByMethodInfo,long";
+   }
+   
+   public void after12(@JoinPoint MethodByMethodInfo joinPointInfo, @Arg int arg)
+   {
+      after12 = "MethodByMethodInfo,int";
+   }
+   
+   public void after12(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Args Object[] args)
+   {
+      after12 = "MethodByMethodInfo,Object[]";
+   }
+   
+   public void after12(@JoinPoint MethodByMethodInfo joinPointInfo)
+   {
+      after12 = "MethodByMethodInfo";
+   }
+   
+   public void after12(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Return long valueReturned,
+         @Arg int arg)
+   {
+      after12="OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,long,int";
+   }
+   
+   public void after12(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Return long valueReturned,
+         @Arg int arg)
+   {
+      after12="OverloadedAdvicePOJO,SuperClass,long,int";
+   }
+   
+   public void after12(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Return long valueReturned,
+         @Arg int arg)
+   {
+      after12="Object,OverloadedAdvicePOJOCaller,long,int";
+   }
+   
+   public void after12(@Target Object target, @Caller SuperClass caller,
+         @Return long valueReturned, @Arg int arg)
+   {
+      after12="Object,SuperClass,long,int";
+   }
+   
+   public void after12(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Return long valueReturned,
+         @Args Object[] args)
+   {
+      after12="OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,long,Object[]";
+   }
+   
+   public void after12(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Return long valueReturned,
+         @Args Object[] args)
+   {
+      after12="OverloadedAdvicePOJO,SuperClass,long,Object[]";
+   }
+   
+   public void after12(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Return long valueReturned,
+         @Args Object[] args)
+   {
+      after12="Object,OverloadedAdvicePOJOCaller,long,Object[]";
+   }
+   
+   public void after12(@Target Object target, @Caller SuperClass caller,
+         @Return long valueReturned, @Args Object[] args)
+   {
+      after12="Object,SuperClass,long,Object[]";
+   }
+   
+   public void after12(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Return long valueReturned)
+   {
+      after12="OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,long";
+   }
+   
+   public void after12(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Return long valueReturned)
+   {
+      after12="OverloadedAdvicePOJO,SuperClass,long";
+   }
+   
+   public void after12(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Return long valueReturned)
+   {
+      after12="Object,OverloadedAdvicePOJOCaller,long";
+   }
+   
+   public void after12(@Target Object target, @Caller SuperClass caller,
+         @Return long valueReturned)
+   {
+      after12="Object,SuperClass,long";
+   }
+   
+   public void after12(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+   {
+      after12="OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,int";
+   }
+   
+   public void after12(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Args Object[] args)
+   {
+      after12="OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,Object[]";
+   }
+   
+   public void after12(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller)
+   {
+      after12="OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller";
+   }
+   
+   public void after12(@Target OverloadedAdvicePOJO target,
+         @Return long returnedValue, @Arg int arg)
+   {
+      after12="OverloadedAdvicePOJO,long,int";
+   }
+   
+   public void after12(@Target Object target, @Return long returnedValue,
+         @Arg int arg)
+   {
+      after12="Object,long,int";
+   }
+   
+   public void after12(@Target OverloadedAdvicePOJO target,
+         @Return long returnedValue, @Args Object[] args)
+   {
+      after12="OverloadedAdvicePOJO,long,Object[]";
+   }
+   
+   public void after12(@Target Object target, @Return long returnedValue,
+         @Args Object[] args)
+   {
+      after12="Object,long,Object[]";
+   }
+   
+   public void after12(@Target OverloadedAdvicePOJO target,
+         @Return long returnedValue)
+   {
+      after12="OverloadedAdvicePOJO,long";
+   }
+   
+   public void after12(@Target Object target, @Return long returnedValue)
+   {
+      after12="Object,long";
+   }
+   
+   public void after12(@Target OverloadedAdvicePOJO target, @Arg int arg)
+   {
+      after12="OverloadedAdvicePOJO,int";
+   }
+   
+   public void after12(@Target OverloadedAdvicePOJO target, @Args Object[] args)
+   {
+      after12="OverloadedAdvicePOJO,Object[]";
+   }
+   
+   public void after12(@Target OverloadedAdvicePOJO target)
+   {
+      after12="OverloadedAdvicePOJO";
+   }
+   
+   public void after12(@Caller OverloadedAdvicePOJOCaller caller,
+         @Return long returnedValue, @Arg int arg)
+   {
+      after12="OverloadedAdvicePOJOCaller,long,int";
+   }
+   
+   public void after12(@Caller SuperClass caller, @Return long returnedValue,
+         @Arg int arg)
+   {
+      after12 = "SuperClass,long,int";
+   }
+   
+   public void after12(@Caller OverloadedAdvicePOJOCaller caller,
+         @Return long returnedValue, @Args Object[] args)
+   {
+      after12 = "OverloadedAdvicePOJOCaller,long,Object[]";
+   }
+   
+   public void after12(@Caller SuperClass caller, @Return long returnedValue,
+         @Args Object[] args)
+   {
+      after12 = "SuperClass,long,Object[]";
+   }
+   
+   public void after12(@Caller OverloadedAdvicePOJOCaller caller,
+         @Return long returnedValue)
+   {
+      after12 = "OverloadedAdvicePOJOCaller,long";
+   }
+   
+   public void after12(@Caller SuperClass caller, @Return long returnedValue)
+   {
+      after12 = "SuperClass,long";
+   }
+   
+   public void after12(@Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+   {
+      after12 = "OverloadedAdvicePOJOCaller,int";
+   }
+   
+   public void after12(@Caller OverloadedAdvicePOJOCaller caller)
+   {
+      after12 = "OverloadedAdvicePOJOCaller";
+   }
+   
+   public void after12(@Return long returnedValue, @Arg int arg)
+   {
+      after12 = "long,int";
+   }
+   
+   /* AFTER13 ADVICE */
+   
+   public void after13(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Caller OverloadedAdvicePOJOCaller caller, @Return long valueReturned)
+   {
+      after13 = "MethodByMethodInfo,OverloadedAdvicePOJOCaller,long";
+   }
+   
+   public void after13(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+   {
+      after13 = "MethodByMethodInfo,OverloadedAdvicePOJOCaller,int";
+   }
+   
+   public void after13(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Caller OverloadedAdvicePOJOCaller caller, @Args Object[] args)
+   {
+      after13 = "MethodByMethodInfo,OverloadedAdvicePOJOCaller,Object[]";
+   }
+   
+   public void after13(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Caller OverloadedAdvicePOJOCaller caller)
+   {
+      after13 = "MethodByMethodInfo,OverloadedAdvicePOJOCaller";
+   }
+   
+   public void after13(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Return long valueReturned, @Arg int arg)
+   {
+      after13 = "MethodByMethodInfo,long,int";
+   }
+   
+   public void after13(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Return long valueReturned, @Args Object[] args)
+   {
+      after13 = "MethodByMethodInfo,long,Object[]";
+   }
+   
+   public void after13(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Return long valueReturned)
+   {
+      after13 = "MethodByMethodInfo,long";
+   }
+   
+   public void after13(@JoinPoint MethodByMethodInfo joinPointInfo, @Arg int arg)
+   {
+      after13 = "MethodByMethodInfo,int";
+   }
+   
+   public void after13(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Args Object[] args)
+   {
+      after13 = "MethodByMethodInfo,Object[]";
+   }
+   
+   public void after13(@JoinPoint MethodByMethodInfo joinPointInfo)
+   {
+      after13 = "MethodByMethodInfo";
+   }
+   
+   public void after13(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Return long valueReturned,
+         @Arg int arg)
+   {
+      after13="OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,long,int";
+   }
+   
+   public void after13(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Return long valueReturned,
+         @Arg int arg)
+   {
+      after13="OverloadedAdvicePOJO,SuperClass,long,int";
+   }
+   
+   public void after13(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Return long valueReturned,
+         @Arg int arg)
+   {
+      after13="Object,OverloadedAdvicePOJOCaller,long,int";
+   }
+   
+   public void after13(@Target Object target, @Caller SuperClass caller,
+         @Return long valueReturned, @Arg int arg)
+   {
+      after13="Object,SuperClass,long,int";
+   }
+   
+   public void after13(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Return long valueReturned,
+         @Args Object[] args)
+   {
+      after13="OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,long,Object[]";
+   }
+   
+   public void after13(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Return long valueReturned,
+         @Args Object[] args)
+   {
+      after13="OverloadedAdvicePOJO,SuperClass,long,Object[]";
+   }
+   
+   public void after13(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Return long valueReturned,
+         @Args Object[] args)
+   {
+      after13="Object,OverloadedAdvicePOJOCaller,long,Object[]";
+   }
+   
+   public void after13(@Target Object target, @Caller SuperClass caller,
+         @Return long valueReturned, @Args Object[] args)
+   {
+      after13="Object,SuperClass,long,Object[]";
+   }
+   
+   public void after13(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Return long valueReturned)
+   {
+      after13="OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,long";
+   }
+   
+   public void after13(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Return long valueReturned)
+   {
+      after13="OverloadedAdvicePOJO,SuperClass,long";
+   }
+   
+   public void after13(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Return long valueReturned)
+   {
+      after13="Object,OverloadedAdvicePOJOCaller,long";
+   }
+   
+   public void after13(@Target Object target, @Caller SuperClass caller,
+         @Return long valueReturned)
+   {
+      after13="Object,SuperClass,long";
+   }
+   
+   public void after13(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+   {
+      after13="OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,int";
+   }
+   
+   public void after13(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Args Object[] args)
+   {
+      after13="OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,Object[]";
+   }
+   
+   public void after13(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller)
+   {
+      after13="OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller";
+   }
+   
+   public void after13(@Target OverloadedAdvicePOJO target,
+         @Return long returnedValue, @Arg int arg)
+   {
+      after13="OverloadedAdvicePOJO,long,int";
+   }
+   
+   public void after13(@Target Object target, @Return long returnedValue,
+         @Arg int arg)
+   {
+      after13="Object,long,int";
+   }
+   
+   public void after13(@Target OverloadedAdvicePOJO target,
+         @Return long returnedValue, @Args Object[] args)
+   {
+      after13="OverloadedAdvicePOJO,long,Object[]";
+   }
+   
+   public void after13(@Target Object target, @Return long returnedValue,
+         @Args Object[] args)
+   {
+      after13="Object,long,Object[]";
+   }
+   
+   public void after13(@Target OverloadedAdvicePOJO target,
+         @Return long returnedValue)
+   {
+      after13="OverloadedAdvicePOJO,long";
+   }
+   
+   public void after13(@Target Object target, @Return long returnedValue)
+   {
+      after13="Object,long";
+   }
+   
+   public void after13(@Target OverloadedAdvicePOJO target, @Arg int arg)
+   {
+      after13="OverloadedAdvicePOJO,int";
+   }
+   
+   public void after13(@Target OverloadedAdvicePOJO target, @Args Object[] args)
+   {
+      after13="OverloadedAdvicePOJO,Object[]";
+   }
+   
+   public void after13(@Target OverloadedAdvicePOJO target)
+   {
+      after13="OverloadedAdvicePOJO";
+   }
+   
+   public void after13(@Caller OverloadedAdvicePOJOCaller caller,
+         @Return long returnedValue, @Arg int arg)
+   {
+      after13="OverloadedAdvicePOJOCaller,long,int";
+   }
+   
+   public void after13(@Caller SuperClass caller, @Return long returnedValue,
+         @Arg int arg)
+   {
+      after13 = "SuperClass,long,int";
+   }
+   
+   public void after13(@Caller OverloadedAdvicePOJOCaller caller,
+         @Return long returnedValue, @Args Object[] args)
+   {
+      after13 = "OverloadedAdvicePOJOCaller,long,Object[]";
+   }
+   
+   public void after13(@Caller SuperClass caller, @Return long returnedValue,
+         @Args Object[] args)
+   {
+      after13 = "SuperClass,long,Object[]";
+   }
+   
+   public void after13(@Caller OverloadedAdvicePOJOCaller caller,
+         @Return long returnedValue)
+   {
+      after13 = "OverloadedAdvicePOJOCaller,long";
+   }
+   
+   public void after13(@Caller SuperClass caller, @Return long returnedValue)
+   {
+      after13 = "SuperClass,long";
+   }
+   
+   public void after13(@Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+   {
+      after13 = "OverloadedAdvicePOJOCaller,int";
+   }
+   
+   public void after13(@Caller OverloadedAdvicePOJOCaller caller)
+   {
+      after13 = "OverloadedAdvicePOJOCaller";
+   }
+   
+   public void after13(@Return long returnedValue, @Arg int arg)
+   {
+      after13 = "long,int";
+   }
+   
+   /* AFTER14 ADVICE */
+   
+   public void after14(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+   {
+      after14 = "MethodByMethodInfo,OverloadedAdvicePOJOCaller,int";
+   }
+   
+   public void after14(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Caller OverloadedAdvicePOJOCaller caller, @Args Object[] args)
+   {
+      after14 = "MethodByMethodInfo,OverloadedAdvicePOJOCaller,Object[]";
+   }
+   
+   public void after14(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Caller OverloadedAdvicePOJOCaller caller)
+   {
+      after14 = "MethodByMethodInfo,OverloadedAdvicePOJOCaller";
+   }
+   
+   public void after14(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Return long valueReturned, @Arg int arg)
+   {
+      after14 = "MethodByMethodInfo,long,int";
+   }
+   
+   public void after14(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Return long valueReturned, @Args Object[] args)
+   {
+      after14 = "MethodByMethodInfo,long,Object[]";
+   }
+   
+   public void after14(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Return long valueReturned)
+   {
+      after14 = "MethodByMethodInfo,long";
+   }
+   
+   public void after14(@JoinPoint MethodByMethodInfo joinPointInfo, @Arg int arg)
+   {
+      after14 = "MethodByMethodInfo,int";
+   }
+   
+   public void after14(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Args Object[] args)
+   {
+      after14 = "MethodByMethodInfo,Object[]";
+   }
+   
+   public void after14(@JoinPoint MethodByMethodInfo joinPointInfo)
+   {
+      after14 = "MethodByMethodInfo";
+   }
+   
+   public void after14(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Return long valueReturned,
+         @Arg int arg)
+   {
+      after14="OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,long,int";
+   }
+   
+   public void after14(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Return long valueReturned,
+         @Arg int arg)
+   {
+      after14="OverloadedAdvicePOJO,SuperClass,long,int";
+   }
+   
+   public void after14(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Return long valueReturned,
+         @Arg int arg)
+   {
+      after14="Object,OverloadedAdvicePOJOCaller,long,int";
+   }
+   
+   public void after14(@Target Object target, @Caller SuperClass caller,
+         @Return long valueReturned, @Arg int arg)
+   {
+      after14="Object,SuperClass,long,int";
+   }
+   
+   public void after14(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Return long valueReturned,
+         @Args Object[] args)
+   {
+      after14="OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,long,Object[]";
+   }
+   
+   public void after14(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Return long valueReturned,
+         @Args Object[] args)
+   {
+      after14="OverloadedAdvicePOJO,SuperClass,long,Object[]";
+   }
+   
+   public void after14(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Return long valueReturned,
+         @Args Object[] args)
+   {
+      after14="Object,OverloadedAdvicePOJOCaller,long,Object[]";
+   }
+   
+   public void after14(@Target Object target, @Caller SuperClass caller,
+         @Return long valueReturned, @Args Object[] args)
+   {
+      after14="Object,SuperClass,long,Object[]";
+   }
+   
+   public void after14(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Return long valueReturned)
+   {
+      after14="OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,long";
+   }
+   
+   public void after14(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Return long valueReturned)
+   {
+      after14="OverloadedAdvicePOJO,SuperClass,long";
+   }
+   
+   public void after14(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Return long valueReturned)
+   {
+      after14="Object,OverloadedAdvicePOJOCaller,long";
+   }
+   
+   public void after14(@Target Object target, @Caller SuperClass caller,
+         @Return long valueReturned)
+   {
+      after14="Object,SuperClass,long";
+   }
+   
+   public void after14(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+   {
+      after14="OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,int";
+   }
+   
+   public void after14(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Args Object[] args)
+   {
+      after14="OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,Object[]";
+   }
+   
+   public void after14(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller)
+   {
+      after14="OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller";
+   }
+   
+   public void after14(@Target OverloadedAdvicePOJO target,
+         @Return long returnedValue, @Arg int arg)
+   {
+      after14="OverloadedAdvicePOJO,long,int";
+   }
+   
+   public void after14(@Target Object target, @Return long returnedValue,
+         @Arg int arg)
+   {
+      after14="Object,long,int";
+   }
+   
+   public void after14(@Target OverloadedAdvicePOJO target,
+         @Return long returnedValue, @Args Object[] args)
+   {
+      after14="OverloadedAdvicePOJO,long,Object[]";
+   }
+   
+   public void after14(@Target Object target, @Return long returnedValue,
+         @Args Object[] args)
+   {
+      after14="Object,long,Object[]";
+   }
+   
+   public void after14(@Target OverloadedAdvicePOJO target,
+         @Return long returnedValue)
+   {
+      after14="OverloadedAdvicePOJO,long";
+   }
+   
+   public void after14(@Target Object target, @Return long returnedValue)
+   {
+      after14="Object,long";
+   }
+   
+   public void after14(@Target OverloadedAdvicePOJO target, @Arg int arg)
+   {
+      after14="OverloadedAdvicePOJO,int";
+   }
+   
+   public void after14(@Target OverloadedAdvicePOJO target, @Args Object[] args)
+   {
+      after14="OverloadedAdvicePOJO,Object[]";
+   }
+   
+   public void after14(@Target OverloadedAdvicePOJO target)
+   {
+      after14="OverloadedAdvicePOJO";
+   }
+   
+   public void after14(@Caller OverloadedAdvicePOJOCaller caller,
+         @Return long returnedValue, @Arg int arg)
+   {
+      after14="OverloadedAdvicePOJOCaller,long,int";
+   }
+   
+   public void after14(@Caller SuperClass caller, @Return long returnedValue,
+         @Arg int arg)
+   {
+      after14 = "SuperClass,long,int";
+   }
+   
+   public void after14(@Caller OverloadedAdvicePOJOCaller caller,
+         @Return long returnedValue, @Args Object[] args)
+   {
+      after14 = "OverloadedAdvicePOJOCaller,long,Object[]";
+   }
+   
+   public void after14(@Caller SuperClass caller, @Return long returnedValue,
+         @Args Object[] args)
+   {
+      after14 = "SuperClass,long,Object[]";
+   }
+   
+   public void after14(@Caller OverloadedAdvicePOJOCaller caller,
+         @Return long returnedValue)
+   {
+      after14 = "OverloadedAdvicePOJOCaller,long";
+   }
+   
+   public void after14(@Caller SuperClass caller, @Return long returnedValue)
+   {
+      after14 = "SuperClass,long";
+   }
+   
+   public void after14(@Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+   {
+      after14 = "OverloadedAdvicePOJOCaller,int";
+   }
+   
+   public void after14(@Caller OverloadedAdvicePOJOCaller caller)
+   {
+      after14 = "OverloadedAdvicePOJOCaller";
+   }
+   
+   public void after14(@Return long returnedValue, @Arg int arg)
+   {
+      after14 = "long,int";
+   }
+   
+   /* AFTER15 ADVICE */
+   
+   public void after15(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Caller OverloadedAdvicePOJOCaller caller)
+   {
+      after15 = "MethodByMethodInfo,OverloadedAdvicePOJOCaller";
+   }
+   
+   public void after15(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Return long valueReturned, @Arg int arg)
+   {
+      after15 = "MethodByMethodInfo,long,int";
+   }
+   
+   public void after15(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Return long valueReturned, @Args Object[] args)
+   {
+      after15 = "MethodByMethodInfo,long,Object[]";
+   }
+   
+   public void after15(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Return long valueReturned)
+   {
+      after15 = "MethodByMethodInfo,long";
+   }
+   
+   public void after15(@JoinPoint MethodByMethodInfo joinPointInfo, @Arg int arg)
+   {
+      after15 = "MethodByMethodInfo,int";
+   }
+   
+   public void after15(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Args Object[] args)
+   {
+      after15 = "MethodByMethodInfo,Object[]";
+   }
+   
+   public void after15(@JoinPoint MethodByMethodInfo joinPointInfo)
+   {
+      after15 = "MethodByMethodInfo";
+   }
+   
+   public void after15(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Return long valueReturned,
+         @Arg int arg)
+   {
+      after15="OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,long,int";
+   }
+   
+   public void after15(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Return long valueReturned,
+         @Arg int arg)
+   {
+      after15="OverloadedAdvicePOJO,SuperClass,long,int";
+   }
+   
+   public void after15(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Return long valueReturned,
+         @Arg int arg)
+   {
+      after15="Object,OverloadedAdvicePOJOCaller,long,int";
+   }
+   
+   public void after15(@Target Object target, @Caller SuperClass caller,
+         @Return long valueReturned, @Arg int arg)
+   {
+      after15="Object,SuperClass,long,int";
+   }
+   
+   public void after15(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Return long valueReturned,
+         @Args Object[] args)
+   {
+      after15="OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,long,Object[]";
+   }
+   
+   public void after15(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Return long valueReturned,
+         @Args Object[] args)
+   {
+      after15="OverloadedAdvicePOJO,SuperClass,long,Object[]";
+   }
+   
+   public void after15(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Return long valueReturned,
+         @Args Object[] args)
+   {
+      after15="Object,OverloadedAdvicePOJOCaller,long,Object[]";
+   }
+   
+   public void after15(@Target Object target, @Caller SuperClass caller,
+         @Return long valueReturned, @Args Object[] args)
+   {
+      after15="Object,SuperClass,long,Object[]";
+   }
+   
+   public void after15(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Return long valueReturned)
+   {
+      after15="OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,long";
+   }
+   
+   public void after15(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Return long valueReturned)
+   {
+      after15="OverloadedAdvicePOJO,SuperClass,long";
+   }
+   
+   public void after15(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Return long valueReturned)
+   {
+      after15="Object,OverloadedAdvicePOJOCaller,long";
+   }
+   
+   public void after15(@Target Object target, @Caller SuperClass caller,
+         @Return long valueReturned)
+   {
+      after15="Object,SuperClass,long";
+   }
+   
+   public void after15(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+   {
+      after15="OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,int";
+   }
+   
+   public void after15(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Args Object[] args)
+   {
+      after15="OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,Object[]";
+   }
+   
+   public void after15(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller)
+   {
+      after15="OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller";
+   }
+   
+   public void after15(@Target OverloadedAdvicePOJO target,
+         @Return long returnedValue, @Arg int arg)
+   {
+      after15="OverloadedAdvicePOJO,long,int";
+   }
+   
+   public void after15(@Target Object target, @Return long returnedValue,
+         @Arg int arg)
+   {
+      after15="Object,long,int";
+   }
+   
+   public void after15(@Target OverloadedAdvicePOJO target,
+         @Return long returnedValue, @Args Object[] args)
+   {
+      after15="OverloadedAdvicePOJO,long,Object[]";
+   }
+   
+   public void after15(@Target Object target, @Return long returnedValue,
+         @Args Object[] args)
+   {
+      after15="Object,long,Object[]";
+   }
+   
+   public void after15(@Target OverloadedAdvicePOJO target,
+         @Return long returnedValue)
+   {
+      after15="OverloadedAdvicePOJO,long";
+   }
+   
+   public void after15(@Target Object target, @Return long returnedValue)
+   {
+      after15="Object,long";
+   }
+   
+   public void after15(@Target OverloadedAdvicePOJO target, @Arg int arg)
+   {
+      after15="OverloadedAdvicePOJO,int";
+   }
+   
+   public void after15(@Target OverloadedAdvicePOJO target, @Args Object[] args)
+   {
+      after15="OverloadedAdvicePOJO,Object[]";
+   }
+   
+   public void after15(@Target OverloadedAdvicePOJO target)
+   {
+      after15="OverloadedAdvicePOJO";
+   }
+   
+   public void after15(@Caller OverloadedAdvicePOJOCaller caller,
+         @Return long returnedValue, @Arg int arg)
+   {
+      after15="OverloadedAdvicePOJOCaller,long,int";
+   }
+   
+   public void after15(@Caller SuperClass caller, @Return long returnedValue,
+         @Arg int arg)
+   {
+      after15 = "SuperClass,long,int";
+   }
+   
+   public void after15(@Caller OverloadedAdvicePOJOCaller caller,
+         @Return long returnedValue, @Args Object[] args)
+   {
+      after15 = "OverloadedAdvicePOJOCaller,long,Object[]";
+   }
+   
+   public void after15(@Caller SuperClass caller, @Return long returnedValue,
+         @Args Object[] args)
+   {
+      after15 = "SuperClass,long,Object[]";
+   }
+   
+   public void after15(@Caller OverloadedAdvicePOJOCaller caller,
+         @Return long returnedValue)
+   {
+      after15 = "OverloadedAdvicePOJOCaller,long";
+   }
+   
+   public void after15(@Caller SuperClass caller, @Return long returnedValue)
+   {
+      after15 = "SuperClass,long";
+   }
+   
+   public void after15(@Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+   {
+      after15 = "OverloadedAdvicePOJOCaller,int";
+   }
+   
+   public void after15(@Caller OverloadedAdvicePOJOCaller caller)
+   {
+      after15 = "OverloadedAdvicePOJOCaller";
+   }
+   
+   public void after15(@Return long returnedValue, @Arg int arg)
+   {
+      after15 = "long,int";
+   }
+   
+   /* AFTER16 ADVICE */
+   
+   public void after16(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Return long valueReturned, @Arg int arg)
+   {
+      after16 = "MethodByMethodInfo,long,int";
+   }
+   
+   public void after16(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Return long valueReturned, @Args Object[] args)
+   {
+      after16 = "MethodByMethodInfo,long,Object[]";
+   }
+   
+   public void after16(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Return long valueReturned)
+   {
+      after16 = "MethodByMethodInfo,long";
+   }
+   
+   public void after16(@JoinPoint MethodByMethodInfo joinPointInfo, @Arg int arg)
+   {
+      after16 = "MethodByMethodInfo,int";
+   }
+   
+   public void after16(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Args Object[] args)
+   {
+      after16 = "MethodByMethodInfo,Object[]";
+   }
+   
+   public void after16(@JoinPoint MethodByMethodInfo joinPointInfo)
+   {
+      after16 = "MethodByMethodInfo";
+   }
+   
+   public void after16(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Return long valueReturned,
+         @Arg int arg)
+   {
+      after16="OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,long,int";
+   }
+   
+   public void after16(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Return long valueReturned,
+         @Arg int arg)
+   {
+      after16="OverloadedAdvicePOJO,SuperClass,long,int";
+   }
+   
+   public void after16(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Return long valueReturned,
+         @Arg int arg)
+   {
+      after16="Object,OverloadedAdvicePOJOCaller,long,int";
+   }
+   
+   public void after16(@Target Object target, @Caller SuperClass caller,
+         @Return long valueReturned, @Arg int arg)
+   {
+      after16="Object,SuperClass,long,int";
+   }
+   
+   public void after16(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Return long valueReturned,
+         @Args Object[] args)
+   {
+      after16="OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,long,Object[]";
+   }
+   
+   public void after16(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Return long valueReturned,
+         @Args Object[] args)
+   {
+      after16="OverloadedAdvicePOJO,SuperClass,long,Object[]";
+   }
+   
+   public void after16(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Return long valueReturned,
+         @Args Object[] args)
+   {
+      after16="Object,OverloadedAdvicePOJOCaller,long,Object[]";
+   }
+   
+   public void after16(@Target Object target, @Caller SuperClass caller,
+         @Return long valueReturned, @Args Object[] args)
+   {
+      after16="Object,SuperClass,long,Object[]";
+   }
+   
+   public void after16(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Return long valueReturned)
+   {
+      after16="OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,long";
+   }
+   
+   public void after16(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Return long valueReturned)
+   {
+      after16="OverloadedAdvicePOJO,SuperClass,long";
+   }
+   
+   public void after16(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Return long valueReturned)
+   {
+      after16="Object,OverloadedAdvicePOJOCaller,long";
+   }
+   
+   public void after16(@Target Object target, @Caller SuperClass caller,
+         @Return long valueReturned)
+   {
+      after16="Object,SuperClass,long";
+   }
+   
+   public void after16(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+   {
+      after16="OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,int";
+   }
+   
+   public void after16(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Args Object[] args)
+   {
+      after16="OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,Object[]";
+   }
+   
+   public void after16(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller)
+   {
+      after16="OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller";
+   }
+   
+   public void after16(@Target OverloadedAdvicePOJO target,
+         @Return long returnedValue, @Arg int arg)
+   {
+      after16="OverloadedAdvicePOJO,long,int";
+   }
+   
+   public void after16(@Target Object target, @Return long returnedValue,
+         @Arg int arg)
+   {
+      after16="Object,long,int";
+   }
+   
+   public void after16(@Target OverloadedAdvicePOJO target,
+         @Return long returnedValue, @Args Object[] args)
+   {
+      after16="OverloadedAdvicePOJO,long,Object[]";
+   }
+   
+   public void after16(@Target Object target, @Return long returnedValue,
+         @Args Object[] args)
+   {
+      after16="Object,long,Object[]";
+   }
+   
+   public void after16(@Target OverloadedAdvicePOJO target,
+         @Return long returnedValue)
+   {
+      after16="OverloadedAdvicePOJO,long";
+   }
+   
+   public void after16(@Target Object target, @Return long returnedValue)
+   {
+      after16="Object,long";
+   }
+   
+   public void after16(@Target OverloadedAdvicePOJO target, @Arg int arg)
+   {
+      after16="OverloadedAdvicePOJO,int";
+   }
+   
+   public void after16(@Target OverloadedAdvicePOJO target, @Args Object[] args)
+   {
+      after16="OverloadedAdvicePOJO,Object[]";
+   }
+   
+   public void after16(@Target OverloadedAdvicePOJO target)
+   {
+      after16="OverloadedAdvicePOJO";
+   }
+   
+   public void after16(@Caller OverloadedAdvicePOJOCaller caller,
+         @Return long returnedValue, @Arg int arg)
+   {
+      after16="OverloadedAdvicePOJOCaller,long,int";
+   }
+   
+   public void after16(@Caller SuperClass caller, @Return long returnedValue,
+         @Arg int arg)
+   {
+      after16 = "SuperClass,long,int";
+   }
+   
+   public void after16(@Caller OverloadedAdvicePOJOCaller caller,
+         @Return long returnedValue, @Args Object[] args)
+   {
+      after16 = "OverloadedAdvicePOJOCaller,long,Object[]";
+   }
+   
+   public void after16(@Caller SuperClass caller, @Return long returnedValue,
+         @Args Object[] args)
+   {
+      after16 = "SuperClass,long,Object[]";
+   }
+   
+   public void after16(@Caller OverloadedAdvicePOJOCaller caller,
+         @Return long returnedValue)
+   {
+      after16 = "OverloadedAdvicePOJOCaller,long";
+   }
+   
+   public void after16(@Caller SuperClass caller, @Return long returnedValue)
+   {
+      after16 = "SuperClass,long";
+   }
+   
+   public void after16(@Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+   {
+      after16 = "OverloadedAdvicePOJOCaller,int";
+   }
+   
+   public void after16(@Caller OverloadedAdvicePOJOCaller caller)
+   {
+      after16 = "OverloadedAdvicePOJOCaller";
+   }
+   
+   public void after16(@Return long returnedValue, @Arg int arg)
+   {
+      after16 = "long,int";
+   }
+   
+   /* AFTER17 ADVICE */
+   
+   public void after17(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Return long valueReturned, @Args Object[] args)
+   {
+      after17 = "MethodByMethodInfo,long,Object[]";
+   }
+   
+   public void after17(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Return long valueReturned)
+   {
+      after17 = "MethodByMethodInfo,long";
+   }
+   
+   public void after17(@JoinPoint MethodByMethodInfo joinPointInfo, @Arg int arg)
+   {
+      after17 = "MethodByMethodInfo,int";
+   }
+   
+   public void after17(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Args Object[] args)
+   {
+      after17 = "MethodByMethodInfo,Object[]";
+   }
+   
+   public void after17(@JoinPoint MethodByMethodInfo joinPointInfo)
+   {
+      after17 = "MethodByMethodInfo";
+   }
+   
+   public void after17(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Return long valueReturned,
+         @Arg int arg)
+   {
+      after17="OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,long,int";
+   }
+   
+   public void after17(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Return long valueReturned,
+         @Arg int arg)
+   {
+      after17="OverloadedAdvicePOJO,SuperClass,long,int";
+   }
+   
+   public void after17(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Return long valueReturned,
+         @Arg int arg)
+   {
+      after17="Object,OverloadedAdvicePOJOCaller,long,int";
+   }
+   
+   public void after17(@Target Object target, @Caller SuperClass caller,
+         @Return long valueReturned, @Arg int arg)
+   {
+      after17="Object,SuperClass,long,int";
+   }
+   
+   public void after17(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Return long valueReturned,
+         @Args Object[] args)
+   {
+      after17="OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,long,Object[]";
+   }
+   
+   public void after17(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Return long valueReturned,
+         @Args Object[] args)
+   {
+      after17="OverloadedAdvicePOJO,SuperClass,long,Object[]";
+   }
+   
+   public void after17(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Return long valueReturned,
+         @Args Object[] args)
+   {
+      after17="Object,OverloadedAdvicePOJOCaller,long,Object[]";
+   }
+   
+   public void after17(@Target Object target, @Caller SuperClass caller,
+         @Return long valueReturned, @Args Object[] args)
+   {
+      after17="Object,SuperClass,long,Object[]";
+   }
+   
+   public void after17(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Return long valueReturned)
+   {
+      after17="OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,long";
+   }
+   
+   public void after17(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Return long valueReturned)
+   {
+      after17="OverloadedAdvicePOJO,SuperClass,long";
+   }
+   
+   public void after17(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Return long valueReturned)
+   {
+      after17="Object,OverloadedAdvicePOJOCaller,long";
+   }
+   
+   public void after17(@Target Object target, @Caller SuperClass caller,
+         @Return long valueReturned)
+   {
+      after17="Object,SuperClass,long";
+   }
+   
+   public void after17(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+   {
+      after17="OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,int";
+   }
+   
+   public void after17(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Args Object[] args)
+   {
+      after17="OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,Object[]";
+   }
+   
+   public void after17(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller)
+   {
+      after17="OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller";
+   }
+   
+   public void after17(@Target OverloadedAdvicePOJO target,
+         @Return long returnedValue, @Arg int arg)
+   {
+      after17="OverloadedAdvicePOJO,long,int";
+   }
+   
+   public void after17(@Target Object target, @Return long returnedValue,
+         @Arg int arg)
+   {
+      after17="Object,long,int";
+   }
+   
+   public void after17(@Target OverloadedAdvicePOJO target,
+         @Return long returnedValue, @Args Object[] args)
+   {
+      after17="OverloadedAdvicePOJO,long,Object[]";
+   }
+   
+   public void after17(@Target Object target, @Return long returnedValue,
+         @Args Object[] args)
+   {
+      after17="Object,long,Object[]";
+   }
+   
+   public void after17(@Target OverloadedAdvicePOJO target,
+         @Return long returnedValue)
+   {
+      after17="OverloadedAdvicePOJO,long";
+   }
+   
+   public void after17(@Target Object target, @Return long returnedValue)
+   {
+      after17="Object,long";
+   }
+   
+   public void after17(@Target OverloadedAdvicePOJO target, @Arg int arg)
+   {
+      after17="OverloadedAdvicePOJO,int";
+   }
+   
+   public void after17(@Target OverloadedAdvicePOJO target, @Args Object[] args)
+   {
+      after17="OverloadedAdvicePOJO,Object[]";
+   }
+   
+   public void after17(@Target OverloadedAdvicePOJO target)
+   {
+      after17="OverloadedAdvicePOJO";
+   }
+   
+   public void after17(@Caller OverloadedAdvicePOJOCaller caller,
+         @Return long returnedValue, @Arg int arg)
+   {
+      after17="OverloadedAdvicePOJOCaller,long,int";
+   }
+   
+   public void after17(@Caller SuperClass caller, @Return long returnedValue,
+         @Arg int arg)
+   {
+      after17 = "SuperClass,long,int";
+   }
+   
+   public void after17(@Caller OverloadedAdvicePOJOCaller caller,
+         @Return long returnedValue, @Args Object[] args)
+   {
+      after17 = "OverloadedAdvicePOJOCaller,long,Object[]";
+   }
+   
+   public void after17(@Caller SuperClass caller, @Return long returnedValue,
+         @Args Object[] args)
+   {
+      after17 = "SuperClass,long,Object[]";
+   }
+   
+   public void after17(@Caller OverloadedAdvicePOJOCaller caller,
+         @Return long returnedValue)
+   {
+      after17 = "OverloadedAdvicePOJOCaller,long";
+   }
+   
+   public void after17(@Caller SuperClass caller, @Return long returnedValue)
+   {
+      after17 = "SuperClass,long";
+   }
+   
+   public void after17(@Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+   {
+      after17 = "OverloadedAdvicePOJOCaller,int";
+   }
+   
+   public void after17(@Caller OverloadedAdvicePOJOCaller caller)
+   {
+      after17 = "OverloadedAdvicePOJOCaller";
+   }
+   
+   public void after17(@Return long returnedValue, @Arg int arg)
+   {
+      after17 = "long,int";
+   }
+   
+   /* AFTER18 ADVICE */
+   
+   public void after18(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Return long valueReturned)
+   {
+      after18 = "MethodByMethodInfo,long";
+   }
+   
+   public void after18(@JoinPoint MethodByMethodInfo joinPointInfo, @Arg int arg)
+   {
+      after18 = "MethodByMethodInfo,int";
+   }
+   
+   public void after18(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Args Object[] args)
+   {
+      after18 = "MethodByMethodInfo,Object[]";
+   }
+   
+   public void after18(@JoinPoint MethodByMethodInfo joinPointInfo)
+   {
+      after18 = "MethodByMethodInfo";
+   }
+   
+   public void after18(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Return long valueReturned,
+         @Arg int arg)
+   {
+      after18="OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,long,int";
+   }
+   
+   public void after18(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Return long valueReturned,
+         @Arg int arg)
+   {
+      after18="OverloadedAdvicePOJO,SuperClass,long,int";
+   }
+   
+   public void after18(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Return long valueReturned,
+         @Arg int arg)
+   {
+      after18="Object,OverloadedAdvicePOJOCaller,long,int";
+   }
+   
+   public void after18(@Target Object target, @Caller SuperClass caller,
+         @Return long valueReturned, @Arg int arg)
+   {
+      after18="Object,SuperClass,long,int";
+   }
+   
+   public void after18(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Return long valueReturned,
+         @Args Object[] args)
+   {
+      after18="OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,long,Object[]";
+   }
+   
+   public void after18(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Return long valueReturned,
+         @Args Object[] args)
+   {
+      after18="OverloadedAdvicePOJO,SuperClass,long,Object[]";
+   }
+   
+   public void after18(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Return long valueReturned,
+         @Args Object[] args)
+   {
+      after18="Object,OverloadedAdvicePOJOCaller,long,Object[]";
+   }
+   
+   public void after18(@Target Object target, @Caller SuperClass caller,
+         @Return long valueReturned, @Args Object[] args)
+   {
+      after18="Object,SuperClass,long,Object[]";
+   }
+   
+   public void after18(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Return long valueReturned)
+   {
+      after18="OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,long";
+   }
+   
+   public void after18(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Return long valueReturned)
+   {
+      after18="OverloadedAdvicePOJO,SuperClass,long";
+   }
+   
+   public void after18(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Return long valueReturned)
+   {
+      after18="Object,OverloadedAdvicePOJOCaller,long";
+   }
+   
+   public void after18(@Target Object target, @Caller SuperClass caller,
+         @Return long valueReturned)
+   {
+      after18="Object,SuperClass,long";
+   }
+   
+   public void after18(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+   {
+      after18="OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,int";
+   }
+   
+   public void after18(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Args Object[] args)
+   {
+      after18="OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,Object[]";
+   }
+   
+   public void after18(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller)
+   {
+      after18="OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller";
+   }
+   
+   public void after18(@Target OverloadedAdvicePOJO target,
+         @Return long returnedValue, @Arg int arg)
+   {
+      after18="OverloadedAdvicePOJO,long,int";
+   }
+   
+   public void after18(@Target Object target, @Return long returnedValue,
+         @Arg int arg)
+   {
+      after18="Object,long,int";
+   }
+   
+   public void after18(@Target OverloadedAdvicePOJO target,
+         @Return long returnedValue, @Args Object[] args)
+   {
+      after18="OverloadedAdvicePOJO,long,Object[]";
+   }
+   
+   public void after18(@Target Object target, @Return long returnedValue,
+         @Args Object[] args)
+   {
+      after18="Object,long,Object[]";
+   }
+   
+   public void after18(@Target OverloadedAdvicePOJO target,
+         @Return long returnedValue)
+   {
+      after18="OverloadedAdvicePOJO,long";
+   }
+   
+   public void after18(@Target Object target, @Return long returnedValue)
+   {
+      after18="Object,long";
+   }
+   
+   public void after18(@Target OverloadedAdvicePOJO target, @Arg int arg)
+   {
+      after18="OverloadedAdvicePOJO,int";
+   }
+   
+   public void after18(@Target OverloadedAdvicePOJO target, @Args Object[] args)
+   {
+      after18="OverloadedAdvicePOJO,Object[]";
+   }
+   
+   public void after18(@Target OverloadedAdvicePOJO target)
+   {
+      after18="OverloadedAdvicePOJO";
+   }
+   
+   public void after18(@Caller OverloadedAdvicePOJOCaller caller,
+         @Return long returnedValue, @Arg int arg)
+   {
+      after18="OverloadedAdvicePOJOCaller,long,int";
+   }
+   
+   public void after18(@Caller SuperClass caller, @Return long returnedValue,
+         @Arg int arg)
+   {
+      after18 = "SuperClass,long,int";
+   }
+   
+   public void after18(@Caller OverloadedAdvicePOJOCaller caller,
+         @Return long returnedValue, @Args Object[] args)
+   {
+      after18 = "OverloadedAdvicePOJOCaller,long,Object[]";
+   }
+   
+   public void after18(@Caller SuperClass caller, @Return long returnedValue,
+         @Args Object[] args)
+   {
+      after18 = "SuperClass,long,Object[]";
+   }
+   
+   public void after18(@Caller OverloadedAdvicePOJOCaller caller,
+         @Return long returnedValue)
+   {
+      after18 = "OverloadedAdvicePOJOCaller,long";
+   }
+   
+   public void after18(@Caller SuperClass caller, @Return long returnedValue)
+   {
+      after18 = "SuperClass,long";
+   }
+   
+   public void after18(@Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+   {
+      after18 = "OverloadedAdvicePOJOCaller,int";
+   }
+   
+   public void after18(@Caller OverloadedAdvicePOJOCaller caller)
+   {
+      after18 = "OverloadedAdvicePOJOCaller";
+   }
+   
+   public void after18(@Return long returnedValue, @Arg int arg)
+   {
+      after18 = "long,int";
+   }
+   
+   /* AFTER19 ADVICE */
+   
+   public void after19(@JoinPoint MethodByMethodInfo joinPointInfo, @Arg int arg)
+   {
+      after19 = "MethodByMethodInfo,int";
+   }
+   
+   public void after19(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Args Object[] args)
+   {
+      after19 = "MethodByMethodInfo,Object[]";
+   }
+   
+   public void after19(@JoinPoint MethodByMethodInfo joinPointInfo)
+   {
+      after19 = "MethodByMethodInfo";
+   }
+   
+   public void after19(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Return long valueReturned,
+         @Arg int arg)
+   {
+      after19="OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,long,int";
+   }
+   
+   public void after19(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Return long valueReturned,
+         @Arg int arg)
+   {
+      after19="OverloadedAdvicePOJO,SuperClass,long,int";
+   }
+   
+   public void after19(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Return long valueReturned,
+         @Arg int arg)
+   {
+      after19="Object,OverloadedAdvicePOJOCaller,long,int";
+   }
+   
+   public void after19(@Target Object target, @Caller SuperClass caller,
+         @Return long valueReturned, @Arg int arg)
+   {
+      after19="Object,SuperClass,long,int";
+   }
+   
+   public void after19(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Return long valueReturned,
+         @Args Object[] args)
+   {
+      after19="OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,long,Object[]";
+   }
+   
+   public void after19(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Return long valueReturned,
+         @Args Object[] args)
+   {
+      after19="OverloadedAdvicePOJO,SuperClass,long,Object[]";
+   }
+   
+   public void after19(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Return long valueReturned,
+         @Args Object[] args)
+   {
+      after19="Object,OverloadedAdvicePOJOCaller,long,Object[]";
+   }
+   
+   public void after19(@Target Object target, @Caller SuperClass caller,
+         @Return long valueReturned, @Args Object[] args)
+   {
+      after19="Object,SuperClass,long,Object[]";
+   }
+   
+   public void after19(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Return long valueReturned)
+   {
+      after19="OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,long";
+   }
+   
+   public void after19(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Return long valueReturned)
+   {
+      after19="OverloadedAdvicePOJO,SuperClass,long";
+   }
+   
+   public void after19(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Return long valueReturned)
+   {
+      after19="Object,OverloadedAdvicePOJOCaller,long";
+   }
+   
+   public void after19(@Target Object target, @Caller SuperClass caller,
+         @Return long valueReturned)
+   {
+      after19="Object,SuperClass,long";
+   }
+   
+   public void after19(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+   {
+      after19="OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,int";
+   }
+   
+   public void after19(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Args Object[] args)
+   {
+      after19="OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,Object[]";
+   }
+   
+   public void after19(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller)
+   {
+      after19="OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller";
+   }
+   
+   public void after19(@Target OverloadedAdvicePOJO target,
+         @Return long returnedValue, @Arg int arg)
+   {
+      after19="OverloadedAdvicePOJO,long,int";
+   }
+   
+   public void after19(@Target Object target, @Return long returnedValue,
+         @Arg int arg)
+   {
+      after19="Object,long,int";
+   }
+   
+   public void after19(@Target OverloadedAdvicePOJO target,
+         @Return long returnedValue, @Args Object[] args)
+   {
+      after19="OverloadedAdvicePOJO,long,Object[]";
+   }
+   
+   public void after19(@Target Object target, @Return long returnedValue,
+         @Args Object[] args)
+   {
+      after19="Object,long,Object[]";
+   }
+   
+   public void after19(@Target OverloadedAdvicePOJO target,
+         @Return long returnedValue)
+   {
+      after19="OverloadedAdvicePOJO,long";
+   }
+   
+   public void after19(@Target Object target, @Return long returnedValue)
+   {
+      after19="Object,long";
+   }
+   
+   public void after19(@Target OverloadedAdvicePOJO target, @Arg int arg)
+   {
+      after19="OverloadedAdvicePOJO,int";
+   }
+   
+   public void after19(@Target OverloadedAdvicePOJO target, @Args Object[] args)
+   {
+      after19="OverloadedAdvicePOJO,Object[]";
+   }
+   
+   public void after19(@Target OverloadedAdvicePOJO target)
+   {
+      after19="OverloadedAdvicePOJO";
+   }
+   
+   public void after19(@Caller OverloadedAdvicePOJOCaller caller,
+         @Return long returnedValue, @Arg int arg)
+   {
+      after19="OverloadedAdvicePOJOCaller,long,int";
+   }
+   
+   public void after19(@Caller SuperClass caller, @Return long returnedValue,
+         @Arg int arg)
+   {
+      after19 = "SuperClass,long,int";
+   }
+   
+   public void after19(@Caller OverloadedAdvicePOJOCaller caller,
+         @Return long returnedValue, @Args Object[] args)
+   {
+      after19 = "OverloadedAdvicePOJOCaller,long,Object[]";
+   }
+   
+   public void after19(@Caller SuperClass caller, @Return long returnedValue,
+         @Args Object[] args)
+   {
+      after19 = "SuperClass,long,Object[]";
+   }
+   
+   public void after19(@Caller OverloadedAdvicePOJOCaller caller,
+         @Return long returnedValue)
+   {
+      after19 = "OverloadedAdvicePOJOCaller,long";
+   }
+   
+   public void after19(@Caller SuperClass caller, @Return long returnedValue)
+   {
+      after19 = "SuperClass,long";
+   }
+   
+   public void after19(@Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+   {
+      after19 = "OverloadedAdvicePOJOCaller,int";
+   }
+   
+   public void after19(@Caller OverloadedAdvicePOJOCaller caller)
+   {
+      after19 = "OverloadedAdvicePOJOCaller";
+   }
+   
+   public void after19(@Return long returnedValue, @Arg int arg)
+   {
+      after19 = "long,int";
+   }
+   
+   /* AFTER20 ADVICE */
+   
+   public void after20(@JoinPoint MethodByMethodInfo joinPointInfo)
+   {
+      after20 = "MethodByMethodInfo";
+   }
+   
+   public void after20(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Return long valueReturned,
+         @Arg int arg)
+   {
+      after20="OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,long,int";
+   }
+   
+   public void after20(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Return long valueReturned,
+         @Arg int arg)
+   {
+      after20="OverloadedAdvicePOJO,SuperClass,long,int";
+   }
+   
+   public void after20(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Return long valueReturned,
+         @Arg int arg)
+   {
+      after20="Object,OverloadedAdvicePOJOCaller,long,int";
+   }
+   
+   public void after20(@Target Object target, @Caller SuperClass caller,
+         @Return long valueReturned, @Arg int arg)
+   {
+      after20="Object,SuperClass,long,int";
+   }
+   
+   public void after20(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Return long valueReturned,
+         @Args Object[] args)
+   {
+      after20="OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,long,Object[]";
+   }
+   
+   public void after20(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Return long valueReturned,
+         @Args Object[] args)
+   {
+      after20="OverloadedAdvicePOJO,SuperClass,long,Object[]";
+   }
+   
+   public void after20(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Return long valueReturned,
+         @Args Object[] args)
+   {
+      after20="Object,OverloadedAdvicePOJOCaller,long,Object[]";
+   }
+   
+   public void after20(@Target Object target, @Caller SuperClass caller,
+         @Return long valueReturned, @Args Object[] args)
+   {
+      after20="Object,SuperClass,long,Object[]";
+   }
+   
+   public void after20(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Return long valueReturned)
+   {
+      after20="OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,long";
+   }
+   
+   public void after20(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Return long valueReturned)
+   {
+      after20="OverloadedAdvicePOJO,SuperClass,long";
+   }
+   
+   public void after20(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Return long valueReturned)
+   {
+      after20="Object,OverloadedAdvicePOJOCaller,long";
+   }
+   
+   public void after20(@Target Object target, @Caller SuperClass caller,
+         @Return long valueReturned)
+   {
+      after20="Object,SuperClass,long";
+   }
+   
+   public void after20(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+   {
+      after20="OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,int";
+   }
+   
+   public void after20(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Args Object[] args)
+   {
+      after20="OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,Object[]";
+   }
+   
+   public void after20(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller)
+   {
+      after20="OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller";
+   }
+   
+   public void after20(@Target OverloadedAdvicePOJO target,
+         @Return long returnedValue, @Arg int arg)
+   {
+      after20="OverloadedAdvicePOJO,long,int";
+   }
+   
+   public void after20(@Target Object target, @Return long returnedValue,
+         @Arg int arg)
+   {
+      after20="Object,long,int";
+   }
+   
+   public void after20(@Target OverloadedAdvicePOJO target,
+         @Return long returnedValue, @Args Object[] args)
+   {
+      after20="OverloadedAdvicePOJO,long,Object[]";
+   }
+   
+   public void after20(@Target Object target, @Return long returnedValue,
+         @Args Object[] args)
+   {
+      after20="Object,long,Object[]";
+   }
+   
+   public void after20(@Target OverloadedAdvicePOJO target,
+         @Return long returnedValue)
+   {
+      after20="OverloadedAdvicePOJO,long";
+   }
+   
+   public void after20(@Target Object target, @Return long returnedValue)
+   {
+      after20="Object,long";
+   }
+   
+   public void after20(@Target OverloadedAdvicePOJO target, @Arg int arg)
+   {
+      after20="OverloadedAdvicePOJO,int";
+   }
+   
+   public void after20(@Target OverloadedAdvicePOJO target, @Args Object[] args)
+   {
+      after20="OverloadedAdvicePOJO,Object[]";
+   }
+   
+   public void after20(@Target OverloadedAdvicePOJO target)
+   {
+      after20="OverloadedAdvicePOJO";
+   }
+   
+   public void after20(@Caller OverloadedAdvicePOJOCaller caller,
+         @Return long returnedValue, @Arg int arg)
+   {
+      after20="OverloadedAdvicePOJOCaller,long,int";
+   }
+   
+   public void after20(@Caller SuperClass caller, @Return long returnedValue,
+         @Arg int arg)
+   {
+      after20 = "SuperClass,long,int";
+   }
+   
+   public void after20(@Caller OverloadedAdvicePOJOCaller caller,
+         @Return long returnedValue, @Args Object[] args)
+   {
+      after20 = "OverloadedAdvicePOJOCaller,long,Object[]";
+   }
+   
+   public void after20(@Caller SuperClass caller, @Return long returnedValue,
+         @Args Object[] args)
+   {
+      after20 = "SuperClass,long,Object[]";
+   }
+   
+   public void after20(@Caller OverloadedAdvicePOJOCaller caller,
+         @Return long returnedValue)
+   {
+      after20 = "OverloadedAdvicePOJOCaller,long";
+   }
+   
+   public void after20(@Caller SuperClass caller, @Return long returnedValue)
+   {
+      after20 = "SuperClass,long";
+   }
+   
+   public void after20(@Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+   {
+      after20 = "OverloadedAdvicePOJOCaller,int";
+   }
+   
+   public void after20(@Caller OverloadedAdvicePOJOCaller caller)
+   {
+      after20 = "OverloadedAdvicePOJOCaller";
+   }
+   
+   public void after20(@Return long returnedValue, @Arg int arg)
+   {
+      after20 = "long,int";
+   }
+   
+   /* AFTER21 ADVICE */
+   
+   public void after21(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Return long valueReturned,
+         @Arg int arg)
+   {
+      after21="OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,long,int";
+   }
+   
+   public void after21(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Return long valueReturned,
+         @Arg int arg)
+   {
+      after21="OverloadedAdvicePOJO,SuperClass,long,int";
+   }
+   
+   public void after21(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Return long valueReturned,
+         @Arg int arg)
+   {
+      after21="Object,OverloadedAdvicePOJOCaller,long,int";
+   }
+   
+   public void after21(@Target Object target, @Caller SuperClass caller,
+         @Return long valueReturned, @Arg int arg)
+   {
+      after21="Object,SuperClass,long,int";
+   }
+   
+   public void after21(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Return long valueReturned,
+         @Args Object[] args)
+   {
+      after21="OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,long,Object[]";
+   }
+   
+   public void after21(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Return long valueReturned,
+         @Args Object[] args)
+   {
+      after21="OverloadedAdvicePOJO,SuperClass,long,Object[]";
+   }
+   
+   public void after21(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Return long valueReturned,
+         @Args Object[] args)
+   {
+      after21="Object,OverloadedAdvicePOJOCaller,long,Object[]";
+   }
+   
+   public void after21(@Target Object target, @Caller SuperClass caller,
+         @Return long valueReturned, @Args Object[] args)
+   {
+      after21="Object,SuperClass,long,Object[]";
+   }
+   
+   public void after21(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Return long valueReturned)
+   {
+      after21="OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,long";
+   }
+   
+   public void after21(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Return long valueReturned)
+   {
+      after21="OverloadedAdvicePOJO,SuperClass,long";
+   }
+   
+   public void after21(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Return long valueReturned)
+   {
+      after21="Object,OverloadedAdvicePOJOCaller,long";
+   }
+   
+   public void after21(@Target Object target, @Caller SuperClass caller,
+         @Return long valueReturned)
+   {
+      after21="Object,SuperClass,long";
+   }
+   
+   public void after21(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+   {
+      after21="OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,int";
+   }
+   
+   public void after21(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Args Object[] args)
+   {
+      after21="OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,Object[]";
+   }
+   
+   public void after21(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller)
+   {
+      after21="OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller";
+   }
+   
+   public void after21(@Target OverloadedAdvicePOJO target,
+         @Return long returnedValue, @Arg int arg)
+   {
+      after21="OverloadedAdvicePOJO,long,int";
+   }
+   
+   public void after21(@Target Object target, @Return long returnedValue,
+         @Arg int arg)
+   {
+      after21="Object,long,int";
+   }
+   
+   public void after21(@Target OverloadedAdvicePOJO target,
+         @Return long returnedValue, @Args Object[] args)
+   {
+      after21="OverloadedAdvicePOJO,long,Object[]";
+   }
+   
+   public void after21(@Target Object target, @Return long returnedValue,
+         @Args Object[] args)
+   {
+      after21="Object,long,Object[]";
+   }
+   
+   public void after21(@Target OverloadedAdvicePOJO target,
+         @Return long returnedValue)
+   {
+      after21="OverloadedAdvicePOJO,long";
+   }
+   
+   public void after21(@Target Object target, @Return long returnedValue)
+   {
+      after21="Object,long";
+   }
+   
+   public void after21(@Target OverloadedAdvicePOJO target, @Arg int arg)
+   {
+      after21="OverloadedAdvicePOJO,int";
+   }
+   
+   public void after21(@Target OverloadedAdvicePOJO target, @Args Object[] args)
+   {
+      after21="OverloadedAdvicePOJO,Object[]";
+   }
+   
+   public void after21(@Target OverloadedAdvicePOJO target)
+   {
+      after21="OverloadedAdvicePOJO";
+   }
+   
+   public void after21(@Caller OverloadedAdvicePOJOCaller caller,
+         @Return long returnedValue, @Arg int arg)
+   {
+      after21="OverloadedAdvicePOJOCaller,long,int";
+   }
+   
+   public void after21(@Caller SuperClass caller, @Return long returnedValue,
+         @Arg int arg)
+   {
+      after21 = "SuperClass,long,int";
+   }
+   
+   public void after21(@Caller OverloadedAdvicePOJOCaller caller,
+         @Return long returnedValue, @Args Object[] args)
+   {
+      after21 = "OverloadedAdvicePOJOCaller,long,Object[]";
+   }
+   
+   public void after21(@Caller SuperClass caller, @Return long returnedValue,
+         @Args Object[] args)
+   {
+      after21 = "SuperClass,long,Object[]";
+   }
+   
+   public void after21(@Caller OverloadedAdvicePOJOCaller caller,
+         @Return long returnedValue)
+   {
+      after21 = "OverloadedAdvicePOJOCaller,long";
+   }
+   
+   public void after21(@Caller SuperClass caller, @Return long returnedValue)
+   {
+      after21 = "SuperClass,long";
+   }
+   
+   public void after21(@Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+   {
+      after21 = "OverloadedAdvicePOJOCaller,int";
+   }
+   
+   public void after21(@Caller OverloadedAdvicePOJOCaller caller)
+   {
+      after21 = "OverloadedAdvicePOJOCaller";
+   }
+   
+   public void after21(@Return long returnedValue, @Arg int arg)
+   {
+      after21 = "long,int";
+   }
+   
+   /* AFTER22 ADVICE */
+   
+   public void after22(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Return long valueReturned,
+         @Arg int arg)
+   {
+      after22="OverloadedAdvicePOJO,SuperClass,long,int";
+   }
+   
+   public void after22(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Return long valueReturned,
+         @Arg int arg)
+   {
+      after22="Object,OverloadedAdvicePOJOCaller,long,int";
+   }
+   
+   public void after22(@Target Object target, @Caller SuperClass caller,
+         @Return long valueReturned, @Arg int arg)
+   {
+      after22="Object,SuperClass,long,int";
+   }
+   
+   public void after22(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Return long valueReturned,
+         @Args Object[] args)
+   {
+      after22="OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,long,Object[]";
+   }
+   
+   public void after22(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Return long valueReturned,
+         @Args Object[] args)
+   {
+      after22="OverloadedAdvicePOJO,SuperClass,long,Object[]";
+   }
+   
+   public void after22(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Return long valueReturned,
+         @Args Object[] args)
+   {
+      after22="Object,OverloadedAdvicePOJOCaller,long,Object[]";
+   }
+   
+   public void after22(@Target Object target, @Caller SuperClass caller,
+         @Return long valueReturned, @Args Object[] args)
+   {
+      after22="Object,SuperClass,long,Object[]";
+   }
+   
+   public void after22(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Return long valueReturned)
+   {
+      after22="OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,long";
+   }
+   
+   public void after22(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Return long valueReturned)
+   {
+      after22="OverloadedAdvicePOJO,SuperClass,long";
+   }
+   
+   public void after22(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Return long valueReturned)
+   {
+      after22="Object,OverloadedAdvicePOJOCaller,long";
+   }
+   
+   public void after22(@Target Object target, @Caller SuperClass caller,
+         @Return long valueReturned)
+   {
+      after22="Object,SuperClass,long";
+   }
+   
+   public void after22(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+   {
+      after22="OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,int";
+   }
+   
+   public void after22(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Args Object[] args)
+   {
+      after22="OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,Object[]";
+   }
+   
+   public void after22(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller)
+   {
+      after22="OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller";
+   }
+   
+   public void after22(@Target OverloadedAdvicePOJO target,
+         @Return long returnedValue, @Arg int arg)
+   {
+      after22="OverloadedAdvicePOJO,long,int";
+   }
+   
+   public void after22(@Target Object target, @Return long returnedValue,
+         @Arg int arg)
+   {
+      after22="Object,long,int";
+   }
+   
+   public void after22(@Target OverloadedAdvicePOJO target,
+         @Return long returnedValue, @Args Object[] args)
+   {
+      after22="OverloadedAdvicePOJO,long,Object[]";
+   }
+   
+   public void after22(@Target Object target, @Return long returnedValue,
+         @Args Object[] args)
+   {
+      after22="Object,long,Object[]";
+   }
+   
+   public void after22(@Target OverloadedAdvicePOJO target,
+         @Return long returnedValue)
+   {
+      after22="OverloadedAdvicePOJO,long";
+   }
+   
+   public void after22(@Target Object target, @Return long returnedValue)
+   {
+      after22="Object,long";
+   }
+   
+   public void after22(@Target OverloadedAdvicePOJO target, @Arg int arg)
+   {
+      after22="OverloadedAdvicePOJO,int";
+   }
+   
+   public void after22(@Target OverloadedAdvicePOJO target, @Args Object[] args)
+   {
+      after22="OverloadedAdvicePOJO,Object[]";
+   }
+   
+   public void after22(@Target OverloadedAdvicePOJO target)
+   {
+      after22="OverloadedAdvicePOJO";
+   }
+   
+   public void after22(@Caller OverloadedAdvicePOJOCaller caller,
+         @Return long returnedValue, @Arg int arg)
+   {
+      after22="OverloadedAdvicePOJOCaller,long,int";
+   }
+   
+   public void after22(@Caller SuperClass caller, @Return long returnedValue,
+         @Arg int arg)
+   {
+      after22 = "SuperClass,long,int";
+   }
+   
+   public void after22(@Caller OverloadedAdvicePOJOCaller caller,
+         @Return long returnedValue, @Args Object[] args)
+   {
+      after22 = "OverloadedAdvicePOJOCaller,long,Object[]";
+   }
+   
+   public void after22(@Caller SuperClass caller, @Return long returnedValue,
+         @Args Object[] args)
+   {
+      after22 = "SuperClass,long,Object[]";
+   }
+   
+   public void after22(@Caller OverloadedAdvicePOJOCaller caller,
+         @Return long returnedValue)
+   {
+      after22 = "OverloadedAdvicePOJOCaller,long";
+   }
+   
+   public void after22(@Caller SuperClass caller, @Return long returnedValue)
+   {
+      after22 = "SuperClass,long";
+   }
+   
+   public void after22(@Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+   {
+      after22 = "OverloadedAdvicePOJOCaller,int";
+   }
+   
+   public void after22(@Caller OverloadedAdvicePOJOCaller caller)
+   {
+      after22 = "OverloadedAdvicePOJOCaller";
+   }
+   
+   public void after22(@Return long returnedValue, @Arg int arg)
+   {
+      after22 = "long,int";
+   }
+   
+   /* AFTER23 ADVICE */
+   
+   public void after23(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Return long valueReturned,
+         @Arg int arg)
+   {
+      after23="Object,OverloadedAdvicePOJOCaller,long,int";
+   }
+   
+   public void after23(@Target Object target, @Caller SuperClass caller,
+         @Return long valueReturned, @Arg int arg)
+   {
+      after23="Object,SuperClass,long,int";
+   }
+   
+   public void after23(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Return long valueReturned,
+         @Args Object[] args)
+   {
+      after23="OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,long,Object[]";
+   }
+   
+   public void after23(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Return long valueReturned,
+         @Args Object[] args)
+   {
+      after23="OverloadedAdvicePOJO,SuperClass,long,Object[]";
+   }
+   
+   public void after23(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Return long valueReturned,
+         @Args Object[] args)
+   {
+      after23="Object,OverloadedAdvicePOJOCaller,long,Object[]";
+   }
+   
+   public void after23(@Target Object target, @Caller SuperClass caller,
+         @Return long valueReturned, @Args Object[] args)
+   {
+      after23="Object,SuperClass,long,Object[]";
+   }
+   
+   public void after23(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Return long valueReturned)
+   {
+      after23="OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,long";
+   }
+   
+   public void after23(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Return long valueReturned)
+   {
+      after23="OverloadedAdvicePOJO,SuperClass,long";
+   }
+   
+   public void after23(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Return long valueReturned)
+   {
+      after23="Object,OverloadedAdvicePOJOCaller,long";
+   }
+   
+   public void after23(@Target Object target, @Caller SuperClass caller,
+         @Return long valueReturned)
+   {
+      after23="Object,SuperClass,long";
+   }
+   
+   public void after23(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+   {
+      after23="OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,int";
+   }
+   
+   public void after23(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Args Object[] args)
+   {
+      after23="OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,Object[]";
+   }
+   
+   public void after23(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller)
+   {
+      after23="OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller";
+   }
+   
+   public void after23(@Target OverloadedAdvicePOJO target,
+         @Return long returnedValue, @Arg int arg)
+   {
+      after23="OverloadedAdvicePOJO,long,int";
+   }
+   
+   public void after23(@Target Object target, @Return long returnedValue,
+         @Arg int arg)
+   {
+      after23="Object,long,int";
+   }
+   
+   public void after23(@Target OverloadedAdvicePOJO target,
+         @Return long returnedValue, @Args Object[] args)
+   {
+      after23="OverloadedAdvicePOJO,long,Object[]";
+   }
+   
+   public void after23(@Target Object target, @Return long returnedValue,
+         @Args Object[] args)
+   {
+      after23="Object,long,Object[]";
+   }
+   
+   public void after23(@Target OverloadedAdvicePOJO target,
+         @Return long returnedValue)
+   {
+      after23="OverloadedAdvicePOJO,long";
+   }
+   
+   public void after23(@Target Object target, @Return long returnedValue)
+   {
+      after23="Object,long";
+   }
+   
+   public void after23(@Target OverloadedAdvicePOJO target, @Arg int arg)
+   {
+      after23="OverloadedAdvicePOJO,int";
+   }
+   
+   public void after23(@Target OverloadedAdvicePOJO target, @Args Object[] args)
+   {
+      after23="OverloadedAdvicePOJO,Object[]";
+   }
+   
+   public void after23(@Target OverloadedAdvicePOJO target)
+   {
+      after23="OverloadedAdvicePOJO";
+   }
+   
+   public void after23(@Caller OverloadedAdvicePOJOCaller caller,
+         @Return long returnedValue, @Arg int arg)
+   {
+      after23="OverloadedAdvicePOJOCaller,long,int";
+   }
+   
+   public void after23(@Caller SuperClass caller, @Return long returnedValue,
+         @Arg int arg)
+   {
+      after23 = "SuperClass,long,int";
+   }
+   
+   public void after23(@Caller OverloadedAdvicePOJOCaller caller,
+         @Return long returnedValue, @Args Object[] args)
+   {
+      after23 = "OverloadedAdvicePOJOCaller,long,Object[]";
+   }
+   
+   public void after23(@Caller SuperClass caller, @Return long returnedValue,
+         @Args Object[] args)
+   {
+      after23 = "SuperClass,long,Object[]";
+   }
+   
+   public void after23(@Caller OverloadedAdvicePOJOCaller caller,
+         @Return long returnedValue)
+   {
+      after23 = "OverloadedAdvicePOJOCaller,long";
+   }
+   
+   public void after23(@Caller SuperClass caller, @Return long returnedValue)
+   {
+      after23 = "SuperClass,long";
+   }
+   
+   public void after23(@Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+   {
+      after23 = "OverloadedAdvicePOJOCaller,int";
+   }
+   
+   public void after23(@Caller OverloadedAdvicePOJOCaller caller)
+   {
+      after23 = "OverloadedAdvicePOJOCaller";
+   }
+   
+   public void after23(@Return long returnedValue, @Arg int arg)
+   {
+      after23 = "long,int";
+   }
+   
+   /* AFTER24 ADVICE */
+   
+   public void after24(@Target Object target, @Caller SuperClass caller,
+         @Return long valueReturned, @Arg int arg)
+   {
+      after24="Object,SuperClass,long,int";
+   }
+   
+   public void after24(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Return long valueReturned,
+         @Args Object[] args)
+   {
+      after24="OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,long,Object[]";
+   }
+   
+   public void after24(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Return long valueReturned,
+         @Args Object[] args)
+   {
+      after24="OverloadedAdvicePOJO,SuperClass,long,Object[]";
+   }
+   
+   public void after24(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Return long valueReturned,
+         @Args Object[] args)
+   {
+      after24="Object,OverloadedAdvicePOJOCaller,long,Object[]";
+   }
+   
+   public void after24(@Target Object target, @Caller SuperClass caller,
+         @Return long valueReturned, @Args Object[] args)
+   {
+      after24="Object,SuperClass,long,Object[]";
+   }
+   
+   public void after24(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Return long valueReturned)
+   {
+      after24="OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,long";
+   }
+   
+   public void after24(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Return long valueReturned)
+   {
+      after24="OverloadedAdvicePOJO,SuperClass,long";
+   }
+   
+   public void after24(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Return long valueReturned)
+   {
+      after24="Object,OverloadedAdvicePOJOCaller,long";
+   }
+   
+   public void after24(@Target Object target, @Caller SuperClass caller,
+         @Return long valueReturned)
+   {
+      after24="Object,SuperClass,long";
+   }
+   
+   public void after24(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+   {
+      after24="OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,int";
+   }
+   
+   public void after24(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Args Object[] args)
+   {
+      after24="OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,Object[]";
+   }
+   
+   public void after24(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller)
+   {
+      after24="OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller";
+   }
+   
+   public void after24(@Target OverloadedAdvicePOJO target,
+         @Return long returnedValue, @Arg int arg)
+   {
+      after24="OverloadedAdvicePOJO,long,int";
+   }
+   
+   public void after24(@Target Object target, @Return long returnedValue,
+         @Arg int arg)
+   {
+      after24="Object,long,int";
+   }
+   
+   public void after24(@Target OverloadedAdvicePOJO target,
+         @Return long returnedValue, @Args Object[] args)
+   {
+      after24="OverloadedAdvicePOJO,long,Object[]";
+   }
+   
+   public void after24(@Target Object target, @Return long returnedValue,
+         @Args Object[] args)
+   {
+      after24="Object,long,Object[]";
+   }
+   
+   public void after24(@Target OverloadedAdvicePOJO target,
+         @Return long returnedValue)
+   {
+      after24="OverloadedAdvicePOJO,long";
+   }
+   
+   public void after24(@Target Object target, @Return long returnedValue)
+   {
+      after24="Object,long";
+   }
+   
+   public void after24(@Target OverloadedAdvicePOJO target, @Arg int arg)
+   {
+      after24="OverloadedAdvicePOJO,int";
+   }
+   
+   public void after24(@Target OverloadedAdvicePOJO target, @Args Object[] args)
+   {
+      after24="OverloadedAdvicePOJO,Object[]";
+   }
+   
+   public void after24(@Target OverloadedAdvicePOJO target)
+   {
+      after24="OverloadedAdvicePOJO";
+   }
+   
+   public void after24(@Caller OverloadedAdvicePOJOCaller caller,
+         @Return long returnedValue, @Arg int arg)
+   {
+      after24="OverloadedAdvicePOJOCaller,long,int";
+   }
+   
+   public void after24(@Caller SuperClass caller, @Return long returnedValue,
+         @Arg int arg)
+   {
+      after24 = "SuperClass,long,int";
+   }
+   
+   public void after24(@Caller OverloadedAdvicePOJOCaller caller,
+         @Return long returnedValue, @Args Object[] args)
+   {
+      after24 = "OverloadedAdvicePOJOCaller,long,Object[]";
+   }
+   
+   public void after24(@Caller SuperClass caller, @Return long returnedValue,
+         @Args Object[] args)
+   {
+      after24 = "SuperClass,long,Object[]";
+   }
+   
+   public void after24(@Caller OverloadedAdvicePOJOCaller caller,
+         @Return long returnedValue)
+   {
+      after24 = "OverloadedAdvicePOJOCaller,long";
+   }
+   
+   public void after24(@Caller SuperClass caller, @Return long returnedValue)
+   {
+      after24 = "SuperClass,long";
+   }
+   
+   public void after24(@Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+   {
+      after24 = "OverloadedAdvicePOJOCaller,int";
+   }
+   
+   public void after24(@Caller OverloadedAdvicePOJOCaller caller)
+   {
+      after24 = "OverloadedAdvicePOJOCaller";
+   }
+   
+   public void after24(@Return long returnedValue, @Arg int arg)
+   {
+      after24 = "long,int";
+   }
+   
+   /* AFTER25 ADVICE */
+   
+   public void after25(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Return long valueReturned,
+         @Args Object[] args)
+   {
+      after25="OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,long,Object[]";
+   }
+   
+   public void after25(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Return long valueReturned,
+         @Args Object[] args)
+   {
+      after25="OverloadedAdvicePOJO,SuperClass,long,Object[]";
+   }
+   
+   public void after25(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Return long valueReturned,
+         @Args Object[] args)
+   {
+      after25="Object,OverloadedAdvicePOJOCaller,long,Object[]";
+   }
+   
+   public void after25(@Target Object target, @Caller SuperClass caller,
+         @Return long valueReturned, @Args Object[] args)
+   {
+      after25="Object,SuperClass,long,Object[]";
+   }
+   
+   public void after25(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Return long valueReturned)
+   {
+      after25="OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,long";
+   }
+   
+   public void after25(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Return long valueReturned)
+   {
+      after25="OverloadedAdvicePOJO,SuperClass,long";
+   }
+   
+   public void after25(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Return long valueReturned)
+   {
+      after25="Object,OverloadedAdvicePOJOCaller,long";
+   }
+   
+   public void after25(@Target Object target, @Caller SuperClass caller,
+         @Return long valueReturned)
+   {
+      after25="Object,SuperClass,long";
+   }
+   
+   public void after25(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+   {
+      after25="OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,int";
+   }
+   
+   public void after25(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Args Object[] args)
+   {
+      after25="OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,Object[]";
+   }
+   
+   public void after25(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller)
+   {
+      after25="OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller";
+   }
+   
+   public void after25(@Target OverloadedAdvicePOJO target,
+         @Return long returnedValue, @Arg int arg)
+   {
+      after25="OverloadedAdvicePOJO,long,int";
+   }
+   
+   public void after25(@Target Object target, @Return long returnedValue,
+         @Arg int arg)
+   {
+      after25="Object,long,int";
+   }
+   
+   public void after25(@Target OverloadedAdvicePOJO target,
+         @Return long returnedValue, @Args Object[] args)
+   {
+      after25="OverloadedAdvicePOJO,long,Object[]";
+   }
+   
+   public void after25(@Target Object target, @Return long returnedValue,
+         @Args Object[] args)
+   {
+      after25="Object,long,Object[]";
+   }
+   
+   public void after25(@Target OverloadedAdvicePOJO target,
+         @Return long returnedValue)
+   {
+      after25="OverloadedAdvicePOJO,long";
+   }
+   
+   public void after25(@Target Object target, @Return long returnedValue)
+   {
+      after25="Object,long";
+   }
+   
+   public void after25(@Target OverloadedAdvicePOJO target, @Arg int arg)
+   {
+      after25="OverloadedAdvicePOJO,int";
+   }
+   
+   public void after25(@Target OverloadedAdvicePOJO target, @Args Object[] args)
+   {
+      after25="OverloadedAdvicePOJO,Object[]";
+   }
+   
+   public void after25(@Target OverloadedAdvicePOJO target)
+   {
+      after25="OverloadedAdvicePOJO";
+   }
+   
+   public void after25(@Caller OverloadedAdvicePOJOCaller caller,
+         @Return long returnedValue, @Arg int arg)
+   {
+      after25="OverloadedAdvicePOJOCaller,long,int";
+   }
+   
+   public void after25(@Caller SuperClass caller, @Return long returnedValue,
+         @Arg int arg)
+   {
+      after25 = "SuperClass,long,int";
+   }
+   
+   public void after25(@Caller OverloadedAdvicePOJOCaller caller,
+         @Return long returnedValue, @Args Object[] args)
+   {
+      after25 = "OverloadedAdvicePOJOCaller,long,Object[]";
+   }
+   
+   public void after25(@Caller SuperClass caller, @Return long returnedValue,
+         @Args Object[] args)
+   {
+      after25 = "SuperClass,long,Object[]";
+   }
+   
+   public void after25(@Caller OverloadedAdvicePOJOCaller caller,
+         @Return long returnedValue)
+   {
+      after25 = "OverloadedAdvicePOJOCaller,long";
+   }
+   
+   public void after25(@Caller SuperClass caller, @Return long returnedValue)
+   {
+      after25 = "SuperClass,long";
+   }
+   
+   public void after25(@Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+   {
+      after25 = "OverloadedAdvicePOJOCaller,int";
+   }
+   
+   public void after25(@Caller OverloadedAdvicePOJOCaller caller)
+   {
+      after25 = "OverloadedAdvicePOJOCaller";
+   }
+   
+   public void after25(@Return long returnedValue, @Arg int arg)
+   {
+      after25 = "long,int";
+   }
+   
+   /* AFTER26 ADVICE */
+   
+   public void after26(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Return long valueReturned,
+         @Args Object[] args)
+   {
+      after26="OverloadedAdvicePOJO,SuperClass,long,Object[]";
+   }
+   
+   public void after26(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Return long valueReturned,
+         @Args Object[] args)
+   {
+      after26="Object,OverloadedAdvicePOJOCaller,long,Object[]";
+   }
+   
+   public void after26(@Target Object target, @Caller SuperClass caller,
+         @Return long valueReturned, @Args Object[] args)
+   {
+      after26="Object,SuperClass,long,Object[]";
+   }
+   
+   public void after26(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Return long valueReturned)
+   {
+      after26="OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,long";
+   }
+   
+   public void after26(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Return long valueReturned)
+   {
+      after26="OverloadedAdvicePOJO,SuperClass,long";
+   }
+   
+   public void after26(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Return long valueReturned)
+   {
+      after26="Object,OverloadedAdvicePOJOCaller,long";
+   }
+   
+   public void after26(@Target Object target, @Caller SuperClass caller,
+         @Return long valueReturned)
+   {
+      after26="Object,SuperClass,long";
+   }
+   
+   public void after26(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+   {
+      after26="OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,int";
+   }
+   
+   public void after26(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Args Object[] args)
+   {
+      after26="OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,Object[]";
+   }
+   
+   public void after26(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller)
+   {
+      after26="OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller";
+   }
+   
+   public void after26(@Target OverloadedAdvicePOJO target,
+         @Return long returnedValue, @Arg int arg)
+   {
+      after26="OverloadedAdvicePOJO,long,int";
+   }
+   
+   public void after26(@Target Object target, @Return long returnedValue,
+         @Arg int arg)
+   {
+      after26="Object,long,int";
+   }
+   
+   public void after26(@Target OverloadedAdvicePOJO target,
+         @Return long returnedValue, @Args Object[] args)
+   {
+      after26="OverloadedAdvicePOJO,long,Object[]";
+   }
+   
+   public void after26(@Target Object target, @Return long returnedValue,
+         @Args Object[] args)
+   {
+      after26="Object,long,Object[]";
+   }
+   
+   public void after26(@Target OverloadedAdvicePOJO target,
+         @Return long returnedValue)
+   {
+      after26="OverloadedAdvicePOJO,long";
+   }
+   
+   public void after26(@Target Object target, @Return long returnedValue)
+   {
+      after26="Object,long";
+   }
+   
+   public void after26(@Target OverloadedAdvicePOJO target, @Arg int arg)
+   {
+      after26="OverloadedAdvicePOJO,int";
+   }
+   
+   public void after26(@Target OverloadedAdvicePOJO target, @Args Object[] args)
+   {
+      after26="OverloadedAdvicePOJO,Object[]";
+   }
+   
+   public void after26(@Target OverloadedAdvicePOJO target)
+   {
+      after26="OverloadedAdvicePOJO";
+   }
+   
+   public void after26(@Caller OverloadedAdvicePOJOCaller caller,
+         @Return long returnedValue, @Arg int arg)
+   {
+      after26="OverloadedAdvicePOJOCaller,long,int";
+   }
+   
+   public void after26(@Caller SuperClass caller, @Return long returnedValue,
+         @Arg int arg)
+   {
+      after26 = "SuperClass,long,int";
+   }
+   
+   public void after26(@Caller OverloadedAdvicePOJOCaller caller,
+         @Return long returnedValue, @Args Object[] args)
+   {
+      after26 = "OverloadedAdvicePOJOCaller,long,Object[]";
+   }
+   
+   public void after26(@Caller SuperClass caller, @Return long returnedValue,
+         @Args Object[] args)
+   {
+      after26 = "SuperClass,long,Object[]";
+   }
+   
+   public void after26(@Caller OverloadedAdvicePOJOCaller caller,
+         @Return long returnedValue)
+   {
+      after26 = "OverloadedAdvicePOJOCaller,long";
+   }
+   
+   public void after26(@Caller SuperClass caller, @Return long returnedValue)
+   {
+      after26 = "SuperClass,long";
+   }
+   
+   public void after26(@Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+   {
+      after26 = "OverloadedAdvicePOJOCaller,int";
+   }
+   
+   public void after26(@Caller OverloadedAdvicePOJOCaller caller)
+   {
+      after26 = "OverloadedAdvicePOJOCaller";
+   }
+   
+   public void after26(@Return long returnedValue, @Arg int arg)
+   {
+      after26 = "long,int";
+   }
+   
+   /* AFTER27 ADVICE */
+   
+   public void after27(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Return long valueReturned,
+         @Args Object[] args)
+   {
+      after27="Object,OverloadedAdvicePOJOCaller,long,Object[]";
+   }
+   
+   public void after27(@Target Object target, @Caller SuperClass caller,
+         @Return long valueReturned, @Args Object[] args)
+   {
+      after27="Object,SuperClass,long,Object[]";
+   }
+   
+   public void after27(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Return long valueReturned)
+   {
+      after27="OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,long";
+   }
+   
+   public void after27(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Return long valueReturned)
+   {
+      after27="OverloadedAdvicePOJO,SuperClass,long";
+   }
+   
+   public void after27(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Return long valueReturned)
+   {
+      after27="Object,OverloadedAdvicePOJOCaller,long";
+   }
+   
+   public void after27(@Target Object target, @Caller SuperClass caller,
+         @Return long valueReturned)
+   {
+      after27="Object,SuperClass,long";
+   }
+   
+   public void after27(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+   {
+      after27="OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,int";
+   }
+   
+   public void after27(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Args Object[] args)
+   {
+      after27="OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,Object[]";
+   }
+   
+   public void after27(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller)
+   {
+      after27="OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller";
+   }
+   
+   public void after27(@Target OverloadedAdvicePOJO target,
+         @Return long returnedValue, @Arg int arg)
+   {
+      after27="OverloadedAdvicePOJO,long,int";
+   }
+   
+   public void after27(@Target Object target, @Return long returnedValue,
+         @Arg int arg)
+   {
+      after27="Object,long,int";
+   }
+   
+   public void after27(@Target OverloadedAdvicePOJO target,
+         @Return long returnedValue, @Args Object[] args)
+   {
+      after27="OverloadedAdvicePOJO,long,Object[]";
+   }
+   
+   public void after27(@Target Object target, @Return long returnedValue,
+         @Args Object[] args)
+   {
+      after27="Object,long,Object[]";
+   }
+   
+   public void after27(@Target OverloadedAdvicePOJO target,
+         @Return long returnedValue)
+   {
+      after27="OverloadedAdvicePOJO,long";
+   }
+   
+   public void after27(@Target Object target, @Return long returnedValue)
+   {
+      after27="Object,long";
+   }
+   
+   public void after27(@Target OverloadedAdvicePOJO target, @Arg int arg)
+   {
+      after27="OverloadedAdvicePOJO,int";
+   }
+   
+   public void after27(@Target OverloadedAdvicePOJO target, @Args Object[] args)
+   {
+      after27="OverloadedAdvicePOJO,Object[]";
+   }
+   
+   public void after27(@Target OverloadedAdvicePOJO target)
+   {
+      after27="OverloadedAdvicePOJO";
+   }
+   
+   public void after27(@Caller OverloadedAdvicePOJOCaller caller,
+         @Return long returnedValue, @Arg int arg)
+   {
+      after27="OverloadedAdvicePOJOCaller,long,int";
+   }
+   
+   public void after27(@Caller SuperClass caller, @Return long returnedValue,
+         @Arg int arg)
+   {
+      after27 = "SuperClass,long,int";
+   }
+   
+   public void after27(@Caller OverloadedAdvicePOJOCaller caller,
+         @Return long returnedValue, @Args Object[] args)
+   {
+      after27 = "OverloadedAdvicePOJOCaller,long,Object[]";
+   }
+   
+   public void after27(@Caller SuperClass caller, @Return long returnedValue,
+         @Args Object[] args)
+   {
+      after27 = "SuperClass,long,Object[]";
+   }
+   
+   public void after27(@Caller OverloadedAdvicePOJOCaller caller,
+         @Return long returnedValue)
+   {
+      after27 = "OverloadedAdvicePOJOCaller,long";
+   }
+   
+   public void after27(@Caller SuperClass caller, @Return long returnedValue)
+   {
+      after27 = "SuperClass,long";
+   }
+   
+   public void after27(@Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+   {
+      after27 = "OverloadedAdvicePOJOCaller,int";
+   }
+   
+   public void after27(@Caller OverloadedAdvicePOJOCaller caller)
+   {
+      after27 = "OverloadedAdvicePOJOCaller";
+   }
+   
+   public void after27(@Return long returnedValue, @Arg int arg)
+   {
+      after27 = "long,int";
+   }
+   
+   /* AFTER28 ADVICE */
+   
+   public void after28(@Target Object target, @Caller SuperClass caller,
+         @Return long valueReturned, @Args Object[] args)
+   {
+      after28="Object,SuperClass,long,Object[]";
+   }
+   
+   public void after28(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Return long valueReturned)
+   {
+      after28="OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,long";
+   }
+   
+   public void after28(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Return long valueReturned)
+   {
+      after28="OverloadedAdvicePOJO,SuperClass,long";
+   }
+   
+   public void after28(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Return long valueReturned)
+   {
+      after28="Object,OverloadedAdvicePOJOCaller,long";
+   }
+   
+   public void after28(@Target Object target, @Caller SuperClass caller,
+         @Return long valueReturned)
+   {
+      after28="Object,SuperClass,long";
+   }
+   
+   public void after28(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+   {
+      after28="OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,int";
+   }
+   
+   public void after28(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Args Object[] args)
+   {
+      after28="OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,Object[]";
+   }
+   
+   public void after28(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller)
+   {
+      after28="OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller";
+   }
+   
+   public void after28(@Target OverloadedAdvicePOJO target,
+         @Return long returnedValue, @Arg int arg)
+   {
+      after28="OverloadedAdvicePOJO,long,int";
+   }
+   
+   public void after28(@Target Object target, @Return long returnedValue,
+         @Arg int arg)
+   {
+      after28="Object,long,int";
+   }
+   
+   public void after28(@Target OverloadedAdvicePOJO target,
+         @Return long returnedValue, @Args Object[] args)
+   {
+      after28="OverloadedAdvicePOJO,long,Object[]";
+   }
+   
+   public void after28(@Target Object target, @Return long returnedValue,
+         @Args Object[] args)
+   {
+      after28="Object,long,Object[]";
+   }
+   
+   public void after28(@Target OverloadedAdvicePOJO target,
+         @Return long returnedValue)
+   {
+      after28="OverloadedAdvicePOJO,long";
+   }
+   
+   public void after28(@Target Object target, @Return long returnedValue)
+   {
+      after28="Object,long";
+   }
+   
+   public void after28(@Target OverloadedAdvicePOJO target, @Arg int arg)
+   {
+      after28="OverloadedAdvicePOJO,int";
+   }
+   
+   public void after28(@Target OverloadedAdvicePOJO target, @Args Object[] args)
+   {
+      after28="OverloadedAdvicePOJO,Object[]";
+   }
+   
+   public void after28(@Target OverloadedAdvicePOJO target)
+   {
+      after28="OverloadedAdvicePOJO";
+   }
+   
+   public void after28(@Caller OverloadedAdvicePOJOCaller caller,
+         @Return long returnedValue, @Arg int arg)
+   {
+      after28="OverloadedAdvicePOJOCaller,long,int";
+   }
+   
+   public void after28(@Caller SuperClass caller, @Return long returnedValue,
+         @Arg int arg)
+   {
+      after28 = "SuperClass,long,int";
+   }
+   
+   public void after28(@Caller OverloadedAdvicePOJOCaller caller,
+         @Return long returnedValue, @Args Object[] args)
+   {
+      after28 = "OverloadedAdvicePOJOCaller,long,Object[]";
+   }
+   
+   public void after28(@Caller SuperClass caller, @Return long returnedValue,
+         @Args Object[] args)
+   {
+      after28 = "SuperClass,long,Object[]";
+   }
+   
+   public void after28(@Caller OverloadedAdvicePOJOCaller caller,
+         @Return long returnedValue)
+   {
+      after28 = "OverloadedAdvicePOJOCaller,long";
+   }
+   
+   public void after28(@Caller SuperClass caller, @Return long returnedValue)
+   {
+      after28 = "SuperClass,long";
+   }
+   
+   public void after28(@Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+   {
+      after28 = "OverloadedAdvicePOJOCaller,int";
+   }
+   
+   public void after28(@Caller OverloadedAdvicePOJOCaller caller)
+   {
+      after28 = "OverloadedAdvicePOJOCaller";
+   }
+   
+   public void after28(@Return long returnedValue, @Arg int arg)
+   {
+      after28 = "long,int";
+   }
+   
+   /* AFTER29 ADVICE */
+   
+   public void after29(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Return long valueReturned)
+   {
+      after29="OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,long";
+   }
+   
+   public void after29(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Return long valueReturned)
+   {
+      after29="OverloadedAdvicePOJO,SuperClass,long";
+   }
+   
+   public void after29(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Return long valueReturned)
+   {
+      after29="Object,OverloadedAdvicePOJOCaller,long";
+   }
+   
+   public void after29(@Target Object target, @Caller SuperClass caller,
+         @Return long valueReturned)
+   {
+      after29="Object,SuperClass,long";
+   }
+   
+   public void after29(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+   {
+      after29="OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,int";
+   }
+   
+   public void after29(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Args Object[] args)
+   {
+      after29="OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,Object[]";
+   }
+   
+   public void after29(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller)
+   {
+      after29="OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller";
+   }
+   
+   public void after29(@Target OverloadedAdvicePOJO target,
+         @Return long returnedValue, @Arg int arg)
+   {
+      after29="OverloadedAdvicePOJO,long,int";
+   }
+   
+   public void after29(@Target Object target, @Return long returnedValue,
+         @Arg int arg)
+   {
+      after29="Object,long,int";
+   }
+   
+   public void after29(@Target OverloadedAdvicePOJO target,
+         @Return long returnedValue, @Args Object[] args)
+   {
+      after29="OverloadedAdvicePOJO,long,Object[]";
+   }
+   
+   public void after29(@Target Object target, @Return long returnedValue,
+         @Args Object[] args)
+   {
+      after29="Object,long,Object[]";
+   }
+   
+   public void after29(@Target OverloadedAdvicePOJO target,
+         @Return long returnedValue)
+   {
+      after29="OverloadedAdvicePOJO,long";
+   }
+   
+   public void after29(@Target Object target, @Return long returnedValue)
+   {
+      after29="Object,long";
+   }
+   
+   public void after29(@Target OverloadedAdvicePOJO target, @Arg int arg)
+   {
+      after29="OverloadedAdvicePOJO,int";
+   }
+   
+   public void after29(@Target OverloadedAdvicePOJO target, @Args Object[] args)
+   {
+      after29="OverloadedAdvicePOJO,Object[]";
+   }
+   
+   public void after29(@Target OverloadedAdvicePOJO target)
+   {
+      after29="OverloadedAdvicePOJO";
+   }
+   
+   public void after29(@Caller OverloadedAdvicePOJOCaller caller,
+         @Return long returnedValue, @Arg int arg)
+   {
+      after29="OverloadedAdvicePOJOCaller,long,int";
+   }
+   
+   public void after29(@Caller SuperClass caller, @Return long returnedValue,
+         @Arg int arg)
+   {
+      after29 = "SuperClass,long,int";
+   }
+   
+   public void after29(@Caller OverloadedAdvicePOJOCaller caller,
+         @Return long returnedValue, @Args Object[] args)
+   {
+      after29 = "OverloadedAdvicePOJOCaller,long,Object[]";
+   }
+   
+   public void after29(@Caller SuperClass caller, @Return long returnedValue,
+         @Args Object[] args)
+   {
+      after29 = "SuperClass,long,Object[]";
+   }
+   
+   public void after29(@Caller OverloadedAdvicePOJOCaller caller,
+         @Return long returnedValue)
+   {
+      after29 = "OverloadedAdvicePOJOCaller,long";
+   }
+   
+   public void after29(@Caller SuperClass caller, @Return long returnedValue)
+   {
+      after29 = "SuperClass,long";
+   }
+   
+   public void after29(@Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+   {
+      after29 = "OverloadedAdvicePOJOCaller,int";
+   }
+   
+   public void after29(@Caller OverloadedAdvicePOJOCaller caller)
+   {
+      after29 = "OverloadedAdvicePOJOCaller";
+   }
+   
+   public void after29(@Return long returnedValue, @Arg int arg)
+   {
+      after29 = "long,int";
+   }
+   
+   /* AFTER30 ADVICE */
+   
+   public void after30(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Return long valueReturned)
+   {
+      after30="OverloadedAdvicePOJO,SuperClass,long";
+   }
+   
+   public void after30(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Return long valueReturned)
+   {
+      after30="Object,OverloadedAdvicePOJOCaller,long";
+   }
+   
+   public void after30(@Target Object target, @Caller SuperClass caller,
+         @Return long valueReturned)
+   {
+      after30="Object,SuperClass,long";
+   }
+   
+   public void after30(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+   {
+      after30="OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,int";
+   }
+   
+   public void after30(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Args Object[] args)
+   {
+      after30="OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,Object[]";
+   }
+   
+   public void after30(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller)
+   {
+      after30="OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller";
+   }
+   
+   public void after30(@Target OverloadedAdvicePOJO target,
+         @Return long returnedValue, @Arg int arg)
+   {
+      after30="OverloadedAdvicePOJO,long,int";
+   }
+   
+   public void after30(@Target Object target, @Return long returnedValue,
+         @Arg int arg)
+   {
+      after30="Object,long,int";
+   }
+   
+   public void after30(@Target OverloadedAdvicePOJO target,
+         @Return long returnedValue, @Args Object[] args)
+   {
+      after30="OverloadedAdvicePOJO,long,Object[]";
+   }
+   
+   public void after30(@Target Object target, @Return long returnedValue,
+         @Args Object[] args)
+   {
+      after30="Object,long,Object[]";
+   }
+   
+   public void after30(@Target OverloadedAdvicePOJO target,
+         @Return long returnedValue)
+   {
+      after30="OverloadedAdvicePOJO,long";
+   }
+   
+   public void after30(@Target Object target, @Return long returnedValue)
+   {
+      after30="Object,long";
+   }
+   
+   public void after30(@Target OverloadedAdvicePOJO target, @Arg int arg)
+   {
+      after30="OverloadedAdvicePOJO,int";
+   }
+   
+   public void after30(@Target OverloadedAdvicePOJO target, @Args Object[] args)
+   {
+      after30="OverloadedAdvicePOJO,Object[]";
+   }
+   
+   public void after30(@Target OverloadedAdvicePOJO target)
+   {
+      after30="OverloadedAdvicePOJO";
+   }
+   
+   public void after30(@Caller OverloadedAdvicePOJOCaller caller,
+         @Return long returnedValue, @Arg int arg)
+   {
+      after30="OverloadedAdvicePOJOCaller,long,int";
+   }
+   
+   public void after30(@Caller SuperClass caller, @Return long returnedValue,
+         @Arg int arg)
+   {
+      after30 = "SuperClass,long,int";
+   }
+   
+   public void after30(@Caller OverloadedAdvicePOJOCaller caller,
+         @Return long returnedValue, @Args Object[] args)
+   {
+      after30 = "OverloadedAdvicePOJOCaller,long,Object[]";
+   }
+   
+   public void after30(@Caller SuperClass caller, @Return long returnedValue,
+         @Args Object[] args)
+   {
+      after30 = "SuperClass,long,Object[]";
+   }
+   
+   public void after30(@Caller OverloadedAdvicePOJOCaller caller,
+         @Return long returnedValue)
+   {
+      after30 = "OverloadedAdvicePOJOCaller,long";
+   }
+   
+   public void after30(@Caller SuperClass caller, @Return long returnedValue)
+   {
+      after30 = "SuperClass,long";
+   }
+   
+   public void after30(@Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+   {
+      after30 = "OverloadedAdvicePOJOCaller,int";
+   }
+   
+   public void after30(@Caller OverloadedAdvicePOJOCaller caller)
+   {
+      after30 = "OverloadedAdvicePOJOCaller";
+   }
+   
+   public void after30(@Return long returnedValue, @Arg int arg)
+   {
+      after30 = "long,int";
+   }
+   
+   /* AFTER31 ADVICE */
+   
+   public void after31(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Return long valueReturned)
+   {
+      after31="Object,OverloadedAdvicePOJOCaller,long";
+   }
+   
+   public void after31(@Target Object target, @Caller SuperClass caller,
+         @Return long valueReturned)
+   {
+      after31="Object,SuperClass,long";
+   }
+   
+   public void after31(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+   {
+      after31="OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,int";
+   }
+   
+   public void after31(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Args Object[] args)
+   {
+      after31="OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,Object[]";
+   }
+   
+   public void after31(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller)
+   {
+      after31="OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller";
+   }
+   
+   public void after31(@Target OverloadedAdvicePOJO target,
+         @Return long returnedValue, @Arg int arg)
+   {
+      after31="OverloadedAdvicePOJO,long,int";
+   }
+   
+   public void after31(@Target Object target, @Return long returnedValue,
+         @Arg int arg)
+   {
+      after31="Object,long,int";
+   }
+   
+   public void after31(@Target OverloadedAdvicePOJO target,
+         @Return long returnedValue, @Args Object[] args)
+   {
+      after31="OverloadedAdvicePOJO,long,Object[]";
+   }
+   
+   public void after31(@Target Object target, @Return long returnedValue,
+         @Args Object[] args)
+   {
+      after31="Object,long,Object[]";
+   }
+   
+   public void after31(@Target OverloadedAdvicePOJO target,
+         @Return long returnedValue)
+   {
+      after31="OverloadedAdvicePOJO,long";
+   }
+   
+   public void after31(@Target Object target, @Return long returnedValue)
+   {
+      after31="Object,long";
+   }
+   
+   public void after31(@Target OverloadedAdvicePOJO target, @Arg int arg)
+   {
+      after31="OverloadedAdvicePOJO,int";
+   }
+   
+   public void after31(@Target OverloadedAdvicePOJO target, @Args Object[] args)
+   {
+      after31="OverloadedAdvicePOJO,Object[]";
+   }
+   
+   public void after31(@Target OverloadedAdvicePOJO target)
+   {
+      after31="OverloadedAdvicePOJO";
+   }
+   
+   public void after31(@Caller OverloadedAdvicePOJOCaller caller,
+         @Return long returnedValue, @Arg int arg)
+   {
+      after31="OverloadedAdvicePOJOCaller,long,int";
+   }
+   
+   public void after31(@Caller SuperClass caller, @Return long returnedValue,
+         @Arg int arg)
+   {
+      after31 = "SuperClass,long,int";
+   }
+   
+   public void after31(@Caller OverloadedAdvicePOJOCaller caller,
+         @Return long returnedValue, @Args Object[] args)
+   {
+      after31 = "OverloadedAdvicePOJOCaller,long,Object[]";
+   }
+   
+   public void after31(@Caller SuperClass caller, @Return long returnedValue,
+         @Args Object[] args)
+   {
+      after31 = "SuperClass,long,Object[]";
+   }
+   
+   public void after31(@Caller OverloadedAdvicePOJOCaller caller,
+         @Return long returnedValue)
+   {
+      after31 = "OverloadedAdvicePOJOCaller,long";
+   }
+   
+   public void after31(@Caller SuperClass caller, @Return long returnedValue)
+   {
+      after31 = "SuperClass,long";
+   }
+   
+   public void after31(@Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+   {
+      after31 = "OverloadedAdvicePOJOCaller,int";
+   }
+   
+   public void after31(@Caller OverloadedAdvicePOJOCaller caller)
+   {
+      after31 = "OverloadedAdvicePOJOCaller";
+   }
+   
+   public void after31(@Return long returnedValue, @Arg int arg)
+   {
+      after31 = "long,int";
+   }
+   
+   /* AFTER32 ADVICE */
+   
+   public void after32(@Target Object target, @Caller SuperClass caller,
+         @Return long valueReturned)
+   {
+      after32="Object,SuperClass,long";
+   }
+   
+   public void after32(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+   {
+      after32="OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,int";
+   }
+   
+   public void after32(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Args Object[] args)
+   {
+      after32="OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,Object[]";
+   }
+   
+   public void after32(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller)
+   {
+      after32="OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller";
+   }
+   
+   public void after32(@Target OverloadedAdvicePOJO target,
+         @Return long returnedValue, @Arg int arg)
+   {
+      after32="OverloadedAdvicePOJO,long,int";
+   }
+   
+   public void after32(@Target Object target, @Return long returnedValue,
+         @Arg int arg)
+   {
+      after32="Object,long,int";
+   }
+   
+   public void after32(@Target OverloadedAdvicePOJO target,
+         @Return long returnedValue, @Args Object[] args)
+   {
+      after32="OverloadedAdvicePOJO,long,Object[]";
+   }
+   
+   public void after32(@Target Object target, @Return long returnedValue,
+         @Args Object[] args)
+   {
+      after32="Object,long,Object[]";
+   }
+   
+   public void after32(@Target OverloadedAdvicePOJO target,
+         @Return long returnedValue)
+   {
+      after32="OverloadedAdvicePOJO,long";
+   }
+   
+   public void after32(@Target Object target, @Return long returnedValue)
+   {
+      after32="Object,long";
+   }
+   
+   public void after32(@Target OverloadedAdvicePOJO target, @Arg int arg)
+   {
+      after32="OverloadedAdvicePOJO,int";
+   }
+   
+   public void after32(@Target OverloadedAdvicePOJO target, @Args Object[] args)
+   {
+      after32="OverloadedAdvicePOJO,Object[]";
+   }
+   
+   public void after32(@Target OverloadedAdvicePOJO target)
+   {
+      after32="OverloadedAdvicePOJO";
+   }
+   
+   public void after32(@Caller OverloadedAdvicePOJOCaller caller,
+         @Return long returnedValue, @Arg int arg)
+   {
+      after32="OverloadedAdvicePOJOCaller,long,int";
+   }
+   
+   public void after32(@Caller SuperClass caller, @Return long returnedValue,
+         @Arg int arg)
+   {
+      after32 = "SuperClass,long,int";
+   }
+   
+   public void after32(@Caller OverloadedAdvicePOJOCaller caller,
+         @Return long returnedValue, @Args Object[] args)
+   {
+      after32 = "OverloadedAdvicePOJOCaller,long,Object[]";
+   }
+   
+   public void after32(@Caller SuperClass caller, @Return long returnedValue,
+         @Args Object[] args)
+   {
+      after32 = "SuperClass,long,Object[]";
+   }
+   
+   public void after32(@Caller OverloadedAdvicePOJOCaller caller,
+         @Return long returnedValue)
+   {
+      after32 = "OverloadedAdvicePOJOCaller,long";
+   }
+   
+   public void after32(@Caller SuperClass caller, @Return long returnedValue)
+   {
+      after32 = "SuperClass,long";
+   }
+   
+   public void after32(@Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+   {
+      after32 = "OverloadedAdvicePOJOCaller,int";
+   }
+   
+   public void after32(@Caller OverloadedAdvicePOJOCaller caller)
+   {
+      after32 = "OverloadedAdvicePOJOCaller";
+   }
+   
+   public void after32(@Return long returnedValue, @Arg int arg)
+   {
+      after32 = "long,int";
+   }
+   
+   /* AFTER33 ADVICE */
+   
+   public void after33(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+   {
+      after33="OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,int";
+   }
+   
+   public void after33(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Args Object[] args)
+   {
+      after33="OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,Object[]";
+   }
+   
+   public void after33(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller)
+   {
+      after33="OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller";
+   }
+   
+   public void after33(@Target OverloadedAdvicePOJO target,
+         @Return long returnedValue, @Arg int arg)
+   {
+      after33="OverloadedAdvicePOJO,long,int";
+   }
+   
+   public void after33(@Target Object target, @Return long returnedValue,
+         @Arg int arg)
+   {
+      after33="Object,long,int";
+   }
+   
+   public void after33(@Target OverloadedAdvicePOJO target,
+         @Return long returnedValue, @Args Object[] args)
+   {
+      after33="OverloadedAdvicePOJO,long,Object[]";
+   }
+   
+   public void after33(@Target Object target, @Return long returnedValue,
+         @Args Object[] args)
+   {
+      after33="Object,long,Object[]";
+   }
+   
+   public void after33(@Target OverloadedAdvicePOJO target,
+         @Return long returnedValue)
+   {
+      after33="OverloadedAdvicePOJO,long";
+   }
+   
+   public void after33(@Target Object target, @Return long returnedValue)
+   {
+      after33="Object,long";
+   }
+   
+   public void after33(@Target OverloadedAdvicePOJO target, @Arg int arg)
+   {
+      after33="OverloadedAdvicePOJO,int";
+   }
+   
+   public void after33(@Target OverloadedAdvicePOJO target, @Args Object[] args)
+   {
+      after33="OverloadedAdvicePOJO,Object[]";
+   }
+   
+   public void after33(@Target OverloadedAdvicePOJO target)
+   {
+      after33="OverloadedAdvicePOJO";
+   }
+   
+   public void after33(@Caller OverloadedAdvicePOJOCaller caller,
+         @Return long returnedValue, @Arg int arg)
+   {
+      after33="OverloadedAdvicePOJOCaller,long,int";
+   }
+   
+   public void after33(@Caller SuperClass caller, @Return long returnedValue,
+         @Arg int arg)
+   {
+      after33 = "SuperClass,long,int";
+   }
+   
+   public void after33(@Caller OverloadedAdvicePOJOCaller caller,
+         @Return long returnedValue, @Args Object[] args)
+   {
+      after33 = "OverloadedAdvicePOJOCaller,long,Object[]";
+   }
+   
+   public void after33(@Caller SuperClass caller, @Return long returnedValue,
+         @Args Object[] args)
+   {
+      after33 = "SuperClass,long,Object[]";
+   }
+   
+   public void after33(@Caller OverloadedAdvicePOJOCaller caller,
+         @Return long returnedValue)
+   {
+      after33 = "OverloadedAdvicePOJOCaller,long";
+   }
+   
+   public void after33(@Caller SuperClass caller, @Return long returnedValue)
+   {
+      after33 = "SuperClass,long";
+   }
+   
+   public void after33(@Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+   {
+      after33 = "OverloadedAdvicePOJOCaller,int";
+   }
+   
+   public void after33(@Caller OverloadedAdvicePOJOCaller caller)
+   {
+      after33 = "OverloadedAdvicePOJOCaller";
+   }
+   
+   public void after33(@Return long returnedValue, @Arg int arg)
+   {
+      after33 = "long,int";
+   }
+   
+   /* AFTER34 ADVICE */
+   
+   public void after34(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller)
+   {
+      after34="OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller";
+   }
+   
+   public void after34(@Target OverloadedAdvicePOJO target,
+         @Return long returnedValue, @Arg int arg)
+   {
+      after34="OverloadedAdvicePOJO,long,int";
+   }
+   
+   public void after34(@Target Object target, @Return long returnedValue,
+         @Arg int arg)
+   {
+      after34="Object,long,int";
+   }
+   
+   public void after34(@Target OverloadedAdvicePOJO target,
+         @Return long returnedValue, @Args Object[] args)
+   {
+      after34="OverloadedAdvicePOJO,long,Object[]";
+   }
+   
+   public void after34(@Target Object target, @Return long returnedValue,
+         @Args Object[] args)
+   {
+      after34="Object,long,Object[]";
+   }
+   
+   public void after34(@Target OverloadedAdvicePOJO target,
+         @Return long returnedValue)
+   {
+      after34="OverloadedAdvicePOJO,long";
+   }
+   
+   public void after34(@Target Object target, @Return long returnedValue)
+   {
+      after34="Object,long";
+   }
+   
+   public void after34(@Target OverloadedAdvicePOJO target, @Arg int arg)
+   {
+      after34="OverloadedAdvicePOJO,int";
+   }
+   
+   public void after34(@Target OverloadedAdvicePOJO target, @Args Object[] args)
+   {
+      after34="OverloadedAdvicePOJO,Object[]";
+   }
+   
+   public void after34(@Target OverloadedAdvicePOJO target)
+   {
+      after34="OverloadedAdvicePOJO";
+   }
+   
+   public void after34(@Caller OverloadedAdvicePOJOCaller caller,
+         @Return long returnedValue, @Arg int arg)
+   {
+      after34="OverloadedAdvicePOJOCaller,long,int";
+   }
+   
+   public void after34(@Caller SuperClass caller, @Return long returnedValue,
+         @Arg int arg)
+   {
+      after34 = "SuperClass,long,int";
+   }
+   
+   public void after34(@Caller OverloadedAdvicePOJOCaller caller,
+         @Return long returnedValue, @Args Object[] args)
+   {
+      after34 = "OverloadedAdvicePOJOCaller,long,Object[]";
+   }
+   
+   public void after34(@Caller SuperClass caller, @Return long returnedValue,
+         @Args Object[] args)
+   {
+      after34 = "SuperClass,long,Object[]";
+   }
+   
+   public void after34(@Caller OverloadedAdvicePOJOCaller caller,
+         @Return long returnedValue)
+   {
+      after34 = "OverloadedAdvicePOJOCaller,long";
+   }
+   
+   public void after34(@Caller SuperClass caller, @Return long returnedValue)
+   {
+      after34 = "SuperClass,long";
+   }
+   
+   public void after34(@Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+   {
+      after34 = "OverloadedAdvicePOJOCaller,int";
+   }
+   
+   public void after34(@Caller OverloadedAdvicePOJOCaller caller)
+   {
+      after34 = "OverloadedAdvicePOJOCaller";
+   }
+   
+   public void after34(@Return long returnedValue, @Arg int arg)
+   {
+      after34 = "long,int";
+   }
+   
+   /* AFTER35 ADVICE */
+   
+   public void after35(@Target OverloadedAdvicePOJO target,
+         @Return long returnedValue, @Arg int arg)
+   {
+      after35="OverloadedAdvicePOJO,long,int";
+   }
+   
+   public void after35(@Target Object target, @Return long returnedValue,
+         @Arg int arg)
+   {
+      after35="Object,long,int";
+   }
+   
+   public void after35(@Target OverloadedAdvicePOJO target,
+         @Return long returnedValue, @Args Object[] args)
+   {
+      after35="OverloadedAdvicePOJO,long,Object[]";
+   }
+   
+   public void after35(@Target Object target, @Return long returnedValue,
+         @Args Object[] args)
+   {
+      after35="Object,long,Object[]";
+   }
+   
+   public void after35(@Target OverloadedAdvicePOJO target,
+         @Return long returnedValue)
+   {
+      after35="OverloadedAdvicePOJO,long";
+   }
+   
+   public void after35(@Target Object target, @Return long returnedValue)
+   {
+      after35="Object,long";
+   }
+   
+   public void after35(@Target OverloadedAdvicePOJO target, @Arg int arg)
+   {
+      after35="OverloadedAdvicePOJO,int";
+   }
+   
+   public void after35(@Target OverloadedAdvicePOJO target, @Args Object[] args)
+   {
+      after35="OverloadedAdvicePOJO,Object[]";
+   }
+   
+   public void after35(@Target OverloadedAdvicePOJO target)
+   {
+      after35="OverloadedAdvicePOJO";
+   }
+   
+   public void after35(@Caller OverloadedAdvicePOJOCaller caller,
+         @Return long returnedValue, @Arg int arg)
+   {
+      after35="OverloadedAdvicePOJOCaller,long,int";
+   }
+   
+   public void after35(@Caller SuperClass caller, @Return long returnedValue,
+         @Arg int arg)
+   {
+      after35 = "SuperClass,long,int";
+   }
+   
+   public void after35(@Caller OverloadedAdvicePOJOCaller caller,
+         @Return long returnedValue, @Args Object[] args)
+   {
+      after35 = "OverloadedAdvicePOJOCaller,long,Object[]";
+   }
+   
+   public void after35(@Caller SuperClass caller, @Return long returnedValue,
+         @Args Object[] args)
+   {
+      after35 = "SuperClass,long,Object[]";
+   }
+   
+   public void after35(@Caller OverloadedAdvicePOJOCaller caller,
+         @Return long returnedValue)
+   {
+      after35 = "OverloadedAdvicePOJOCaller,long";
+   }
+   
+   public void after35(@Caller SuperClass caller, @Return long returnedValue)
+   {
+      after35 = "SuperClass,long";
+   }
+   
+   public void after35(@Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+   {
+      after35 = "OverloadedAdvicePOJOCaller,int";
+   }
+   
+   public void after35(@Caller OverloadedAdvicePOJOCaller caller)
+   {
+      after35 = "OverloadedAdvicePOJOCaller";
+   }
+   
+   public void after35(@Return long returnedValue, @Arg int arg)
+   {
+      after35 = "long,int";
+   }
+   
+   /* AFTER36 ADVICE */
+   
+   public void after36(@Target Object target, @Return long returnedValue,
+         @Arg int arg)
+   {
+      after36="Object,long,int";
+   }
+   
+   public void after36(@Target OverloadedAdvicePOJO target,
+         @Return long returnedValue, @Args Object[] args)
+   {
+      after36="OverloadedAdvicePOJO,long,Object[]";
+   }
+   
+   public void after36(@Target Object target, @Return long returnedValue,
+         @Args Object[] args)
+   {
+      after36="Object,long,Object[]";
+   }
+   
+   public void after36(@Target OverloadedAdvicePOJO target,
+         @Return long returnedValue)
+   {
+      after36="OverloadedAdvicePOJO,long";
+   }
+   
+   public void after36(@Target Object target, @Return long returnedValue)
+   {
+      after36="Object,long";
+   }
+   
+   public void after36(@Target OverloadedAdvicePOJO target, @Arg int arg)
+   {
+      after36="OverloadedAdvicePOJO,int";
+   }
+   
+   public void after36(@Target OverloadedAdvicePOJO target, @Args Object[] args)
+   {
+      after36="OverloadedAdvicePOJO,Object[]";
+   }
+   
+   public void after36(@Target OverloadedAdvicePOJO target)
+   {
+      after36="OverloadedAdvicePOJO";
+   }
+   
+   public void after36(@Caller OverloadedAdvicePOJOCaller caller,
+         @Return long returnedValue, @Arg int arg)
+   {
+      after36="OverloadedAdvicePOJOCaller,long,int";
+   }
+   
+   public void after36(@Caller SuperClass caller, @Return long returnedValue,
+         @Arg int arg)
+   {
+      after36 = "SuperClass,long,int";
+   }
+   
+   public void after36(@Caller OverloadedAdvicePOJOCaller caller,
+         @Return long returnedValue, @Args Object[] args)
+   {
+      after36 = "OverloadedAdvicePOJOCaller,long,Object[]";
+   }
+   
+   public void after36(@Caller SuperClass caller, @Return long returnedValue,
+         @Args Object[] args)
+   {
+      after36 = "SuperClass,long,Object[]";
+   }
+   
+   public void after36(@Caller OverloadedAdvicePOJOCaller caller,
+         @Return long returnedValue)
+   {
+      after36 = "OverloadedAdvicePOJOCaller,long";
+   }
+   
+   public void after36(@Caller SuperClass caller, @Return long returnedValue)
+   {
+      after36 = "SuperClass,long";
+   }
+   
+   public void after36(@Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+   {
+      after36 = "OverloadedAdvicePOJOCaller,int";
+   }
+   
+   public void after36(@Caller OverloadedAdvicePOJOCaller caller)
+   {
+      after36 = "OverloadedAdvicePOJOCaller";
+   }
+   
+   public void after36(@Return long returnedValue, @Arg int arg)
+   {
+      after36 = "long,int";
+   }
+   
+   /* AFTER37 ADVICE */
+   
+   public void after37(@Target OverloadedAdvicePOJO target,
+         @Return long returnedValue, @Args Object[] args)
+   {
+      after37="OverloadedAdvicePOJO,long,Object[]";
+   }
+   
+   public void after37(@Target Object target, @Return long returnedValue,
+         @Args Object[] args)
+   {
+      after37="Object,long,Object[]";
+   }
+   
+   public void after37(@Target OverloadedAdvicePOJO target,
+         @Return long returnedValue)
+   {
+      after37="OverloadedAdvicePOJO,long";
+   }
+   
+   public void after37(@Target Object target, @Return long returnedValue)
+   {
+      after37="Object,long";
+   }
+   
+   public void after37(@Target OverloadedAdvicePOJO target, @Arg int arg)
+   {
+      after37="OverloadedAdvicePOJO,int";
+   }
+   
+   public void after37(@Target OverloadedAdvicePOJO target, @Args Object[] args)
+   {
+      after37="OverloadedAdvicePOJO,Object[]";
+   }
+   
+   public void after37(@Target OverloadedAdvicePOJO target)
+   {
+      after37="OverloadedAdvicePOJO";
+   }
+   
+   public void after37(@Caller OverloadedAdvicePOJOCaller caller,
+         @Return long returnedValue, @Arg int arg)
+   {
+      after37="OverloadedAdvicePOJOCaller,long,int";
+   }
+   
+   public void after37(@Caller SuperClass caller, @Return long returnedValue,
+         @Arg int arg)
+   {
+      after37 = "SuperClass,long,int";
+   }
+   
+   public void after37(@Caller OverloadedAdvicePOJOCaller caller,
+         @Return long returnedValue, @Args Object[] args)
+   {
+      after37 = "OverloadedAdvicePOJOCaller,long,Object[]";
+   }
+   
+   public void after37(@Caller SuperClass caller, @Return long returnedValue,
+         @Args Object[] args)
+   {
+      after37 = "SuperClass,long,Object[]";
+   }
+   
+   public void after37(@Caller OverloadedAdvicePOJOCaller caller,
+         @Return long returnedValue)
+   {
+      after37 = "OverloadedAdvicePOJOCaller,long";
+   }
+   
+   public void after37(@Caller SuperClass caller, @Return long returnedValue)
+   {
+      after37 = "SuperClass,long";
+   }
+   
+   public void after37(@Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+   {
+      after37 = "OverloadedAdvicePOJOCaller,int";
+   }
+   
+   public void after37(@Caller OverloadedAdvicePOJOCaller caller)
+   {
+      after37 = "OverloadedAdvicePOJOCaller";
+   }
+   
+   public void after37(@Return long returnedValue, @Arg int arg)
+   {
+      after37 = "long,int";
+   }
+   
+   /* AFTER38 ADVICE */
+   
+   public void after38(@Target Object target, @Return long returnedValue,
+         @Args Object[] args)
+   {
+      after38="Object,long,Object[]";
+   }
+   
+   public void after38(@Target OverloadedAdvicePOJO target,
+         @Return long returnedValue)
+   {
+      after38="OverloadedAdvicePOJO,long";
+   }
+   
+   public void after38(@Target Object target, @Return long returnedValue)
+   {
+      after38="Object,long";
+   }
+   
+   public void after38(@Target OverloadedAdvicePOJO target, @Arg int arg)
+   {
+      after38="OverloadedAdvicePOJO,int";
+   }
+   
+   public void after38(@Target OverloadedAdvicePOJO target, @Args Object[] args)
+   {
+      after38="OverloadedAdvicePOJO,Object[]";
+   }
+   
+   public void after38(@Target OverloadedAdvicePOJO target)
+   {
+      after38="OverloadedAdvicePOJO";
+   }
+   
+   public void after38(@Caller OverloadedAdvicePOJOCaller caller,
+         @Return long returnedValue, @Arg int arg)
+   {
+      after38="OverloadedAdvicePOJOCaller,long,int";
+   }
+   
+   public void after38(@Caller SuperClass caller, @Return long returnedValue,
+         @Arg int arg)
+   {
+      after38 = "SuperClass,long,int";
+   }
+   
+   public void after38(@Caller OverloadedAdvicePOJOCaller caller,
+         @Return long returnedValue, @Args Object[] args)
+   {
+      after38 = "OverloadedAdvicePOJOCaller,long,Object[]";
+   }
+   
+   public void after38(@Caller SuperClass caller, @Return long returnedValue,
+         @Args Object[] args)
+   {
+      after38 = "SuperClass,long,Object[]";
+   }
+   
+   public void after38(@Caller OverloadedAdvicePOJOCaller caller,
+         @Return long returnedValue)
+   {
+      after38 = "OverloadedAdvicePOJOCaller,long";
+   }
+   
+   public void after38(@Caller SuperClass caller, @Return long returnedValue)
+   {
+      after38 = "SuperClass,long";
+   }
+   
+   public void after38(@Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+   {
+      after38 = "OverloadedAdvicePOJOCaller,int";
+   }
+   
+   public void after38(@Caller OverloadedAdvicePOJOCaller caller)
+   {
+      after38 = "OverloadedAdvicePOJOCaller";
+   }
+   
+   public void after38(@Return long returnedValue, @Arg int arg)
+   {
+      after38 = "long,int";
+   }
+   
+   /* AFTER39 ADVICE */
+   
+   public void after39(@Target OverloadedAdvicePOJO target,
+         @Return long returnedValue)
+   {
+      after39="OverloadedAdvicePOJO,long";
+   }
+   
+   public void after39(@Target Object target, @Return long returnedValue)
+   {
+      after39="Object,long";
+   }
+   
+   public void after39(@Target OverloadedAdvicePOJO target, @Arg int arg)
+   {
+      after39="OverloadedAdvicePOJO,int";
+   }
+   
+   public void after39(@Target OverloadedAdvicePOJO target, @Args Object[] args)
+   {
+      after39="OverloadedAdvicePOJO,Object[]";
+   }
+   
+   public void after39(@Target OverloadedAdvicePOJO target)
+   {
+      after39="OverloadedAdvicePOJO";
+   }
+   
+   public void after39(@Caller OverloadedAdvicePOJOCaller caller,
+         @Return long returnedValue, @Arg int arg)
+   {
+      after39="OverloadedAdvicePOJOCaller,long,int";
+   }
+   
+   public void after39(@Caller SuperClass caller, @Return long returnedValue,
+         @Arg int arg)
+   {
+      after39 = "SuperClass,long,int";
+   }
+   
+   public void after39(@Caller OverloadedAdvicePOJOCaller caller,
+         @Return long returnedValue, @Args Object[] args)
+   {
+      after39 = "OverloadedAdvicePOJOCaller,long,Object[]";
+   }
+   
+   public void after39(@Caller SuperClass caller, @Return long returnedValue,
+         @Args Object[] args)
+   {
+      after39 = "SuperClass,long,Object[]";
+   }
+   
+   public void after39(@Caller OverloadedAdvicePOJOCaller caller,
+         @Return long returnedValue)
+   {
+      after39 = "OverloadedAdvicePOJOCaller,long";
+   }
+   
+   public void after39(@Caller SuperClass caller, @Return long returnedValue)
+   {
+      after39 = "SuperClass,long";
+   }
+   
+   public void after39(@Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+   {
+      after39 = "OverloadedAdvicePOJOCaller,int";
+   }
+   
+   public void after39(@Caller OverloadedAdvicePOJOCaller caller)
+   {
+      after39 = "OverloadedAdvicePOJOCaller";
+   }
+   
+   public void after39(@Return long returnedValue, @Arg int arg)
+   {
+      after39 = "long,int";
+   }
+   
+   /* AFTER40 ADVICE */
+   
+   public void after40(@Target Object target, @Return long returnedValue)
+   {
+      after40="Object,long";
+   }
+   
+   public void after40(@Target OverloadedAdvicePOJO target, @Arg int arg)
+   {
+      after40="OverloadedAdvicePOJO,int";
+   }
+   
+   public void after40(@Target OverloadedAdvicePOJO target, @Args Object[] args)
+   {
+      after40="OverloadedAdvicePOJO,Object[]";
+   }
+   
+   public void after40(@Target OverloadedAdvicePOJO target)
+   {
+      after40="OverloadedAdvicePOJO";
+   }
+   
+   public void after40(@Caller OverloadedAdvicePOJOCaller caller,
+         @Return long returnedValue, @Arg int arg)
+   {
+      after40="OverloadedAdvicePOJOCaller,long,int";
+   }
+   
+   public void after40(@Caller SuperClass caller, @Return long returnedValue,
+         @Arg int arg)
+   {
+      after40 = "SuperClass,long,int";
+   }
+   
+   public void after40(@Caller OverloadedAdvicePOJOCaller caller,
+         @Return long returnedValue, @Args Object[] args)
+   {
+      after40 = "OverloadedAdvicePOJOCaller,long,Object[]";
+   }
+   
+   public void after40(@Caller SuperClass caller, @Return long returnedValue,
+         @Args Object[] args)
+   {
+      after40 = "SuperClass,long,Object[]";
+   }
+   
+   public void after40(@Caller OverloadedAdvicePOJOCaller caller,
+         @Return long returnedValue)
+   {
+      after40 = "OverloadedAdvicePOJOCaller,long";
+   }
+   
+   public void after40(@Caller SuperClass caller, @Return long returnedValue)
+   {
+      after40 = "SuperClass,long";
+   }
+   
+   public void after40(@Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+   {
+      after40 = "OverloadedAdvicePOJOCaller,int";
+   }
+   
+   public void after40(@Caller OverloadedAdvicePOJOCaller caller)
+   {
+      after40 = "OverloadedAdvicePOJOCaller";
+   }
+   
+   public void after40(@Return long returnedValue, @Arg int arg)
+   {
+      after40 = "long,int";
+   }
+   
+   /* AFTER41 ADVICE */
+   
+   public void after41(@Target OverloadedAdvicePOJO target, @Arg int arg)
+   {
+      after41="OverloadedAdvicePOJO,int";
+   }
+   
+   public void after41(@Target OverloadedAdvicePOJO target, @Args Object[] args)
+   {
+      after41="OverloadedAdvicePOJO,Object[]";
+   }
+   
+   public void after41(@Target OverloadedAdvicePOJO target)
+   {
+      after41="OverloadedAdvicePOJO";
+   }
+   
+   public void after41(@Caller OverloadedAdvicePOJOCaller caller,
+         @Return long returnedValue, @Arg int arg)
+   {
+      after41="OverloadedAdvicePOJOCaller,long,int";
+   }
+   
+   public void after41(@Caller SuperClass caller, @Return long returnedValue,
+         @Arg int arg)
+   {
+      after41 = "SuperClass,long,int";
+   }
+   
+   public void after41(@Caller OverloadedAdvicePOJOCaller caller,
+         @Return long returnedValue, @Args Object[] args)
+   {
+      after41 = "OverloadedAdvicePOJOCaller,long,Object[]";
+   }
+   
+   public void after41(@Caller SuperClass caller, @Return long returnedValue,
+         @Args Object[] args)
+   {
+      after41 = "SuperClass,long,Object[]";
+   }
+   
+   public void after41(@Caller OverloadedAdvicePOJOCaller caller,
+         @Return long returnedValue)
+   {
+      after41 = "OverloadedAdvicePOJOCaller,long";
+   }
+   
+   public void after41(@Caller SuperClass caller, @Return long returnedValue)
+   {
+      after41 = "SuperClass,long";
+   }
+   
+   public void after41(@Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+   {
+      after41 = "OverloadedAdvicePOJOCaller,int";
+   }
+   
+   public void after41(@Caller OverloadedAdvicePOJOCaller caller)
+   {
+      after41 = "OverloadedAdvicePOJOCaller";
+   }
+   
+   public void after41(@Return long returnedValue, @Arg int arg)
+   {
+      after41 = "long,int";
+   }
+   
+   /* AFTER42 ADVICE */
+   
+   public void after42(@Target OverloadedAdvicePOJO target)
+   {
+      after42="OverloadedAdvicePOJO";
+   }
+   
+   public void after42(@Caller OverloadedAdvicePOJOCaller caller,
+         @Return long returnedValue, @Arg int arg)
+   {
+      after42="OverloadedAdvicePOJOCaller,long,int";
+   }
+   
+   public void after42(@Caller SuperClass caller, @Return long returnedValue,
+         @Arg int arg)
+   {
+      after42 = "SuperClass,long,int";
+   }
+   
+   public void after42(@Caller OverloadedAdvicePOJOCaller caller,
+         @Return long returnedValue, @Args Object[] args)
+   {
+      after42 = "OverloadedAdvicePOJOCaller,long,Object[]";
+   }
+   
+   public void after42(@Caller SuperClass caller, @Return long returnedValue,
+         @Args Object[] args)
+   {
+      after42 = "SuperClass,long,Object[]";
+   }
+   
+   public void after42(@Caller OverloadedAdvicePOJOCaller caller,
+         @Return long returnedValue)
+   {
+      after42 = "OverloadedAdvicePOJOCaller,long";
+   }
+   
+   public void after42(@Caller SuperClass caller, @Return long returnedValue)
+   {
+      after42 = "SuperClass,long";
+   }
+   
+   public void after42(@Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+   {
+      after42 = "OverloadedAdvicePOJOCaller,int";
+   }
+   
+   public void after42(@Caller OverloadedAdvicePOJOCaller caller)
+   {
+      after42 = "OverloadedAdvicePOJOCaller";
+   }
+   
+   public void after42(@Return long returnedValue, @Arg int arg)
+   {
+      after42 = "long,int";
+   }
+   
+   /* AFTER43 ADVICE */
+   
+   public void after43(@Caller OverloadedAdvicePOJOCaller caller,
+         @Return long returnedValue, @Arg int arg)
+   {
+      after43="OverloadedAdvicePOJOCaller,long,int";
+   }
+   
+   public void after43(@Caller SuperClass caller, @Return long returnedValue,
+         @Arg int arg)
+   {
+      after43 = "SuperClass,long,int";
+   }
+   
+   public void after43(@Caller OverloadedAdvicePOJOCaller caller,
+         @Return long returnedValue, @Args Object[] args)
+   {
+      after43 = "OverloadedAdvicePOJOCaller,long,Object[]";
+   }
+   
+   public void after43(@Caller SuperClass caller, @Return long returnedValue,
+         @Args Object[] args)
+   {
+      after43 = "SuperClass,long,Object[]";
+   }
+   
+   public void after43(@Caller OverloadedAdvicePOJOCaller caller,
+         @Return long returnedValue)
+   {
+      after43 = "OverloadedAdvicePOJOCaller,long";
+   }
+   
+   public void after43(@Caller SuperClass caller, @Return long returnedValue)
+   {
+      after43 = "SuperClass,long";
+   }
+   
+   public void after43(@Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+   {
+      after43 = "OverloadedAdvicePOJOCaller,int";
+   }
+   
+   public void after43(@Caller OverloadedAdvicePOJOCaller caller)
+   {
+      after43 = "OverloadedAdvicePOJOCaller";
+   }
+   
+   public void after43(@Return long returnedValue, @Arg int arg)
+   {
+      after43 = "long,int";
+   }
+   
+   /* AFTER44 ADVICE */
+   
+   public void after44(@Caller SuperClass caller, @Return long returnedValue,
+         @Arg int arg)
+   {
+      after44 = "SuperClass,long,int";
+   }
+   
+   public void after44(@Caller OverloadedAdvicePOJOCaller caller,
+         @Return long returnedValue, @Args Object[] args)
+   {
+      after44 = "OverloadedAdvicePOJOCaller,long,Object[]";
+   }
+   
+   public void after44(@Caller SuperClass caller, @Return long returnedValue,
+         @Args Object[] args)
+   {
+      after44 = "SuperClass,long,Object[]";
+   }
+   
+   public void after44(@Caller OverloadedAdvicePOJOCaller caller,
+         @Return long returnedValue)
+   {
+      after44 = "OverloadedAdvicePOJOCaller,long";
+   }
+   
+   public void after44(@Caller SuperClass caller, @Return long returnedValue)
+   {
+      after44 = "SuperClass,long";
+   }
+   
+   public void after44(@Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+   {
+      after44 = "OverloadedAdvicePOJOCaller,int";
+   }
+   
+   public void after44(@Caller OverloadedAdvicePOJOCaller caller)
+   {
+      after44 = "OverloadedAdvicePOJOCaller";
+   }
+   
+   public void after44(@Return long returnedValue, @Arg int arg)
+   {
+      after44 = "long,int";
+   }
+   
+   /* AFTER45 ADVICE */
+   
+   public void after45(@Caller OverloadedAdvicePOJOCaller caller,
+         @Return long returnedValue, @Args Object[] args)
+   {
+      after45 = "OverloadedAdvicePOJOCaller,long,Object[]";
+   }
+   
+   public void after45(@Caller SuperClass caller, @Return long returnedValue,
+         @Args Object[] args)
+   {
+      after45 = "SuperClass,long,Object[]";
+   }
+   
+   public void after45(@Caller OverloadedAdvicePOJOCaller caller,
+         @Return long returnedValue)
+   {
+      after45 = "OverloadedAdvicePOJOCaller,long";
+   }
+   
+   public void after45(@Caller SuperClass caller, @Return long returnedValue)
+   {
+      after45 = "SuperClass,long";
+   }
+   
+   public void after45(@Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+   {
+      after45 = "OverloadedAdvicePOJOCaller,int";
+   }
+   
+   public void after45(@Caller OverloadedAdvicePOJOCaller caller)
+   {
+      after45 = "OverloadedAdvicePOJOCaller";
+   }
+   
+   public void after45(@Return long returnedValue, @Arg int arg)
+   {
+      after45 = "long,int";
+   }
+   
+   /* AFTER46 ADVICE */
+   
+   public void after46(@Caller SuperClass caller, @Return long returnedValue,
+         @Args Object[] args)
+   {
+      after46 = "SuperClass,long,Object[]";
+   }
+   
+   public void after46(@Caller OverloadedAdvicePOJOCaller caller,
+         @Return long returnedValue)
+   {
+      after46 = "OverloadedAdvicePOJOCaller,long";
+   }
+   
+   public void after46(@Caller SuperClass caller, @Return long returnedValue)
+   {
+      after46 = "SuperClass,long";
+   }
+   
+   public void after46(@Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+   {
+      after46 = "OverloadedAdvicePOJOCaller,int";
+   }
+   
+   public void after46(@Caller OverloadedAdvicePOJOCaller caller)
+   {
+      after46 = "OverloadedAdvicePOJOCaller";
+   }
+   
+   public void after46(@Return long returnedValue, @Arg int arg)
+   {
+      after46 = "long,int";
+   }
+   
+   /* AFTER47 ADVICE */
+   
+   public void after47(@Caller OverloadedAdvicePOJOCaller caller,
+         @Return long returnedValue)
+   {
+      after47 = "OverloadedAdvicePOJOCaller,long";
+   }
+   
+   public void after47(@Caller SuperClass caller, @Return long returnedValue)
+   {
+      after47 = "SuperClass,long";
+   }
+   
+   public void after47(@Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+   {
+      after47 = "OverloadedAdvicePOJOCaller,int";
+   }
+   
+   public void after47(@Caller OverloadedAdvicePOJOCaller caller)
+   {
+      after47 = "OverloadedAdvicePOJOCaller";
+   }
+   
+   public void after47(@Return long returnedValue, @Arg int arg)
+   {
+      after47 = "long,int";
+   }
+   
+   /* AFTER48 ADVICE */
+   
+   public void after48(@Caller SuperClass caller, @Return long returnedValue)
+   {
+      after48 = "SuperClass,long";
+   }
+   
+   public void after48(@Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+   {
+      after48 = "OverloadedAdvicePOJOCaller,int";
+   }
+   
+   public void after48(@Caller OverloadedAdvicePOJOCaller caller)
+   {
+      after48 = "OverloadedAdvicePOJOCaller";
+   }
+   
+   public void after48(@Return long returnedValue, @Arg int arg)
+   {
+      after48 = "long,int";
+   }
+   
+   /* AFTER49 ADVICE */
+   
+   public void after49(@Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+   {
+      after49 = "OverloadedAdvicePOJOCaller,int";
+   }
+   
+   public void after49(@Caller OverloadedAdvicePOJOCaller caller)
+   {
+      after49 = "OverloadedAdvicePOJOCaller";
+   }
+   
+   public void after49(@Return long returnedValue, @Arg int arg)
+   {
+      after49 = "long,int";
+   }
+   
+   /* AFTER50 ADVICE */
+   
+   public void after50(@Caller OverloadedAdvicePOJOCaller caller)
+   {
+      after50 = "OverloadedAdvicePOJOCaller";
+   }
+   
+   public void after50(@Return long returnedValue, @Arg int arg)
+   {
+      after50 = "long,int";
+   }
+}
\ No newline at end of file

Modified: projects/aop/trunk/aop/src/test/org/jboss/test/aop/beforeafterArgs/OverloadedAroundAspect.java
===================================================================
--- projects/aop/trunk/aop/src/test/org/jboss/test/aop/beforeafterArgs/OverloadedAroundAspect.java	2007-03-03 04:29:41 UTC (rev 61065)
+++ projects/aop/trunk/aop/src/test/org/jboss/test/aop/beforeafterArgs/OverloadedAroundAspect.java	2007-03-03 04:31:17 UTC (rev 61066)
@@ -32,11 +32,12 @@
 import org.jboss.aop.joinpoint.MethodInvocation;
 
 /**
- * Aspect used on overloaded around advice tests.
+ * Aspect used on overloaded around advice tests (for JoinPoint, Arg and Args tests).
  *
+ * This class uses only primitive Arg parameter types.
+ *
  * @author <a href="flavia.rainone at jboss.com">Flavia Rainone</a>
  */
-// TODO temporary in this package
 public class OverloadedAroundAspect
 {
    static String around1 = null;

Added: projects/aop/trunk/aop/src/test/org/jboss/test/aop/beforeafterArgs/OverloadedAroundCallAspect.java
===================================================================
--- projects/aop/trunk/aop/src/test/org/jboss/test/aop/beforeafterArgs/OverloadedAroundCallAspect.java	                        (rev 0)
+++ projects/aop/trunk/aop/src/test/org/jboss/test/aop/beforeafterArgs/OverloadedAroundCallAspect.java	2007-03-03 04:31:17 UTC (rev 61066)
@@ -0,0 +1,7874 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.test.aop.beforeafterArgs;
+
+import junit.framework.Assert;
+
+import org.jboss.aop.advice.annotation.Arg;
+import org.jboss.aop.advice.annotation.Args;
+import org.jboss.aop.advice.annotation.Caller;
+import org.jboss.aop.advice.annotation.JoinPoint;
+import org.jboss.aop.advice.annotation.Target;
+import org.jboss.aop.joinpoint.CurrentInvocation;
+import org.jboss.aop.joinpoint.Invocation;
+import org.jboss.aop.joinpoint.MethodCalledByMethodInvocation;
+
+/**
+ * Aspect used on overloaded around advice tests (for Call and Target tests
+ * only).
+ *
+ * @author <a href="flavia.rainone at jboss.com">Flavia Rainone</a>
+ */
+public class OverloadedAroundCallAspect
+{
+   static String around1 = null;
+   static String around2 = null;
+   static String around3 = null;
+   static String around4 = null;
+   static String around5 = null;
+   static String around6 = null;
+   static String around7 = null;
+   static String around8 = null;
+   static String around9 = null;
+   static String around10 = null;
+   static String around11 = null;
+   static String around12 = null;
+   static String around13 = null;
+   static String around14 = null;
+   static String around15 = null;
+   static String around16 = null;
+   static String around17 = null;
+   static String around18 = null;
+   static String around19 = null;
+   static String around20 = null;
+   static String around21 = null;
+   static String around22 = null;
+   static String around23 = null;
+   static String around24 = null;
+   static String around25 = null;
+   static String around26 = null;
+   static String around27 = null;
+   static String around28 = null;
+   static String around29 = null;
+   static String around30 = null;
+   static String around31 = null;
+   static String around32 = null;
+   static String around33 = null;
+   static String around34 = null;
+   static String around35 = null;
+   static String around36 = null;
+   static String around37 = null;
+   static String around38 = null;
+   static String around39 = null;
+   static String around40 = null;
+   static String around41 = null;
+   static String around42 = null;
+   static String around43 = null;
+   static String around44 = null;
+   static String around45 = null;
+   static String around46 = null;
+   static String around47 = null;
+   
+   public static void clear()
+   {
+      around1 = null;
+      around2 = null;
+      around3 = null;
+      around4 = null;
+      around5 = null;
+      around6 = null;
+      around7 = null;
+      around8 = null;
+      around9 = null;
+      around10 = null;
+      around11 = null;
+      around12 = null;
+      around13 = null;
+      around14 = null;
+      around15 = null;
+      around16 = null;
+      around17 = null;
+      around18 = null;
+      around19 = null;
+      around20 = null;
+      around21 = null;
+      around22 = null;
+      around23 = null;
+      around24 = null;
+      around25 = null;
+      around26 = null;
+      around27 = null;
+      around28 = null;
+      around29 = null;
+      around30 = null;
+      around31 = null;
+      around32 = null;
+      around33 = null;
+      around34 = null;
+      around35 = null;
+      around36 = null;
+      around37 = null;
+      around38 = null;
+      around39 = null;
+      around40 = null;
+      around41 = null;
+      around42 = null;
+      around43 = null;
+      around44 = null;
+      around45 = null;
+      around46 = null;
+      around47 = null;
+   }
+   
+   /* AROUND1 ADVICE */
+   
+   public Object around1(Invocation invocation) throws Throwable
+   {
+      around1 = "defaultSignature";
+      return invocation.invokeNext();
+   }
+   
+   public Object around1(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Arg int arg) throws Throwable
+   {
+      around1 = "MethodCalledByMethodInvocation,OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,int";
+      return invocation.invokeNext();
+   }
+   
+   public Object around1(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Target OverloadedAdvicePOJO target, @Caller SuperClass caller,
+         @Arg int arg) throws Throwable
+   {
+      around1 = "MethodCalledByMethodInvocation,OverloadedAdvicePOJO,SuperClass,int";
+      return invocation.invokeNext();
+   }
+   
+   public Object around1(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Target Object target, @Caller OverloadedAdvicePOJOCaller caller,
+         @Arg int arg) throws Throwable
+   {
+      around1 = "MethodCalledByMethodInvocation,Object,OverloadedAdvicePOJOCaller,int";
+      return invocation.invokeNext();
+   }
+   
+   public Object around1(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Target Object target, @Caller SuperClass caller,
+         @Arg int arg) throws Throwable
+   {
+      around1 = "MethodCalledByMethodInvocation,Object,SuperClass,int";
+      return invocation.invokeNext();
+   }
+   
+   public Object around1(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Args Object[] args)
+      throws Throwable
+   {
+      around1 = "MethodCalledByMethodInvocation,OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,Object[]";
+      return invocation.invokeNext();
+   }
+   
+   public Object around1(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Target OverloadedAdvicePOJO target, @Caller SuperClass caller,
+         @Args Object[] args) throws Throwable
+   {
+      around1 = "MethodCalledByMethodInvocation,OverloadedAdvicePOJO,SuperClass,Object[]";
+      return invocation.invokeNext();
+   }
+   
+   public Object around1(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Target Object target, @Caller OverloadedAdvicePOJOCaller caller,
+         @Args Object[] args) throws Throwable
+   {
+      around1 = "MethodCalledByMethodInvocation,Object,OverloadedAdvicePOJOCaller,Object[]";
+      return invocation.invokeNext();
+   }
+   
+   public Object around1(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Target Object target, @Caller SuperClass caller,
+         @Args Object[] args) throws Throwable
+   {
+      around1 = "MethodCalledByMethodInvocation,Object,SuperClass,Object[]";
+      return invocation.invokeNext();
+   }
+   
+   public Object around1(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller) throws Throwable
+   {
+      around1 = "MethodCalledByMethodInvocation,OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller";
+      return invocation.invokeNext();
+   }
+   
+   public Object around1(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Target OverloadedAdvicePOJO target, @Caller SuperClass caller)
+      throws Throwable
+   {
+      around1 = "MethodCalledByMethodInvocation,OverloadedAdvicePOJO,SuperClass";
+      return invocation.invokeNext();
+   }
+   
+   public Object around1(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Target Object target, @Caller OverloadedAdvicePOJOCaller caller)
+      throws Throwable
+   {
+      around1 = "MethodCalledByMethodInvocation,Object,OverloadedAdvicePOJOCaller";
+      return invocation.invokeNext();
+   }
+   
+   public Object around1(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Target Object target, @Caller SuperClass caller) throws Throwable
+   {
+      around1 = "MethodCalledByMethodInvocation,Object,SuperClass";
+      return invocation.invokeNext();
+   }
+   
+   public Object around1(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Target OverloadedAdvicePOJO target, @Arg int arg) throws Throwable
+   {
+      around1 = "MethodCalledByMethodInvocation,OverloadedAdvicePOJO,int";
+      return invocation.invokeNext();
+   }
+   
+   public Object around1(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Target Object target, @Arg int arg) throws Throwable
+   {
+      around1 = "MethodCalledByMethodInvocation,Object,int";
+      return invocation.invokeNext();
+   }
+   
+   public Object around1(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Target OverloadedAdvicePOJO target, @Args Object[] args) throws Throwable
+   {
+      around1 = "MethodCalledByMethodInvocation,OverloadedAdvicePOJO,Object[]";
+      return invocation.invokeNext();
+   }
+   
+   public Object around1(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Target Object target, @Args Object[] args) throws Throwable
+   {
+      around1 = "MethodCalledByMethodInvocation,Object,Object[]";
+      return invocation.invokeNext();
+   }
+   
+   public Object around1(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Caller OverloadedAdvicePOJOCaller caller, @Arg int arg) throws Throwable
+   {
+      around1 = "MethodCalledByMethodInvocation,OverloadedAdvicePOJOCaller,int";
+      return invocation.invokeNext();
+   }
+   
+   public Object around1(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Caller SuperClass caller, @Arg int arg) throws Throwable
+   {
+      around1 = "MethodCalledByMethodInvocation,SuperClass,int";
+      return invocation.invokeNext();
+   }
+   
+   public Object around1(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Caller OverloadedAdvicePOJOCaller caller, @Args Object[] args)
+      throws Throwable
+   {
+      around1 = "MethodCalledByMethodInvocation,OverloadedAdvicePOJOCaller,Object[]";
+      return invocation.invokeNext();
+   }
+   
+   public Object around1(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Caller SuperClass caller, @Args Object[] args) throws Throwable
+   {
+      around1 = "MethodCalledByMethodInvocation,SuperClass,Object[]";
+      return invocation.invokeNext();
+   }
+   
+   public Object around1(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Arg int arg) throws Throwable
+   {
+      around1 = "MethodCalledByMethodInvocation,int";
+      return invocation.invokeNext();
+   }
+   
+   public Object around1(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Args Object[] args) throws Throwable
+   {
+      around1 = "MethodCalledByMethodInvocation,Object[]";
+      return invocation.invokeNext();
+   }
+   
+   public Object around1(@JoinPoint MethodCalledByMethodInvocation invocation)
+      throws Throwable
+   {
+      around1= "MethodCalledByMethodInvocation";
+      return invocation.invokeNext();
+   }
+   
+   public Object around1(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Arg int arg) throws Throwable
+   {
+      around1 = "OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around1(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Arg int arg) throws Throwable
+   {
+      around1 = "OverloadedAdvicePOJO,SuperClass,int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around1(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Arg int arg) throws Throwable
+   {
+      around1 = "Object,OverloadedAdvicePOJOCaller,int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around1(@Target Object target, @Caller SuperClass caller,
+         @Arg int arg) throws Throwable
+   {
+      around1 = "Object,SuperClass,int";
+      return CurrentInvocation.proceed();
+   }
+ 
+   public Object around1(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Args Object[] args)
+      throws Throwable
+   {
+      around1 = "OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around1(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Args Object[] args) throws Throwable
+   {
+      around1 = "OverloadedAdvicePOJO,SuperClass,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around1(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Args Object[] args)
+      throws Throwable
+   {
+      around1 = "Object,OverloadedAdvicePOJOCaller,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around1(@Target Object target, @Caller SuperClass caller,
+         @Args Object[] args) throws Throwable
+   {
+      around1 = "Object,SuperClass,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around1(@Target OverloadedAdvicePOJO target, @Arg int arg)
+      throws Throwable
+   {
+      around1 = "OverloadedAdvicePOJO,int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around1(@Target Object target, @Arg int arg) throws Throwable
+   {
+      around1 = "Object,int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around1(@Target OverloadedAdvicePOJO target, @Args Object[] args)
+      throws Throwable
+   {
+      around1 = "OverloadedAdvicePOJO,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around1(@Target Object target, @Args Object[] args) throws Throwable
+   {
+      around1 = "Object,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around1(@Target OverloadedAdvicePOJO target) throws Throwable
+   {
+      around1 = "OverloadedAdvicePOJO";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around1(@Target Object target) throws Throwable
+   {
+      around1 = "Object";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around1(@Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+      throws Throwable
+   {
+      around1 = "OverloadedAdvicePOJOCaller,int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around1(@Caller SuperClass caller, @Arg int arg) throws Throwable
+   {
+      around1 = "SuperClass,int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around1(@Caller OverloadedAdvicePOJOCaller caller,
+         @Args Object[] args) throws Throwable
+   {
+      around1 = "OverloadedAdvicePOJOCaller,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around1(@Caller SuperClass caller, @Args Object[] args)
+      throws Throwable
+   {
+      around1 = "SuperClass,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around1(@Caller OverloadedAdvicePOJOCaller caller) throws Throwable
+   {
+      around1 = "OverloadedAdvicePOJOCaller";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around1(@Caller SuperClass caller) throws Throwable
+   {
+      around1 = "SuperClass";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around1(@Arg int arg) throws Throwable
+   {
+      around1 = "int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around1(@Args Object[] args) throws Throwable
+   {
+      around1 = "Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around1(@Arg int arg, @Args Object[] args) throws Throwable
+   {
+      Assert.fail("This advice should never be executed");
+      return CurrentInvocation.proceed();
+   }
+   
+   /* AROUND2 ADVICE */
+   
+   public Object around2(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Arg int arg) throws Throwable
+   {
+      around2 = "MethodCalledByMethodInvocation,OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,int";
+      return invocation.invokeNext();
+   }
+   
+   public Object around2(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Target OverloadedAdvicePOJO target, @Caller SuperClass caller,
+         @Arg int arg) throws Throwable
+   {
+      around2 = "MethodCalledByMethodInvocation,OverloadedAdvicePOJO,SuperClass,int";
+      return invocation.invokeNext();
+   }
+   
+   public Object around2(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Target Object target, @Caller OverloadedAdvicePOJOCaller caller,
+         @Arg int arg) throws Throwable
+   {
+      around2 = "MethodCalledByMethodInvocation,Object,OverloadedAdvicePOJOCaller,int";
+      return invocation.invokeNext();
+   }
+   
+   public Object around2(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Target Object target, @Caller SuperClass caller,
+         @Arg int arg) throws Throwable
+   {
+      around2 = "MethodCalledByMethodInvocation,Object,SuperClass,int";
+      return invocation.invokeNext();
+   }
+   
+   public Object around2(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Args Object[] args)
+      throws Throwable
+   {
+      around2 = "MethodCalledByMethodInvocation,OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,Object[]";
+      return invocation.invokeNext();
+   }
+   
+   public Object around2(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Target OverloadedAdvicePOJO target, @Caller SuperClass caller,
+         @Args Object[] args) throws Throwable
+   {
+      around2 = "MethodCalledByMethodInvocation,OverloadedAdvicePOJO,SuperClass,Object[]";
+      return invocation.invokeNext();
+   }
+   
+   public Object around2(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Target Object target, @Caller OverloadedAdvicePOJOCaller caller,
+         @Args Object[] args) throws Throwable
+   {
+      around2 = "MethodCalledByMethodInvocation,Object,OverloadedAdvicePOJOCaller,Object[]";
+      return invocation.invokeNext();
+   }
+   
+   public Object around2(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Target Object target, @Caller SuperClass caller,
+         @Args Object[] args) throws Throwable
+   {
+      around2 = "MethodCalledByMethodInvocation,Object,SuperClass,Object[]";
+      return invocation.invokeNext();
+   }
+   
+   public Object around2(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller) throws Throwable
+   {
+      around2 = "MethodCalledByMethodInvocation,OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller";
+      return invocation.invokeNext();
+   }
+   
+   public Object around2(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Target OverloadedAdvicePOJO target, @Caller SuperClass caller)
+      throws Throwable
+   {
+      around2 = "MethodCalledByMethodInvocation,OverloadedAdvicePOJO,SuperClass";
+      return invocation.invokeNext();
+   }
+   
+   public Object around2(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Target Object target, @Caller OverloadedAdvicePOJOCaller caller)
+      throws Throwable
+   {
+      around2 = "MethodCalledByMethodInvocation,Object,OverloadedAdvicePOJOCaller";
+      return invocation.invokeNext();
+   }
+   
+   public Object around2(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Target Object target, @Caller SuperClass caller) throws Throwable
+   {
+      around2 = "MethodCalledByMethodInvocation,Object,SuperClass";
+      return invocation.invokeNext();
+   }
+   
+   public Object around2(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Target OverloadedAdvicePOJO target, @Arg int arg) throws Throwable
+   {
+      around2 = "MethodCalledByMethodInvocation,OverloadedAdvicePOJO,int";
+      return invocation.invokeNext();
+   }
+   
+   public Object around2(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Target Object target, @Arg int arg) throws Throwable
+   {
+      around2 = "MethodCalledByMethodInvocation,Object,int";
+      return invocation.invokeNext();
+   }
+   
+   public Object around2(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Target OverloadedAdvicePOJO target, @Args Object[] args) throws Throwable
+   {
+      around2 = "MethodCalledByMethodInvocation,OverloadedAdvicePOJO,Object[]";
+      return invocation.invokeNext();
+   }
+   
+   public Object around2(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Target Object target, @Args Object[] args) throws Throwable
+   {
+      around2 = "MethodCalledByMethodInvocation,Object,Object[]";
+      return invocation.invokeNext();
+   }
+   
+   public Object around2(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Caller OverloadedAdvicePOJOCaller caller, @Arg int arg) throws Throwable
+   {
+      around2 = "MethodCalledByMethodInvocation,OverloadedAdvicePOJOCaller,int";
+      return invocation.invokeNext();
+   }
+   
+   public Object around2(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Caller SuperClass caller, @Arg int arg) throws Throwable
+   {
+      around2 = "MethodCalledByMethodInvocation,SuperClass,int";
+      return invocation.invokeNext();
+   }
+   
+   public Object around2(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Caller OverloadedAdvicePOJOCaller caller, @Args Object[] args)
+      throws Throwable
+   {
+      around2 = "MethodCalledByMethodInvocation,OverloadedAdvicePOJOCaller,Object[]";
+      return invocation.invokeNext();
+   }
+   
+   public Object around2(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Caller SuperClass caller, @Args Object[] args) throws Throwable
+   {
+      around2 = "MethodCalledByMethodInvocation,SuperClass,Object[]";
+      return invocation.invokeNext();
+   }
+   
+   public Object around2(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Arg int arg) throws Throwable
+   {
+      around2 = "MethodCalledByMethodInvocation,int";
+      return invocation.invokeNext();
+   }
+   
+   public Object around2(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Args Object[] args) throws Throwable
+   {
+      around2 = "MethodCalledByMethodInvocation,Object[]";
+      return invocation.invokeNext();
+   }
+   
+   public Object around2(@JoinPoint MethodCalledByMethodInvocation invocation)
+      throws Throwable
+   {
+      around2= "MethodCalledByMethodInvocation";
+      return invocation.invokeNext();
+   }
+   
+   public Object around2(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Arg int arg) throws Throwable
+   {
+      around2 = "OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around2(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Arg int arg) throws Throwable
+   {
+      around2 = "OverloadedAdvicePOJO,SuperClass,int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around2(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Arg int arg) throws Throwable
+   {
+      around2 = "Object,OverloadedAdvicePOJOCaller,int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around2(@Target Object target, @Caller SuperClass caller,
+         @Arg int arg) throws Throwable
+   {
+      around2 = "Object,SuperClass,int";
+      return CurrentInvocation.proceed();
+   }
+ 
+   public Object around2(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Args Object[] args)
+      throws Throwable
+   {
+      around2 = "OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around2(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Args Object[] args) throws Throwable
+   {
+      around2 = "OverloadedAdvicePOJO,SuperClass,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around2(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Args Object[] args)
+      throws Throwable
+   {
+      around2 = "Object,OverloadedAdvicePOJOCaller,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around2(@Target Object target, @Caller SuperClass caller,
+         @Args Object[] args) throws Throwable
+   {
+      around2 = "Object,SuperClass,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around2(@Target OverloadedAdvicePOJO target, @Arg int arg)
+      throws Throwable
+   {
+      around2 = "OverloadedAdvicePOJO,int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around2(@Target Object target, @Arg int arg) throws Throwable
+   {
+      around2 = "Object,int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around2(@Target OverloadedAdvicePOJO target, @Args Object[] args)
+      throws Throwable
+   {
+      around2 = "OverloadedAdvicePOJO,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around2(@Target Object target, @Args Object[] args) throws Throwable
+   {
+      around2 = "Object,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around2(@Target OverloadedAdvicePOJO target) throws Throwable
+   {
+      around2 = "OverloadedAdvicePOJO";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around2(@Target Object target) throws Throwable
+   {
+      around2 = "Object";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around2(@Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+      throws Throwable
+   {
+      around2 = "OverloadedAdvicePOJOCaller,int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around2(@Caller SuperClass caller, @Arg int arg) throws Throwable
+   {
+      around2 = "SuperClass,int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around2(@Caller OverloadedAdvicePOJOCaller caller,
+         @Args Object[] args) throws Throwable
+   {
+      around2 = "OverloadedAdvicePOJOCaller,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around2(@Caller SuperClass caller, @Args Object[] args)
+      throws Throwable
+   {
+      around2 = "SuperClass,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around2(@Caller OverloadedAdvicePOJOCaller caller) throws Throwable
+   {
+      around2 = "OverloadedAdvicePOJOCaller";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around2(@Caller SuperClass caller) throws Throwable
+   {
+      around2 = "SuperClass";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around2(@Arg int arg) throws Throwable
+   {
+      around2 = "int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around2(@Args Object[] args) throws Throwable
+   {
+      around2 = "Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around2(@Arg int arg, @Args Object[] args) throws Throwable
+   {
+      Assert.fail("This advice should never be executed");
+      return CurrentInvocation.proceed();
+   }
+   
+   /* AROUND3 ADVICE */
+   
+   public Object around3(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Target OverloadedAdvicePOJO target, @Caller SuperClass caller,
+         @Arg int arg) throws Throwable
+   {
+      around3 = "MethodCalledByMethodInvocation,OverloadedAdvicePOJO,SuperClass,int";
+      return invocation.invokeNext();
+   }
+   
+   public Object around3(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Target Object target, @Caller OverloadedAdvicePOJOCaller caller,
+         @Arg int arg) throws Throwable
+   {
+      around3 = "MethodCalledByMethodInvocation,Object,OverloadedAdvicePOJOCaller,int";
+      return invocation.invokeNext();
+   }
+   
+   public Object around3(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Target Object target, @Caller SuperClass caller,
+         @Arg int arg) throws Throwable
+   {
+      around3 = "MethodCalledByMethodInvocation,Object,SuperClass,int";
+      return invocation.invokeNext();
+   }
+   
+   public Object around3(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Args Object[] args)
+      throws Throwable
+   {
+      around3 = "MethodCalledByMethodInvocation,OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,Object[]";
+      return invocation.invokeNext();
+   }
+   
+   public Object around3(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Target OverloadedAdvicePOJO target, @Caller SuperClass caller,
+         @Args Object[] args) throws Throwable
+   {
+      around3 = "MethodCalledByMethodInvocation,OverloadedAdvicePOJO,SuperClass,Object[]";
+      return invocation.invokeNext();
+   }
+   
+   public Object around3(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Target Object target, @Caller OverloadedAdvicePOJOCaller caller,
+         @Args Object[] args) throws Throwable
+   {
+      around3 = "MethodCalledByMethodInvocation,Object,OverloadedAdvicePOJOCaller,Object[]";
+      return invocation.invokeNext();
+   }
+   
+   public Object around3(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Target Object target, @Caller SuperClass caller,
+         @Args Object[] args) throws Throwable
+   {
+      around3 = "MethodCalledByMethodInvocation,Object,SuperClass,Object[]";
+      return invocation.invokeNext();
+   }
+   
+   public Object around3(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller) throws Throwable
+   {
+      around3 = "MethodCalledByMethodInvocation,OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller";
+      return invocation.invokeNext();
+   }
+   
+   public Object around3(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Target OverloadedAdvicePOJO target, @Caller SuperClass caller)
+      throws Throwable
+   {
+      around3 = "MethodCalledByMethodInvocation,OverloadedAdvicePOJO,SuperClass";
+      return invocation.invokeNext();
+   }
+   
+   public Object around3(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Target Object target, @Caller OverloadedAdvicePOJOCaller caller)
+      throws Throwable
+   {
+      around3 = "MethodCalledByMethodInvocation,Object,OverloadedAdvicePOJOCaller";
+      return invocation.invokeNext();
+   }
+   
+   public Object around3(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Target Object target, @Caller SuperClass caller) throws Throwable
+   {
+      around3 = "MethodCalledByMethodInvocation,Object,SuperClass";
+      return invocation.invokeNext();
+   }
+   
+   public Object around3(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Target OverloadedAdvicePOJO target, @Arg int arg) throws Throwable
+   {
+      around3 = "MethodCalledByMethodInvocation,OverloadedAdvicePOJO,int";
+      return invocation.invokeNext();
+   }
+   
+   public Object around3(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Target Object target, @Arg int arg) throws Throwable
+   {
+      around3 = "MethodCalledByMethodInvocation,Object,int";
+      return invocation.invokeNext();
+   }
+   
+   public Object around3(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Target OverloadedAdvicePOJO target, @Args Object[] args) throws Throwable
+   {
+      around3 = "MethodCalledByMethodInvocation,OverloadedAdvicePOJO,Object[]";
+      return invocation.invokeNext();
+   }
+   
+   public Object around3(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Target Object target, @Args Object[] args) throws Throwable
+   {
+      around3 = "MethodCalledByMethodInvocation,Object,Object[]";
+      return invocation.invokeNext();
+   }
+   
+   public Object around3(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Caller OverloadedAdvicePOJOCaller caller, @Arg int arg) throws Throwable
+   {
+      around3 = "MethodCalledByMethodInvocation,OverloadedAdvicePOJOCaller,int";
+      return invocation.invokeNext();
+   }
+   
+   public Object around3(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Caller SuperClass caller, @Arg int arg) throws Throwable
+   {
+      around3 = "MethodCalledByMethodInvocation,SuperClass,int";
+      return invocation.invokeNext();
+   }
+   
+   public Object around3(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Caller OverloadedAdvicePOJOCaller caller, @Args Object[] args)
+      throws Throwable
+   {
+      around3 = "MethodCalledByMethodInvocation,OverloadedAdvicePOJOCaller,Object[]";
+      return invocation.invokeNext();
+   }
+   
+   public Object around3(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Caller SuperClass caller, @Args Object[] args) throws Throwable
+   {
+      around3 = "MethodCalledByMethodInvocation,SuperClass,Object[]";
+      return invocation.invokeNext();
+   }
+   
+   public Object around3(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Arg int arg) throws Throwable
+   {
+      around3 = "MethodCalledByMethodInvocation,int";
+      return invocation.invokeNext();
+   }
+   
+   public Object around3(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Args Object[] args) throws Throwable
+   {
+      around3 = "MethodCalledByMethodInvocation,Object[]";
+      return invocation.invokeNext();
+   }
+   
+   public Object around3(@JoinPoint MethodCalledByMethodInvocation invocation)
+      throws Throwable
+   {
+      around3= "MethodCalledByMethodInvocation";
+      return invocation.invokeNext();
+   }
+   
+   public Object around3(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Arg int arg) throws Throwable
+   {
+      around3 = "OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around3(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Arg int arg) throws Throwable
+   {
+      around3 = "OverloadedAdvicePOJO,SuperClass,int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around3(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Arg int arg) throws Throwable
+   {
+      around3 = "Object,OverloadedAdvicePOJOCaller,int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around3(@Target Object target, @Caller SuperClass caller,
+         @Arg int arg) throws Throwable
+   {
+      around3 = "Object,SuperClass,int";
+      return CurrentInvocation.proceed();
+   }
+ 
+   public Object around3(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Args Object[] args)
+      throws Throwable
+   {
+      around3 = "OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around3(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Args Object[] args) throws Throwable
+   {
+      around3 = "OverloadedAdvicePOJO,SuperClass,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around3(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Args Object[] args)
+      throws Throwable
+   {
+      around3 = "Object,OverloadedAdvicePOJOCaller,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around3(@Target Object target, @Caller SuperClass caller,
+         @Args Object[] args) throws Throwable
+   {
+      around3 = "Object,SuperClass,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around3(@Target OverloadedAdvicePOJO target, @Arg int arg)
+      throws Throwable
+   {
+      around3 = "OverloadedAdvicePOJO,int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around3(@Target Object target, @Arg int arg) throws Throwable
+   {
+      around3 = "Object,int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around3(@Target OverloadedAdvicePOJO target, @Args Object[] args)
+      throws Throwable
+   {
+      around3 = "OverloadedAdvicePOJO,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around3(@Target Object target, @Args Object[] args) throws Throwable
+   {
+      around3 = "Object,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around3(@Target OverloadedAdvicePOJO target) throws Throwable
+   {
+      around3 = "OverloadedAdvicePOJO";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around3(@Target Object target) throws Throwable
+   {
+      around3 = "Object";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around3(@Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+      throws Throwable
+   {
+      around3 = "OverloadedAdvicePOJOCaller,int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around3(@Caller SuperClass caller, @Arg int arg) throws Throwable
+   {
+      around3 = "SuperClass,int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around3(@Caller OverloadedAdvicePOJOCaller caller,
+         @Args Object[] args) throws Throwable
+   {
+      around3 = "OverloadedAdvicePOJOCaller,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around3(@Caller SuperClass caller, @Args Object[] args)
+      throws Throwable
+   {
+      around3 = "SuperClass,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around3(@Caller OverloadedAdvicePOJOCaller caller) throws Throwable
+   {
+      around3 = "OverloadedAdvicePOJOCaller";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around3(@Caller SuperClass caller) throws Throwable
+   {
+      around3 = "SuperClass";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around3(@Arg int arg) throws Throwable
+   {
+      around3 = "int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around3(@Args Object[] args) throws Throwable
+   {
+      around3 = "Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around3(@Arg int arg, @Args Object[] args) throws Throwable
+   {
+      Assert.fail("This advice should never be executed");
+      return CurrentInvocation.proceed();
+   }
+   
+   /* AROUND4 ADVICE */
+   
+   public Object around4(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Target Object target, @Caller OverloadedAdvicePOJOCaller caller,
+         @Arg int arg) throws Throwable
+   {
+      around4 = "MethodCalledByMethodInvocation,Object,OverloadedAdvicePOJOCaller,int";
+      return invocation.invokeNext();
+   }
+   
+   public Object around4(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Target Object target, @Caller SuperClass caller,
+         @Arg int arg) throws Throwable
+   {
+      around4 = "MethodCalledByMethodInvocation,Object,SuperClass,int";
+      return invocation.invokeNext();
+   }
+   
+   public Object around4(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Args Object[] args)
+      throws Throwable
+   {
+      around4 = "MethodCalledByMethodInvocation,OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,Object[]";
+      return invocation.invokeNext();
+   }
+   
+   public Object around4(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Target OverloadedAdvicePOJO target, @Caller SuperClass caller,
+         @Args Object[] args) throws Throwable
+   {
+      around4 = "MethodCalledByMethodInvocation,OverloadedAdvicePOJO,SuperClass,Object[]";
+      return invocation.invokeNext();
+   }
+   
+   public Object around4(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Target Object target, @Caller OverloadedAdvicePOJOCaller caller,
+         @Args Object[] args) throws Throwable
+   {
+      around4 = "MethodCalledByMethodInvocation,Object,OverloadedAdvicePOJOCaller,Object[]";
+      return invocation.invokeNext();
+   }
+   
+   public Object around4(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Target Object target, @Caller SuperClass caller,
+         @Args Object[] args) throws Throwable
+   {
+      around4 = "MethodCalledByMethodInvocation,Object,SuperClass,Object[]";
+      return invocation.invokeNext();
+   }
+   
+   public Object around4(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller) throws Throwable
+   {
+      around4 = "MethodCalledByMethodInvocation,OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller";
+      return invocation.invokeNext();
+   }
+   
+   public Object around4(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Target OverloadedAdvicePOJO target, @Caller SuperClass caller)
+      throws Throwable
+   {
+      around4 = "MethodCalledByMethodInvocation,OverloadedAdvicePOJO,SuperClass";
+      return invocation.invokeNext();
+   }
+   
+   public Object around4(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Target Object target, @Caller OverloadedAdvicePOJOCaller caller)
+      throws Throwable
+   {
+      around4 = "MethodCalledByMethodInvocation,Object,OverloadedAdvicePOJOCaller";
+      return invocation.invokeNext();
+   }
+   
+   public Object around4(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Target Object target, @Caller SuperClass caller) throws Throwable
+   {
+      around4 = "MethodCalledByMethodInvocation,Object,SuperClass";
+      return invocation.invokeNext();
+   }
+   
+   public Object around4(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Target OverloadedAdvicePOJO target, @Arg int arg) throws Throwable
+   {
+      around4 = "MethodCalledByMethodInvocation,OverloadedAdvicePOJO,int";
+      return invocation.invokeNext();
+   }
+   
+   public Object around4(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Target Object target, @Arg int arg) throws Throwable
+   {
+      around4 = "MethodCalledByMethodInvocation,Object,int";
+      return invocation.invokeNext();
+   }
+   
+   public Object around4(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Target OverloadedAdvicePOJO target, @Args Object[] args) throws Throwable
+   {
+      around4 = "MethodCalledByMethodInvocation,OverloadedAdvicePOJO,Object[]";
+      return invocation.invokeNext();
+   }
+   
+   public Object around4(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Target Object target, @Args Object[] args) throws Throwable
+   {
+      around4 = "MethodCalledByMethodInvocation,Object,Object[]";
+      return invocation.invokeNext();
+   }
+   
+   public Object around4(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Caller OverloadedAdvicePOJOCaller caller, @Arg int arg) throws Throwable
+   {
+      around4 = "MethodCalledByMethodInvocation,OverloadedAdvicePOJOCaller,int";
+      return invocation.invokeNext();
+   }
+   
+   public Object around4(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Caller SuperClass caller, @Arg int arg) throws Throwable
+   {
+      around4 = "MethodCalledByMethodInvocation,SuperClass,int";
+      return invocation.invokeNext();
+   }
+   
+   public Object around4(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Caller OverloadedAdvicePOJOCaller caller, @Args Object[] args)
+      throws Throwable
+   {
+      around4 = "MethodCalledByMethodInvocation,OverloadedAdvicePOJOCaller,Object[]";
+      return invocation.invokeNext();
+   }
+   
+   public Object around4(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Caller SuperClass caller, @Args Object[] args) throws Throwable
+   {
+      around4 = "MethodCalledByMethodInvocation,SuperClass,Object[]";
+      return invocation.invokeNext();
+   }
+   
+   public Object around4(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Arg int arg) throws Throwable
+   {
+      around4 = "MethodCalledByMethodInvocation,int";
+      return invocation.invokeNext();
+   }
+   
+   public Object around4(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Args Object[] args) throws Throwable
+   {
+      around4 = "MethodCalledByMethodInvocation,Object[]";
+      return invocation.invokeNext();
+   }
+   
+   public Object around4(@JoinPoint MethodCalledByMethodInvocation invocation)
+      throws Throwable
+   {
+      around4= "MethodCalledByMethodInvocation";
+      return invocation.invokeNext();
+   }
+   
+   public Object around4(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Arg int arg) throws Throwable
+   {
+      around4 = "OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around4(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Arg int arg) throws Throwable
+   {
+      around4 = "OverloadedAdvicePOJO,SuperClass,int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around4(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Arg int arg) throws Throwable
+   {
+      around4 = "Object,OverloadedAdvicePOJOCaller,int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around4(@Target Object target, @Caller SuperClass caller,
+         @Arg int arg) throws Throwable
+   {
+      around4 = "Object,SuperClass,int";
+      return CurrentInvocation.proceed();
+   }
+ 
+   public Object around4(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Args Object[] args)
+      throws Throwable
+   {
+      around4 = "OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around4(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Args Object[] args) throws Throwable
+   {
+      around4 = "OverloadedAdvicePOJO,SuperClass,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around4(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Args Object[] args)
+      throws Throwable
+   {
+      around4 = "Object,OverloadedAdvicePOJOCaller,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around4(@Target Object target, @Caller SuperClass caller,
+         @Args Object[] args) throws Throwable
+   {
+      around4 = "Object,SuperClass,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around4(@Target OverloadedAdvicePOJO target, @Arg int arg)
+      throws Throwable
+   {
+      around4 = "OverloadedAdvicePOJO,int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around4(@Target Object target, @Arg int arg) throws Throwable
+   {
+      around4 = "Object,int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around4(@Target OverloadedAdvicePOJO target, @Args Object[] args)
+      throws Throwable
+   {
+      around4 = "OverloadedAdvicePOJO,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around4(@Target Object target, @Args Object[] args) throws Throwable
+   {
+      around4 = "Object,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around4(@Target OverloadedAdvicePOJO target) throws Throwable
+   {
+      around4 = "OverloadedAdvicePOJO";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around4(@Target Object target) throws Throwable
+   {
+      around4 = "Object";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around4(@Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+      throws Throwable
+   {
+      around4 = "OverloadedAdvicePOJOCaller,int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around4(@Caller SuperClass caller, @Arg int arg) throws Throwable
+   {
+      around4 = "SuperClass,int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around4(@Caller OverloadedAdvicePOJOCaller caller,
+         @Args Object[] args) throws Throwable
+   {
+      around4 = "OverloadedAdvicePOJOCaller,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around4(@Caller SuperClass caller, @Args Object[] args)
+      throws Throwable
+   {
+      around4 = "SuperClass,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around4(@Caller OverloadedAdvicePOJOCaller caller) throws Throwable
+   {
+      around4 = "OverloadedAdvicePOJOCaller";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around4(@Caller SuperClass caller) throws Throwable
+   {
+      around4 = "SuperClass";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around4(@Arg int arg) throws Throwable
+   {
+      around4 = "int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around4(@Args Object[] args) throws Throwable
+   {
+      around4 = "Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around4(@Arg int arg, @Args Object[] args) throws Throwable
+   {
+      Assert.fail("This advice should never be executed");
+      return CurrentInvocation.proceed();
+   }
+   
+   /* AROUND5 ADVICE */
+   
+   public Object around5(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Target Object target, @Caller SuperClass caller,
+         @Arg int arg) throws Throwable
+   {
+      around5 = "MethodCalledByMethodInvocation,Object,SuperClass,int";
+      return invocation.invokeNext();
+   }
+   
+   public Object around5(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Args Object[] args)
+      throws Throwable
+   {
+      around5 = "MethodCalledByMethodInvocation,OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,Object[]";
+      return invocation.invokeNext();
+   }
+   
+   public Object around5(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Target OverloadedAdvicePOJO target, @Caller SuperClass caller,
+         @Args Object[] args) throws Throwable
+   {
+      around5 = "MethodCalledByMethodInvocation,OverloadedAdvicePOJO,SuperClass,Object[]";
+      return invocation.invokeNext();
+   }
+   
+   public Object around5(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Target Object target, @Caller OverloadedAdvicePOJOCaller caller,
+         @Args Object[] args) throws Throwable
+   {
+      around5 = "MethodCalledByMethodInvocation,Object,OverloadedAdvicePOJOCaller,Object[]";
+      return invocation.invokeNext();
+   }
+   
+   public Object around5(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Target Object target, @Caller SuperClass caller,
+         @Args Object[] args) throws Throwable
+   {
+      around5 = "MethodCalledByMethodInvocation,Object,SuperClass,Object[]";
+      return invocation.invokeNext();
+   }
+   
+   public Object around5(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller) throws Throwable
+   {
+      around5 = "MethodCalledByMethodInvocation,OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller";
+      return invocation.invokeNext();
+   }
+   
+   public Object around5(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Target OverloadedAdvicePOJO target, @Caller SuperClass caller)
+      throws Throwable
+   {
+      around5 = "MethodCalledByMethodInvocation,OverloadedAdvicePOJO,SuperClass";
+      return invocation.invokeNext();
+   }
+   
+   public Object around5(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Target Object target, @Caller OverloadedAdvicePOJOCaller caller)
+      throws Throwable
+   {
+      around5 = "MethodCalledByMethodInvocation,Object,OverloadedAdvicePOJOCaller";
+      return invocation.invokeNext();
+   }
+   
+   public Object around5(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Target Object target, @Caller SuperClass caller) throws Throwable
+   {
+      around5 = "MethodCalledByMethodInvocation,Object,SuperClass";
+      return invocation.invokeNext();
+   }
+   
+   public Object around5(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Target OverloadedAdvicePOJO target, @Arg int arg) throws Throwable
+   {
+      around5 = "MethodCalledByMethodInvocation,OverloadedAdvicePOJO,int";
+      return invocation.invokeNext();
+   }
+   
+   public Object around5(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Target Object target, @Arg int arg) throws Throwable
+   {
+      around5 = "MethodCalledByMethodInvocation,Object,int";
+      return invocation.invokeNext();
+   }
+   
+   public Object around5(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Target OverloadedAdvicePOJO target, @Args Object[] args) throws Throwable
+   {
+      around5 = "MethodCalledByMethodInvocation,OverloadedAdvicePOJO,Object[]";
+      return invocation.invokeNext();
+   }
+   
+   public Object around5(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Target Object target, @Args Object[] args) throws Throwable
+   {
+      around5 = "MethodCalledByMethodInvocation,Object,Object[]";
+      return invocation.invokeNext();
+   }
+   
+   public Object around5(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Caller OverloadedAdvicePOJOCaller caller, @Arg int arg) throws Throwable
+   {
+      around5 = "MethodCalledByMethodInvocation,OverloadedAdvicePOJOCaller,int";
+      return invocation.invokeNext();
+   }
+   
+   public Object around5(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Caller SuperClass caller, @Arg int arg) throws Throwable
+   {
+      around5 = "MethodCalledByMethodInvocation,SuperClass,int";
+      return invocation.invokeNext();
+   }
+   
+   public Object around5(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Caller OverloadedAdvicePOJOCaller caller, @Args Object[] args)
+      throws Throwable
+   {
+      around5 = "MethodCalledByMethodInvocation,OverloadedAdvicePOJOCaller,Object[]";
+      return invocation.invokeNext();
+   }
+   
+   public Object around5(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Caller SuperClass caller, @Args Object[] args) throws Throwable
+   {
+      around5 = "MethodCalledByMethodInvocation,SuperClass,Object[]";
+      return invocation.invokeNext();
+   }
+   
+   public Object around5(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Arg int arg) throws Throwable
+   {
+      around5 = "MethodCalledByMethodInvocation,int";
+      return invocation.invokeNext();
+   }
+   
+   public Object around5(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Args Object[] args) throws Throwable
+   {
+      around5 = "MethodCalledByMethodInvocation,Object[]";
+      return invocation.invokeNext();
+   }
+   
+   public Object around5(@JoinPoint MethodCalledByMethodInvocation invocation)
+      throws Throwable
+   {
+      around5= "MethodCalledByMethodInvocation";
+      return invocation.invokeNext();
+   }
+   
+   public Object around5(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Arg int arg) throws Throwable
+   {
+      around5 = "OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around5(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Arg int arg) throws Throwable
+   {
+      around5 = "OverloadedAdvicePOJO,SuperClass,int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around5(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Arg int arg) throws Throwable
+   {
+      around5 = "Object,OverloadedAdvicePOJOCaller,int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around5(@Target Object target, @Caller SuperClass caller,
+         @Arg int arg) throws Throwable
+   {
+      around5 = "Object,SuperClass,int";
+      return CurrentInvocation.proceed();
+   }
+ 
+   public Object around5(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Args Object[] args)
+      throws Throwable
+   {
+      around5 = "OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around5(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Args Object[] args) throws Throwable
+   {
+      around5 = "OverloadedAdvicePOJO,SuperClass,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around5(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Args Object[] args)
+      throws Throwable
+   {
+      around5 = "Object,OverloadedAdvicePOJOCaller,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around5(@Target Object target, @Caller SuperClass caller,
+         @Args Object[] args) throws Throwable
+   {
+      around5 = "Object,SuperClass,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around5(@Target OverloadedAdvicePOJO target, @Arg int arg)
+      throws Throwable
+   {
+      around5 = "OverloadedAdvicePOJO,int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around5(@Target Object target, @Arg int arg) throws Throwable
+   {
+      around5 = "Object,int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around5(@Target OverloadedAdvicePOJO target, @Args Object[] args)
+      throws Throwable
+   {
+      around5 = "OverloadedAdvicePOJO,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around5(@Target Object target, @Args Object[] args) throws Throwable
+   {
+      around5 = "Object,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around5(@Target OverloadedAdvicePOJO target) throws Throwable
+   {
+      around5 = "OverloadedAdvicePOJO";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around5(@Target Object target) throws Throwable
+   {
+      around5 = "Object";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around5(@Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+      throws Throwable
+   {
+      around5 = "OverloadedAdvicePOJOCaller,int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around5(@Caller SuperClass caller, @Arg int arg) throws Throwable
+   {
+      around5 = "SuperClass,int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around5(@Caller OverloadedAdvicePOJOCaller caller,
+         @Args Object[] args) throws Throwable
+   {
+      around5 = "OverloadedAdvicePOJOCaller,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around5(@Caller SuperClass caller, @Args Object[] args)
+      throws Throwable
+   {
+      around5 = "SuperClass,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around5(@Caller OverloadedAdvicePOJOCaller caller) throws Throwable
+   {
+      around5 = "OverloadedAdvicePOJOCaller";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around5(@Caller SuperClass caller) throws Throwable
+   {
+      around5 = "SuperClass";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around5(@Arg int arg) throws Throwable
+   {
+      around5 = "int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around5(@Args Object[] args) throws Throwable
+   {
+      around5 = "Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around5(@Arg int arg, @Args Object[] args) throws Throwable
+   {
+      Assert.fail("This advice should never be executed");
+      return CurrentInvocation.proceed();
+   }
+   
+   /* AROUND6 ADVICE */
+   
+   public Object around6(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Args Object[] args)
+      throws Throwable
+   {
+      around6 = "MethodCalledByMethodInvocation,OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,Object[]";
+      return invocation.invokeNext();
+   }
+   
+   public Object around6(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Target OverloadedAdvicePOJO target, @Caller SuperClass caller,
+         @Args Object[] args) throws Throwable
+   {
+      around6 = "MethodCalledByMethodInvocation,OverloadedAdvicePOJO,SuperClass,Object[]";
+      return invocation.invokeNext();
+   }
+   
+   public Object around6(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Target Object target, @Caller OverloadedAdvicePOJOCaller caller,
+         @Args Object[] args) throws Throwable
+   {
+      around6 = "MethodCalledByMethodInvocation,Object,OverloadedAdvicePOJOCaller,Object[]";
+      return invocation.invokeNext();
+   }
+   
+   public Object around6(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Target Object target, @Caller SuperClass caller,
+         @Args Object[] args) throws Throwable
+   {
+      around6 = "MethodCalledByMethodInvocation,Object,SuperClass,Object[]";
+      return invocation.invokeNext();
+   }
+   
+   public Object around6(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller) throws Throwable
+   {
+      around6 = "MethodCalledByMethodInvocation,OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller";
+      return invocation.invokeNext();
+   }
+   
+   public Object around6(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Target OverloadedAdvicePOJO target, @Caller SuperClass caller) throws Throwable
+   {
+      around6 = "MethodCalledByMethodInvocation,OverloadedAdvicePOJO,SuperClass";
+      return invocation.invokeNext();
+   }
+   
+   public Object around6(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Target Object target, @Caller OverloadedAdvicePOJOCaller caller)
+      throws Throwable
+   {
+      around6 = "MethodCalledByMethodInvocation,Object,OverloadedAdvicePOJOCaller";
+      return invocation.invokeNext();
+   }
+   
+   public Object around6(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Target Object target, @Caller SuperClass caller) throws Throwable
+   {
+      around6 = "MethodCalledByMethodInvocation,Object,SuperClass";
+      return invocation.invokeNext();
+   }
+   
+   public Object around6(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Target OverloadedAdvicePOJO target, @Arg int arg) throws Throwable
+   {
+      around6 = "MethodCalledByMethodInvocation,OverloadedAdvicePOJO,int";
+      return invocation.invokeNext();
+   }
+   
+   public Object around6(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Target Object target, @Arg int arg) throws Throwable
+   {
+      around6 = "MethodCalledByMethodInvocation,Object,int";
+      return invocation.invokeNext();
+   }
+   
+   public Object around6(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Target OverloadedAdvicePOJO target, @Args Object[] args) throws Throwable
+   {
+      around6 = "MethodCalledByMethodInvocation,OverloadedAdvicePOJO,Object[]";
+      return invocation.invokeNext();
+   }
+   
+   public Object around6(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Target Object target, @Args Object[] args) throws Throwable
+   {
+      around6 = "MethodCalledByMethodInvocation,Object,Object[]";
+      return invocation.invokeNext();
+   }
+   
+   public Object around6(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Caller OverloadedAdvicePOJOCaller caller, @Arg int arg) throws Throwable
+   {
+      around6 = "MethodCalledByMethodInvocation,OverloadedAdvicePOJOCaller,int";
+      return invocation.invokeNext();
+   }
+   
+   public Object around6(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Caller SuperClass caller, @Arg int arg) throws Throwable
+   {
+      around6 = "MethodCalledByMethodInvocation,SuperClass,int";
+      return invocation.invokeNext();
+   }
+   
+   public Object around6(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Caller OverloadedAdvicePOJOCaller caller, @Args Object[] args)
+      throws Throwable
+   {
+      around6 = "MethodCalledByMethodInvocation,OverloadedAdvicePOJOCaller,Object[]";
+      return invocation.invokeNext();
+   }
+   
+   public Object around6(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Caller SuperClass caller, @Args Object[] args) throws Throwable
+   {
+      around6 = "MethodCalledByMethodInvocation,SuperClass,Object[]";
+      return invocation.invokeNext();
+   }
+   
+   public Object around6(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Arg int arg) throws Throwable
+   {
+      around6 = "MethodCalledByMethodInvocation,int";
+      return invocation.invokeNext();
+   }
+   
+   public Object around6(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Args Object[] args) throws Throwable
+   {
+      around6 = "MethodCalledByMethodInvocation,Object[]";
+      return invocation.invokeNext();
+   }
+   
+   public Object around6(@JoinPoint MethodCalledByMethodInvocation invocation)
+      throws Throwable
+   {
+      around6= "MethodCalledByMethodInvocation";
+      return invocation.invokeNext();
+   }
+   
+   public Object around6(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Arg int arg) throws Throwable
+   {
+      around6 = "OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around6(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Arg int arg) throws Throwable
+   {
+      around6 = "OverloadedAdvicePOJO,SuperClass,int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around6(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Arg int arg) throws Throwable
+   {
+      around6 = "Object,OverloadedAdvicePOJOCaller,int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around6(@Target Object target, @Caller SuperClass caller,
+         @Arg int arg) throws Throwable
+   {
+      around6 = "Object,SuperClass,int";
+      return CurrentInvocation.proceed();
+   }
+ 
+   public Object around6(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Args Object[] args)
+      throws Throwable
+   {
+      around6 = "OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around6(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Args Object[] args) throws Throwable
+   {
+      around6 = "OverloadedAdvicePOJO,SuperClass,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around6(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Args Object[] args)
+      throws Throwable
+   {
+      around6 = "Object,OverloadedAdvicePOJOCaller,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around6(@Target Object target, @Caller SuperClass caller,
+         @Args Object[] args) throws Throwable
+   {
+      around6 = "Object,SuperClass,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around6(@Target OverloadedAdvicePOJO target, @Arg int arg)
+      throws Throwable
+   {
+      around6 = "OverloadedAdvicePOJO,int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around6(@Target Object target, @Arg int arg) throws Throwable
+   {
+      around6 = "Object,int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around6(@Target OverloadedAdvicePOJO target, @Args Object[] args)
+      throws Throwable
+   {
+      around6 = "OverloadedAdvicePOJO,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around6(@Target Object target, @Args Object[] args) throws Throwable
+   {
+      around6 = "Object,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around6(@Target OverloadedAdvicePOJO target) throws Throwable
+   {
+      around6 = "OverloadedAdvicePOJO";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around6(@Target Object target) throws Throwable
+   {
+      around6 = "Object";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around6(@Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+      throws Throwable
+   {
+      around6 = "OverloadedAdvicePOJOCaller,int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around6(@Caller SuperClass caller, @Arg int arg) throws Throwable
+   {
+      around6 = "SuperClass,int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around6(@Caller OverloadedAdvicePOJOCaller caller,
+         @Args Object[] args) throws Throwable
+   {
+      around6 = "OverloadedAdvicePOJOCaller,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around6(@Caller SuperClass caller, @Args Object[] args)
+      throws Throwable
+   {
+      around6 = "SuperClass,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around6(@Caller OverloadedAdvicePOJOCaller caller) throws Throwable
+   {
+      around6 = "OverloadedAdvicePOJOCaller";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around6(@Caller SuperClass caller) throws Throwable
+   {
+      around6 = "SuperClass";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around6(@Arg int arg) throws Throwable
+   {
+      around6 = "int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around6(@Args Object[] args) throws Throwable
+   {
+      around6 = "Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around6(@Arg int arg, @Args Object[] args) throws Throwable
+   {
+      Assert.fail("This advice should never be executed");
+      return CurrentInvocation.proceed();
+   }
+   
+   /* AROUND7 ADVICE */
+   
+   public Object around7(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Target OverloadedAdvicePOJO target, @Caller SuperClass caller,
+         @Args Object[] args) throws Throwable
+   {
+      around7 = "MethodCalledByMethodInvocation,OverloadedAdvicePOJO,SuperClass,Object[]";
+      return invocation.invokeNext();
+   }
+   
+   public Object around7(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Target Object target, @Caller OverloadedAdvicePOJOCaller caller,
+         @Args Object[] args) throws Throwable
+   {
+      around7 = "MethodCalledByMethodInvocation,Object,OverloadedAdvicePOJOCaller,Object[]";
+      return invocation.invokeNext();
+   }
+   
+   public Object around7(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Target Object target, @Caller SuperClass caller,
+         @Args Object[] args) throws Throwable
+   {
+      around7 = "MethodCalledByMethodInvocation,Object,SuperClass,Object[]";
+      return invocation.invokeNext();
+   }
+   
+   public Object around7(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller) throws Throwable
+   {
+      around7 = "MethodCalledByMethodInvocation,OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller";
+      return invocation.invokeNext();
+   }
+   
+   public Object around7(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Target OverloadedAdvicePOJO target, @Caller SuperClass caller)
+      throws Throwable
+   {
+      around7 = "MethodCalledByMethodInvocation,OverloadedAdvicePOJO,SuperClass";
+      return invocation.invokeNext();
+   }
+   
+   public Object around7(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Target Object target, @Caller OverloadedAdvicePOJOCaller caller)
+      throws Throwable
+   {
+      around7 = "MethodCalledByMethodInvocation,Object,OverloadedAdvicePOJOCaller";
+      return invocation.invokeNext();
+   }
+   
+   public Object around7(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Target Object target, @Caller SuperClass caller) throws Throwable
+   {
+      around7 = "MethodCalledByMethodInvocation,Object,SuperClass";
+      return invocation.invokeNext();
+   }
+   
+   public Object around7(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Target OverloadedAdvicePOJO target, @Arg int arg) throws Throwable
+   {
+      around7 = "MethodCalledByMethodInvocation,OverloadedAdvicePOJO,int";
+      return invocation.invokeNext();
+   }
+   
+   public Object around7(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Target Object target, @Arg int arg) throws Throwable
+   {
+      around7 = "MethodCalledByMethodInvocation,Object,int";
+      return invocation.invokeNext();
+   }
+   
+   public Object around7(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Target OverloadedAdvicePOJO target, @Args Object[] args) throws Throwable
+   {
+      around7 = "MethodCalledByMethodInvocation,OverloadedAdvicePOJO,Object[]";
+      return invocation.invokeNext();
+   }
+   
+   public Object around7(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Target Object target, @Args Object[] args) throws Throwable
+   {
+      around7 = "MethodCalledByMethodInvocation,Object,Object[]";
+      return invocation.invokeNext();
+   }
+   
+   public Object around7(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Caller OverloadedAdvicePOJOCaller caller, @Arg int arg) throws Throwable
+   {
+      around7 = "MethodCalledByMethodInvocation,OverloadedAdvicePOJOCaller,int";
+      return invocation.invokeNext();
+   }
+   
+   public Object around7(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Caller SuperClass caller, @Arg int arg) throws Throwable
+   {
+      around7 = "MethodCalledByMethodInvocation,SuperClass,int";
+      return invocation.invokeNext();
+   }
+   
+   public Object around7(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Caller OverloadedAdvicePOJOCaller caller, @Args Object[] args)
+      throws Throwable
+   {
+      around7 = "MethodCalledByMethodInvocation,OverloadedAdvicePOJOCaller,Object[]";
+      return invocation.invokeNext();
+   }
+   
+   public Object around7(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Caller SuperClass caller, @Args Object[] args) throws Throwable
+   {
+      around7 = "MethodCalledByMethodInvocation,SuperClass,Object[]";
+      return invocation.invokeNext();
+   }
+   
+   public Object around7(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Arg int arg) throws Throwable
+   {
+      around7 = "MethodCalledByMethodInvocation,int";
+      return invocation.invokeNext();
+   }
+   
+   public Object around7(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Args Object[] args) throws Throwable
+   {
+      around7 = "MethodCalledByMethodInvocation,Object[]";
+      return invocation.invokeNext();
+   }
+   
+   public Object around7(@JoinPoint MethodCalledByMethodInvocation invocation)
+      throws Throwable
+   {
+      around7= "MethodCalledByMethodInvocation";
+      return invocation.invokeNext();
+   }
+   
+   public Object around7(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Arg int arg) throws Throwable
+   {
+      around7 = "OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around7(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Arg int arg) throws Throwable
+   {
+      around7 = "OverloadedAdvicePOJO,SuperClass,int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around7(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Arg int arg) throws Throwable
+   {
+      around7 = "Object,OverloadedAdvicePOJOCaller,int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around7(@Target Object target, @Caller SuperClass caller,
+         @Arg int arg) throws Throwable
+   {
+      around7 = "Object,SuperClass,int";
+      return CurrentInvocation.proceed();
+   }
+ 
+   public Object around7(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Args Object[] args)
+      throws Throwable
+   {
+      around7 = "OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around7(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Args Object[] args) throws Throwable
+   {
+      around7 = "OverloadedAdvicePOJO,SuperClass,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around7(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Args Object[] args)
+      throws Throwable
+   {
+      around7 = "Object,OverloadedAdvicePOJOCaller,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around7(@Target Object target, @Caller SuperClass caller,
+         @Args Object[] args) throws Throwable
+   {
+      around7 = "Object,SuperClass,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around7(@Target OverloadedAdvicePOJO target, @Arg int arg)
+      throws Throwable
+   {
+      around7 = "OverloadedAdvicePOJO,int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around7(@Target Object target, @Arg int arg) throws Throwable
+   {
+      around7 = "Object,int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around7(@Target OverloadedAdvicePOJO target, @Args Object[] args)
+      throws Throwable
+   {
+      around7 = "OverloadedAdvicePOJO,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around7(@Target Object target, @Args Object[] args) throws Throwable
+   {
+      around7 = "Object,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around7(@Target OverloadedAdvicePOJO target) throws Throwable
+   {
+      around7 = "OverloadedAdvicePOJO";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around7(@Target Object target) throws Throwable
+   {
+      around7 = "Object";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around7(@Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+      throws Throwable
+   {
+      around7 = "OverloadedAdvicePOJOCaller,int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around7(@Caller SuperClass caller, @Arg int arg) throws Throwable
+   {
+      around7 = "SuperClass,int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around7(@Caller OverloadedAdvicePOJOCaller caller,
+         @Args Object[] args) throws Throwable
+   {
+      around7 = "OverloadedAdvicePOJOCaller,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around7(@Caller SuperClass caller, @Args Object[] args)
+      throws Throwable
+   {
+      around7 = "SuperClass,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around7(@Caller OverloadedAdvicePOJOCaller caller) throws Throwable
+   {
+      around7 = "OverloadedAdvicePOJOCaller";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around7(@Caller SuperClass caller) throws Throwable
+   {
+      around7 = "SuperClass";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around7(@Arg int arg) throws Throwable
+   {
+      around7 = "int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around7(@Args Object[] args) throws Throwable
+   {
+      around7 = "Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around7(@Arg int arg, @Args Object[] args) throws Throwable
+   {
+      Assert.fail("This advice should never be executed");
+      return CurrentInvocation.proceed();
+   }
+   
+   /* AROUND8 ADVICE */
+   
+   public Object around8(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Target Object target, @Caller OverloadedAdvicePOJOCaller caller,
+         @Args Object[] args) throws Throwable
+   {
+      around8 = "MethodCalledByMethodInvocation,Object,OverloadedAdvicePOJOCaller,Object[]";
+      return invocation.invokeNext();
+   }
+   
+   public Object around8(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Target Object target, @Caller SuperClass caller,
+         @Args Object[] args) throws Throwable
+   {
+      around8 = "MethodCalledByMethodInvocation,Object,SuperClass,Object[]";
+      return invocation.invokeNext();
+   }
+   
+   public Object around8(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller) throws Throwable
+   {
+      around8 = "MethodCalledByMethodInvocation,OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller";
+      return invocation.invokeNext();
+   }
+   
+   public Object around8(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Target OverloadedAdvicePOJO target, @Caller SuperClass caller)
+      throws Throwable
+   {
+      around8 = "MethodCalledByMethodInvocation,OverloadedAdvicePOJO,SuperClass";
+      return invocation.invokeNext();
+   }
+   
+   public Object around8(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Target Object target, @Caller OverloadedAdvicePOJOCaller caller)
+      throws Throwable
+   {
+      around8 = "MethodCalledByMethodInvocation,Object,OverloadedAdvicePOJOCaller";
+      return invocation.invokeNext();
+   }
+   
+   public Object around8(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Target Object target, @Caller SuperClass caller) throws Throwable
+   {
+      around8 = "MethodCalledByMethodInvocation,Object,SuperClass";
+      return invocation.invokeNext();
+   }
+   
+   public Object around8(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Target OverloadedAdvicePOJO target, @Arg int arg) throws Throwable
+   {
+      around8 = "MethodCalledByMethodInvocation,OverloadedAdvicePOJO,int";
+      return invocation.invokeNext();
+   }
+   
+   public Object around8(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Target Object target, @Arg int arg) throws Throwable
+   {
+      around8 = "MethodCalledByMethodInvocation,Object,int";
+      return invocation.invokeNext();
+   }
+   
+   public Object around8(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Target OverloadedAdvicePOJO target, @Args Object[] args) throws Throwable
+   {
+      around8 = "MethodCalledByMethodInvocation,OverloadedAdvicePOJO,Object[]";
+      return invocation.invokeNext();
+   }
+   
+   public Object around8(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Target Object target, @Args Object[] args) throws Throwable
+   {
+      around8 = "MethodCalledByMethodInvocation,Object,Object[]";
+      return invocation.invokeNext();
+   }
+   
+   public Object around8(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Caller OverloadedAdvicePOJOCaller caller, @Arg int arg) throws Throwable
+   {
+      around8 = "MethodCalledByMethodInvocation,OverloadedAdvicePOJOCaller,int";
+      return invocation.invokeNext();
+   }
+   
+   public Object around8(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Caller SuperClass caller, @Arg int arg) throws Throwable
+   {
+      around8 = "MethodCalledByMethodInvocation,SuperClass,int";
+      return invocation.invokeNext();
+   }
+   
+   public Object around8(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Caller OverloadedAdvicePOJOCaller caller, @Args Object[] args)
+      throws Throwable
+   {
+      around8 = "MethodCalledByMethodInvocation,OverloadedAdvicePOJOCaller,Object[]";
+      return invocation.invokeNext();
+   }
+   
+   public Object around8(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Caller SuperClass caller, @Args Object[] args) throws Throwable
+   {
+      around8 = "MethodCalledByMethodInvocation,SuperClass,Object[]";
+      return invocation.invokeNext();
+   }
+   
+   public Object around8(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Arg int arg) throws Throwable
+   {
+      around8 = "MethodCalledByMethodInvocation,int";
+      return invocation.invokeNext();
+   }
+   
+   public Object around8(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Args Object[] args) throws Throwable
+   {
+      around8 = "MethodCalledByMethodInvocation,Object[]";
+      return invocation.invokeNext();
+   }
+   
+   public Object around8(@JoinPoint MethodCalledByMethodInvocation invocation)
+      throws Throwable
+   {
+      around8= "MethodCalledByMethodInvocation";
+      return invocation.invokeNext();
+   }
+   
+   public Object around8(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Arg int arg) throws Throwable
+   {
+      around8 = "OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around8(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Arg int arg) throws Throwable
+   {
+      around8 = "OverloadedAdvicePOJO,SuperClass,int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around8(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Arg int arg) throws Throwable
+   {
+      around8 = "Object,OverloadedAdvicePOJOCaller,int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around8(@Target Object target, @Caller SuperClass caller,
+         @Arg int arg) throws Throwable
+   {
+      around8 = "Object,SuperClass,int";
+      return CurrentInvocation.proceed();
+   }
+ 
+   public Object around8(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Args Object[] args)
+      throws Throwable
+   {
+      around8 = "OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around8(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Args Object[] args) throws Throwable
+   {
+      around8 = "OverloadedAdvicePOJO,SuperClass,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around8(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Args Object[] args)
+      throws Throwable
+   {
+      around8 = "Object,OverloadedAdvicePOJOCaller,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around8(@Target Object target, @Caller SuperClass caller,
+         @Args Object[] args) throws Throwable
+   {
+      around8 = "Object,SuperClass,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around8(@Target OverloadedAdvicePOJO target, @Arg int arg)
+      throws Throwable
+   {
+      around8 = "OverloadedAdvicePOJO,int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around8(@Target Object target, @Arg int arg) throws Throwable
+   {
+      around8 = "Object,int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around8(@Target OverloadedAdvicePOJO target, @Args Object[] args)
+      throws Throwable
+   {
+      around8 = "OverloadedAdvicePOJO,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around8(@Target Object target, @Args Object[] args) throws Throwable
+   {
+      around8 = "Object,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around8(@Target OverloadedAdvicePOJO target) throws Throwable
+   {
+      around8 = "OverloadedAdvicePOJO";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around8(@Target Object target) throws Throwable
+   {
+      around8 = "Object";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around8(@Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+      throws Throwable
+   {
+      around8 = "OverloadedAdvicePOJOCaller,int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around8(@Caller SuperClass caller, @Arg int arg) throws Throwable
+   {
+      around8 = "SuperClass,int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around8(@Caller OverloadedAdvicePOJOCaller caller,
+         @Args Object[] args) throws Throwable
+   {
+      around8 = "OverloadedAdvicePOJOCaller,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around8(@Caller SuperClass caller, @Args Object[] args)
+      throws Throwable
+   {
+      around8 = "SuperClass,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around8(@Caller OverloadedAdvicePOJOCaller caller) throws Throwable
+   {
+      around8 = "OverloadedAdvicePOJOCaller";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around8(@Caller SuperClass caller) throws Throwable
+   {
+      around8 = "SuperClass";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around8(@Arg int arg) throws Throwable
+   {
+      around8 = "int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around8(@Args Object[] args) throws Throwable
+   {
+      around8 = "Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around8(@Arg int arg, @Args Object[] args) throws Throwable
+   {
+      Assert.fail("This advice should never be executed");
+      return CurrentInvocation.proceed();
+   }
+   
+   /* AROUND9 ADVICE */
+   
+   public Object around9(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Target Object target, @Caller SuperClass caller,
+         @Args Object[] args) throws Throwable
+   {
+      around9 = "MethodCalledByMethodInvocation,Object,SuperClass,Object[]";
+      return invocation.invokeNext();
+   }
+   
+   public Object around9(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller) throws Throwable
+   {
+      around9 = "MethodCalledByMethodInvocation,OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller";
+      return invocation.invokeNext();
+   }
+   
+   public Object around9(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Target OverloadedAdvicePOJO target, @Caller SuperClass caller)
+      throws Throwable
+   {
+      around9 = "MethodCalledByMethodInvocation,OverloadedAdvicePOJO,SuperClass";
+      return invocation.invokeNext();
+   }
+   
+   public Object around9(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Target Object target, @Caller OverloadedAdvicePOJOCaller caller)
+      throws Throwable
+   {
+      around9 = "MethodCalledByMethodInvocation,Object,OverloadedAdvicePOJOCaller";
+      return invocation.invokeNext();
+   }
+   
+   public Object around9(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Target Object target, @Caller SuperClass caller) throws Throwable
+   {
+      around9 = "MethodCalledByMethodInvocation,Object,SuperClass";
+      return invocation.invokeNext();
+   }
+   
+   public Object around9(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Target OverloadedAdvicePOJO target, @Arg int arg) throws Throwable
+   {
+      around9 = "MethodCalledByMethodInvocation,OverloadedAdvicePOJO,int";
+      return invocation.invokeNext();
+   }
+   
+   public Object around9(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Target Object target, @Arg int arg) throws Throwable
+   {
+      around9 = "MethodCalledByMethodInvocation,Object,int";
+      return invocation.invokeNext();
+   }
+   
+   public Object around9(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Target OverloadedAdvicePOJO target, @Args Object[] args) throws Throwable
+   {
+      around9 = "MethodCalledByMethodInvocation,OverloadedAdvicePOJO,Object[]";
+      return invocation.invokeNext();
+   }
+   
+   public Object around9(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Target Object target, @Args Object[] args) throws Throwable
+   {
+      around9 = "MethodCalledByMethodInvocation,Object,Object[]";
+      return invocation.invokeNext();
+   }
+   
+   public Object around9(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Caller OverloadedAdvicePOJOCaller caller, @Arg int arg) throws Throwable
+   {
+      around9 = "MethodCalledByMethodInvocation,OverloadedAdvicePOJOCaller,int";
+      return invocation.invokeNext();
+   }
+   
+   public Object around9(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Caller SuperClass caller, @Arg int arg) throws Throwable
+   {
+      around9 = "MethodCalledByMethodInvocation,SuperClass,int";
+      return invocation.invokeNext();
+   }
+   
+   public Object around9(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Caller OverloadedAdvicePOJOCaller caller, @Args Object[] args)
+      throws Throwable
+   {
+      around9 = "MethodCalledByMethodInvocation,OverloadedAdvicePOJOCaller,Object[]";
+      return invocation.invokeNext();
+   }
+   
+   public Object around9(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Caller SuperClass caller, @Args Object[] args) throws Throwable
+   {
+      around9 = "MethodCalledByMethodInvocation,SuperClass,Object[]";
+      return invocation.invokeNext();
+   }
+   
+   public Object around9(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Arg int arg) throws Throwable
+   {
+      around9 = "MethodCalledByMethodInvocation,int";
+      return invocation.invokeNext();
+   }
+   
+   public Object around9(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Args Object[] args) throws Throwable
+   {
+      around9 = "MethodCalledByMethodInvocation,Object[]";
+      return invocation.invokeNext();
+   }
+   
+   public Object around9(@JoinPoint MethodCalledByMethodInvocation invocation)
+      throws Throwable
+   {
+      around9= "MethodCalledByMethodInvocation";
+      return invocation.invokeNext();
+   }
+   
+   public Object around9(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Arg int arg) throws Throwable
+   {
+      around9 = "OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around9(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Arg int arg) throws Throwable
+   {
+      around9 = "OverloadedAdvicePOJO,SuperClass,int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around9(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Arg int arg) throws Throwable
+   {
+      around9 = "Object,OverloadedAdvicePOJOCaller,int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around9(@Target Object target, @Caller SuperClass caller,
+         @Arg int arg) throws Throwable
+   {
+      around9 = "Object,SuperClass,int";
+      return CurrentInvocation.proceed();
+   }
+ 
+   public Object around9(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Args Object[] args)
+      throws Throwable
+   {
+      around9 = "OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around9(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Args Object[] args) throws Throwable
+   {
+      around9 = "OverloadedAdvicePOJO,SuperClass,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around9(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Args Object[] args)
+      throws Throwable
+   {
+      around9 = "Object,OverloadedAdvicePOJOCaller,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around9(@Target Object target, @Caller SuperClass caller,
+         @Args Object[] args) throws Throwable
+   {
+      around9 = "Object,SuperClass,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around9(@Target OverloadedAdvicePOJO target, @Arg int arg)
+      throws Throwable
+   {
+      around9 = "OverloadedAdvicePOJO,int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around9(@Target Object target, @Arg int arg) throws Throwable
+   {
+      around9 = "Object,int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around9(@Target OverloadedAdvicePOJO target, @Args Object[] args)
+      throws Throwable
+   {
+      around9 = "OverloadedAdvicePOJO,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around9(@Target Object target, @Args Object[] args) throws Throwable
+   {
+      around9 = "Object,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around9(@Target OverloadedAdvicePOJO target) throws Throwable
+   {
+      around9 = "OverloadedAdvicePOJO";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around9(@Target Object target) throws Throwable
+   {
+      around9 = "Object";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around9(@Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+      throws Throwable
+   {
+      around9 = "OverloadedAdvicePOJOCaller,int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around9(@Caller SuperClass caller, @Arg int arg) throws Throwable
+   {
+      around9 = "SuperClass,int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around9(@Caller OverloadedAdvicePOJOCaller caller,
+         @Args Object[] args) throws Throwable
+   {
+      around9 = "OverloadedAdvicePOJOCaller,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around9(@Caller SuperClass caller, @Args Object[] args)
+      throws Throwable
+   {
+      around9 = "SuperClass,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around9(@Caller OverloadedAdvicePOJOCaller caller) throws Throwable
+   {
+      around9 = "OverloadedAdvicePOJOCaller";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around9(@Caller SuperClass caller) throws Throwable
+   {
+      around9 = "SuperClass";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around9(@Arg int arg) throws Throwable
+   {
+      around9 = "int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around9(@Args Object[] args) throws Throwable
+   {
+      around9 = "Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around9(@Arg int arg, @Args Object[] args) throws Throwable
+   {
+      Assert.fail("This advice should never be executed");
+      return CurrentInvocation.proceed();
+   }
+   
+   /* AROUND10 ADVICE */
+   
+   public Object around10(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller) throws Throwable
+   {
+      around10 = "MethodCalledByMethodInvocation,OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller";
+      return invocation.invokeNext();
+   }
+   
+   public Object around10(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Target OverloadedAdvicePOJO target, @Caller SuperClass caller)
+      throws Throwable
+   {
+      around10 = "MethodCalledByMethodInvocation,OverloadedAdvicePOJO,SuperClass";
+      return invocation.invokeNext();
+   }
+   
+   public Object around10(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Target Object target, @Caller OverloadedAdvicePOJOCaller caller)
+      throws Throwable
+   {
+      around10 = "MethodCalledByMethodInvocation,Object,OverloadedAdvicePOJOCaller";
+      return invocation.invokeNext();
+   }
+   
+   public Object around10(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Target Object target, @Caller SuperClass caller) throws Throwable
+   {
+      around10 = "MethodCalledByMethodInvocation,Object,SuperClass";
+      return invocation.invokeNext();
+   }
+   
+   public Object around10(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Target OverloadedAdvicePOJO target, @Arg int arg) throws Throwable
+   {
+      around10 = "MethodCalledByMethodInvocation,OverloadedAdvicePOJO,int";
+      return invocation.invokeNext();
+   }
+   
+   public Object around10(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Target Object target, @Arg int arg) throws Throwable
+   {
+      around10 = "MethodCalledByMethodInvocation,Object,int";
+      return invocation.invokeNext();
+   }
+   
+   public Object around10(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Target OverloadedAdvicePOJO target, @Args Object[] args) throws Throwable
+   {
+      around10 = "MethodCalledByMethodInvocation,OverloadedAdvicePOJO,Object[]";
+      return invocation.invokeNext();
+   }
+   
+   public Object around10(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Target Object target, @Args Object[] args) throws Throwable
+   {
+      around10 = "MethodCalledByMethodInvocation,Object,Object[]";
+      return invocation.invokeNext();
+   }
+   
+   public Object around10(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Caller OverloadedAdvicePOJOCaller caller, @Arg int arg) throws Throwable
+   {
+      around10 = "MethodCalledByMethodInvocation,OverloadedAdvicePOJOCaller,int";
+      return invocation.invokeNext();
+   }
+   
+   public Object around10(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Caller SuperClass caller, @Arg int arg) throws Throwable
+   {
+      around10 = "MethodCalledByMethodInvocation,SuperClass,int";
+      return invocation.invokeNext();
+   }
+   
+   public Object around10(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Caller OverloadedAdvicePOJOCaller caller, @Args Object[] args)
+      throws Throwable
+   {
+      around10 = "MethodCalledByMethodInvocation,OverloadedAdvicePOJOCaller,Object[]";
+      return invocation.invokeNext();
+   }
+   
+   public Object around10(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Caller SuperClass caller, @Args Object[] args) throws Throwable
+   {
+      around10 = "MethodCalledByMethodInvocation,SuperClass,Object[]";
+      return invocation.invokeNext();
+   }
+   
+   public Object around10(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Arg int arg) throws Throwable
+   {
+      around10 = "MethodCalledByMethodInvocation,int";
+      return invocation.invokeNext();
+   }
+   
+   public Object around10(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Args Object[] args) throws Throwable
+   {
+      around10 = "MethodCalledByMethodInvocation,Object[]";
+      return invocation.invokeNext();
+   }
+   
+   public Object around10(@JoinPoint MethodCalledByMethodInvocation invocation)
+      throws Throwable
+   {
+      around10= "MethodCalledByMethodInvocation";
+      return invocation.invokeNext();
+   }
+   
+   public Object around10(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Arg int arg) throws Throwable
+   {
+      around10 = "OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around10(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Arg int arg) throws Throwable
+   {
+      around10 = "OverloadedAdvicePOJO,SuperClass,int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around10(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Arg int arg) throws Throwable
+   {
+      around10 = "Object,OverloadedAdvicePOJOCaller,int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around10(@Target Object target, @Caller SuperClass caller,
+         @Arg int arg) throws Throwable
+   {
+      around10 = "Object,SuperClass,int";
+      return CurrentInvocation.proceed();
+   }
+ 
+   public Object around10(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Args Object[] args)
+      throws Throwable
+   {
+      around10 = "OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around10(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Args Object[] args) throws Throwable
+   {
+      around10 = "OverloadedAdvicePOJO,SuperClass,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around10(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Args Object[] args)
+      throws Throwable
+   {
+      around10 = "Object,OverloadedAdvicePOJOCaller,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around10(@Target Object target, @Caller SuperClass caller,
+         @Args Object[] args) throws Throwable
+   {
+      around10 = "Object,SuperClass,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around10(@Target OverloadedAdvicePOJO target, @Arg int arg)
+      throws Throwable
+   {
+      around10 = "OverloadedAdvicePOJO,int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around10(@Target Object target, @Arg int arg) throws Throwable
+   {
+      around10 = "Object,int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around10(@Target OverloadedAdvicePOJO target, @Args Object[] args)
+      throws Throwable
+   {
+      around10 = "OverloadedAdvicePOJO,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around10(@Target Object target, @Args Object[] args) throws Throwable
+   {
+      around10 = "Object,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around10(@Target OverloadedAdvicePOJO target) throws Throwable
+   {
+      around10 = "OverloadedAdvicePOJO";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around10(@Target Object target) throws Throwable
+   {
+      around10 = "Object";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around10(@Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+      throws Throwable
+   {
+      around10 = "OverloadedAdvicePOJOCaller,int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around10(@Caller SuperClass caller, @Arg int arg) throws Throwable
+   {
+      around10 = "SuperClass,int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around10(@Caller OverloadedAdvicePOJOCaller caller,
+         @Args Object[] args) throws Throwable
+   {
+      around10 = "OverloadedAdvicePOJOCaller,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around10(@Caller SuperClass caller, @Args Object[] args)
+      throws Throwable
+   {
+      around10 = "SuperClass,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around10(@Caller OverloadedAdvicePOJOCaller caller) throws Throwable
+   {
+      around10 = "OverloadedAdvicePOJOCaller";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around10(@Caller SuperClass caller) throws Throwable
+   {
+      around10 = "SuperClass";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around10(@Arg int arg) throws Throwable
+   {
+      around10 = "int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around10(@Args Object[] args) throws Throwable
+   {
+      around10 = "Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around10(@Arg int arg, @Args Object[] args) throws Throwable
+   {
+      Assert.fail("This advice should never be executed");
+      return CurrentInvocation.proceed();
+   }
+   
+   /* AROUND11 ADVICE */
+   
+   public Object around11(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Target OverloadedAdvicePOJO target, @Caller SuperClass caller)
+      throws Throwable
+   {
+      around11 = "MethodCalledByMethodInvocation,OverloadedAdvicePOJO,SuperClass";
+      return invocation.invokeNext();
+   }
+   
+   public Object around11(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Target Object target, @Caller OverloadedAdvicePOJOCaller caller)
+      throws Throwable
+   {
+      around11 = "MethodCalledByMethodInvocation,Object,OverloadedAdvicePOJOCaller";
+      return invocation.invokeNext();
+   }
+   
+   public Object around11(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Target Object target, @Caller SuperClass caller) throws Throwable
+   {
+      around11 = "MethodCalledByMethodInvocation,Object,SuperClass";
+      return invocation.invokeNext();
+   }
+   
+   public Object around11(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Target OverloadedAdvicePOJO target, @Arg int arg) throws Throwable
+   {
+      around11 = "MethodCalledByMethodInvocation,OverloadedAdvicePOJO,int";
+      return invocation.invokeNext();
+   }
+   
+   public Object around11(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Target Object target, @Arg int arg) throws Throwable
+   {
+      around11 = "MethodCalledByMethodInvocation,Object,int";
+      return invocation.invokeNext();
+   }
+   
+   public Object around11(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Target OverloadedAdvicePOJO target, @Args Object[] args) throws Throwable
+   {
+      around11 = "MethodCalledByMethodInvocation,OverloadedAdvicePOJO,Object[]";
+      return invocation.invokeNext();
+   }
+   
+   public Object around11(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Target Object target, @Args Object[] args) throws Throwable
+   {
+      around11 = "MethodCalledByMethodInvocation,Object,Object[]";
+      return invocation.invokeNext();
+   }
+   
+   public Object around11(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Caller OverloadedAdvicePOJOCaller caller, @Arg int arg) throws Throwable
+   {
+      around11 = "MethodCalledByMethodInvocation,OverloadedAdvicePOJOCaller,int";
+      return invocation.invokeNext();
+   }
+   
+   public Object around11(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Caller SuperClass caller, @Arg int arg) throws Throwable
+   {
+      around11 = "MethodCalledByMethodInvocation,SuperClass,int";
+      return invocation.invokeNext();
+   }
+   
+   public Object around11(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Caller OverloadedAdvicePOJOCaller caller, @Args Object[] args)
+      throws Throwable
+   {
+      around11 = "MethodCalledByMethodInvocation,OverloadedAdvicePOJOCaller,Object[]";
+      return invocation.invokeNext();
+   }
+   
+   public Object around11(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Caller SuperClass caller, @Args Object[] args) throws Throwable
+   {
+      around11 = "MethodCalledByMethodInvocation,SuperClass,Object[]";
+      return invocation.invokeNext();
+   }
+   
+   public Object around11(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Arg int arg) throws Throwable
+   {
+      around11 = "MethodCalledByMethodInvocation,int";
+      return invocation.invokeNext();
+   }
+   
+   public Object around11(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Args Object[] args) throws Throwable
+   {
+      around11 = "MethodCalledByMethodInvocation,Object[]";
+      return invocation.invokeNext();
+   }
+   
+   public Object around11(@JoinPoint MethodCalledByMethodInvocation invocation)
+      throws Throwable
+   {
+      around11= "MethodCalledByMethodInvocation";
+      return invocation.invokeNext();
+   }
+   
+   public Object around11(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Arg int arg) throws Throwable
+   {
+      around11 = "OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around11(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Arg int arg) throws Throwable
+   {
+      around11 = "OverloadedAdvicePOJO,SuperClass,int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around11(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Arg int arg) throws Throwable
+   {
+      around11 = "Object,OverloadedAdvicePOJOCaller,int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around11(@Target Object target, @Caller SuperClass caller,
+         @Arg int arg) throws Throwable
+   {
+      around11 = "Object,SuperClass,int";
+      return CurrentInvocation.proceed();
+   }
+ 
+   public Object around11(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Args Object[] args)
+      throws Throwable
+   {
+      around11 = "OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around11(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Args Object[] args) throws Throwable
+   {
+      around11 = "OverloadedAdvicePOJO,SuperClass,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around11(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Args Object[] args)
+      throws Throwable
+   {
+      around11 = "Object,OverloadedAdvicePOJOCaller,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around11(@Target Object target, @Caller SuperClass caller,
+         @Args Object[] args) throws Throwable
+   {
+      around11 = "Object,SuperClass,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around11(@Target OverloadedAdvicePOJO target, @Arg int arg)
+      throws Throwable
+   {
+      around11 = "OverloadedAdvicePOJO,int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around11(@Target Object target, @Arg int arg) throws Throwable
+   {
+      around11 = "Object,int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around11(@Target OverloadedAdvicePOJO target, @Args Object[] args)
+      throws Throwable
+   {
+      around11 = "OverloadedAdvicePOJO,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around11(@Target Object target, @Args Object[] args) throws Throwable
+   {
+      around11 = "Object,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around11(@Target OverloadedAdvicePOJO target) throws Throwable
+   {
+      around11 = "OverloadedAdvicePOJO";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around11(@Target Object target) throws Throwable
+   {
+      around11 = "Object";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around11(@Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+      throws Throwable
+   {
+      around11 = "OverloadedAdvicePOJOCaller,int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around11(@Caller SuperClass caller, @Arg int arg) throws Throwable
+   {
+      around11 = "SuperClass,int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around11(@Caller OverloadedAdvicePOJOCaller caller,
+         @Args Object[] args) throws Throwable
+   {
+      around11 = "OverloadedAdvicePOJOCaller,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around11(@Caller SuperClass caller, @Args Object[] args)
+      throws Throwable
+   {
+      around11 = "SuperClass,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around11(@Caller OverloadedAdvicePOJOCaller caller) throws Throwable
+   {
+      around11 = "OverloadedAdvicePOJOCaller";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around11(@Caller SuperClass caller) throws Throwable
+   {
+      around11 = "SuperClass";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around11(@Arg int arg) throws Throwable
+   {
+      around11 = "int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around11(@Args Object[] args) throws Throwable
+   {
+      around11 = "Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around11(@Arg int arg, @Args Object[] args) throws Throwable
+   {
+      Assert.fail("This advice should never be executed");
+      return CurrentInvocation.proceed();
+   }
+   
+   /* AROUND12 ADVICE */
+   
+   public Object around12(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Target Object target, @Caller OverloadedAdvicePOJOCaller caller)
+      throws Throwable
+   {
+      around12 = "MethodCalledByMethodInvocation,Object,OverloadedAdvicePOJOCaller";
+      return invocation.invokeNext();
+   }
+   
+   public Object around12(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Target Object target, @Caller SuperClass caller) throws Throwable
+   {
+      around12 = "MethodCalledByMethodInvocation,Object,SuperClass";
+      return invocation.invokeNext();
+   }
+   
+   public Object around12(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Target OverloadedAdvicePOJO target, @Arg int arg) throws Throwable
+   {
+      around12 = "MethodCalledByMethodInvocation,OverloadedAdvicePOJO,int";
+      return invocation.invokeNext();
+   }
+   
+   public Object around12(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Target Object target, @Arg int arg) throws Throwable
+   {
+      around12 = "MethodCalledByMethodInvocation,Object,int";
+      return invocation.invokeNext();
+   }
+   
+   public Object around12(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Target OverloadedAdvicePOJO target, @Args Object[] args) throws Throwable
+   {
+      around12 = "MethodCalledByMethodInvocation,OverloadedAdvicePOJO,Object[]";
+      return invocation.invokeNext();
+   }
+   
+   public Object around12(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Target Object target, @Args Object[] args) throws Throwable
+   {
+      around12 = "MethodCalledByMethodInvocation,Object,Object[]";
+      return invocation.invokeNext();
+   }
+   
+   public Object around12(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Caller OverloadedAdvicePOJOCaller caller, @Arg int arg) throws Throwable
+   {
+      around12 = "MethodCalledByMethodInvocation,OverloadedAdvicePOJOCaller,int";
+      return invocation.invokeNext();
+   }
+   
+   public Object around12(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Caller SuperClass caller, @Arg int arg) throws Throwable
+   {
+      around12 = "MethodCalledByMethodInvocation,SuperClass,int";
+      return invocation.invokeNext();
+   }
+   
+   public Object around12(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Caller OverloadedAdvicePOJOCaller caller, @Args Object[] args)
+      throws Throwable
+   {
+      around12 = "MethodCalledByMethodInvocation,OverloadedAdvicePOJOCaller,Object[]";
+      return invocation.invokeNext();
+   }
+   
+   public Object around12(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Caller SuperClass caller, @Args Object[] args) throws Throwable
+   {
+      around12 = "MethodCalledByMethodInvocation,SuperClass,Object[]";
+      return invocation.invokeNext();
+   }
+   
+   public Object around12(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Arg int arg) throws Throwable
+   {
+      around12 = "MethodCalledByMethodInvocation,int";
+      return invocation.invokeNext();
+   }
+   
+   public Object around12(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Args Object[] args) throws Throwable
+   {
+      around12 = "MethodCalledByMethodInvocation,Object[]";
+      return invocation.invokeNext();
+   }
+   
+   public Object around12(@JoinPoint MethodCalledByMethodInvocation invocation)
+      throws Throwable
+   {
+      around12= "MethodCalledByMethodInvocation";
+      return invocation.invokeNext();
+   }
+   
+   public Object around12(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Arg int arg) throws Throwable
+   {
+      around12 = "OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around12(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Arg int arg) throws Throwable
+   {
+      around12 = "OverloadedAdvicePOJO,SuperClass,int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around12(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Arg int arg) throws Throwable
+   {
+      around12 = "Object,OverloadedAdvicePOJOCaller,int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around12(@Target Object target, @Caller SuperClass caller,
+         @Arg int arg) throws Throwable
+   {
+      around12 = "Object,SuperClass,int";
+      return CurrentInvocation.proceed();
+   }
+ 
+   public Object around12(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Args Object[] args)
+      throws Throwable
+   {
+      around12 = "OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around12(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Args Object[] args) throws Throwable
+   {
+      around12 = "OverloadedAdvicePOJO,SuperClass,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around12(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Args Object[] args)
+      throws Throwable
+   {
+      around12 = "Object,OverloadedAdvicePOJOCaller,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around12(@Target Object target, @Caller SuperClass caller,
+         @Args Object[] args) throws Throwable
+   {
+      around12 = "Object,SuperClass,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around12(@Target OverloadedAdvicePOJO target, @Arg int arg)
+      throws Throwable
+   {
+      around12 = "OverloadedAdvicePOJO,int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around12(@Target Object target, @Arg int arg) throws Throwable
+   {
+      around12 = "Object,int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around12(@Target OverloadedAdvicePOJO target, @Args Object[] args)
+      throws Throwable
+   {
+      around12 = "OverloadedAdvicePOJO,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around12(@Target Object target, @Args Object[] args) throws Throwable
+   {
+      around12 = "Object,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around12(@Target OverloadedAdvicePOJO target) throws Throwable
+   {
+      around12 = "OverloadedAdvicePOJO";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around12(@Target Object target) throws Throwable
+   {
+      around12 = "Object";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around12(@Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+      throws Throwable
+   {
+      around12 = "OverloadedAdvicePOJOCaller,int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around12(@Caller SuperClass caller, @Arg int arg) throws Throwable
+   {
+      around12 = "SuperClass,int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around12(@Caller OverloadedAdvicePOJOCaller caller,
+         @Args Object[] args) throws Throwable
+   {
+      around12 = "OverloadedAdvicePOJOCaller,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around12(@Caller SuperClass caller, @Args Object[] args)
+      throws Throwable
+   {
+      around12 = "SuperClass,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around12(@Caller OverloadedAdvicePOJOCaller caller) throws Throwable
+   {
+      around12 = "OverloadedAdvicePOJOCaller";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around12(@Caller SuperClass caller) throws Throwable
+   {
+      around12 = "SuperClass";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around12(@Arg int arg) throws Throwable
+   {
+      around12 = "int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around12(@Args Object[] args) throws Throwable
+   {
+      around12 = "Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around12(@Arg int arg, @Args Object[] args) throws Throwable
+   {
+      Assert.fail("This advice should never be executed");
+      return CurrentInvocation.proceed();
+   }
+   
+   /* AROUND13 ADVICE */
+   
+   public Object around13(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Target Object target, @Caller SuperClass caller) throws Throwable
+   {
+      around13 = "MethodCalledByMethodInvocation,Object,SuperClass";
+      return invocation.invokeNext();
+   }
+   
+   public Object around13(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Target OverloadedAdvicePOJO target, @Arg int arg) throws Throwable
+   {
+      around13 = "MethodCalledByMethodInvocation,OverloadedAdvicePOJO,int";
+      return invocation.invokeNext();
+   }
+   
+   public Object around13(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Target Object target, @Arg int arg) throws Throwable
+   {
+      around13 = "MethodCalledByMethodInvocation,Object,int";
+      return invocation.invokeNext();
+   }
+   
+   public Object around13(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Target OverloadedAdvicePOJO target, @Args Object[] args) throws Throwable
+   {
+      around13 = "MethodCalledByMethodInvocation,OverloadedAdvicePOJO,Object[]";
+      return invocation.invokeNext();
+   }
+   
+   public Object around13(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Target Object target, @Args Object[] args) throws Throwable
+   {
+      around13 = "MethodCalledByMethodInvocation,Object,Object[]";
+      return invocation.invokeNext();
+   }
+   
+   public Object around13(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Caller OverloadedAdvicePOJOCaller caller, @Arg int arg) throws Throwable
+   {
+      around13 = "MethodCalledByMethodInvocation,OverloadedAdvicePOJOCaller,int";
+      return invocation.invokeNext();
+   }
+   
+   public Object around13(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Caller SuperClass caller, @Arg int arg) throws Throwable
+   {
+      around13 = "MethodCalledByMethodInvocation,SuperClass,int";
+      return invocation.invokeNext();
+   }
+   
+   public Object around13(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Caller OverloadedAdvicePOJOCaller caller, @Args Object[] args)
+      throws Throwable
+   {
+      around13 = "MethodCalledByMethodInvocation,OverloadedAdvicePOJOCaller,Object[]";
+      return invocation.invokeNext();
+   }
+   
+   public Object around13(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Caller SuperClass caller, @Args Object[] args) throws Throwable
+   {
+      around13 = "MethodCalledByMethodInvocation,SuperClass,Object[]";
+      return invocation.invokeNext();
+   }
+   
+   public Object around13(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Arg int arg) throws Throwable
+   {
+      around13 = "MethodCalledByMethodInvocation,int";
+      return invocation.invokeNext();
+   }
+   
+   public Object around13(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Args Object[] args) throws Throwable
+   {
+      around13 = "MethodCalledByMethodInvocation,Object[]";
+      return invocation.invokeNext();
+   }
+   
+   public Object around13(@JoinPoint MethodCalledByMethodInvocation invocation)
+      throws Throwable
+   {
+      around13= "MethodCalledByMethodInvocation";
+      return invocation.invokeNext();
+   }
+   
+   public Object around13(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Arg int arg) throws Throwable
+   {
+      around13 = "OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around13(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Arg int arg) throws Throwable
+   {
+      around13 = "OverloadedAdvicePOJO,SuperClass,int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around13(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Arg int arg) throws Throwable
+   {
+      around13 = "Object,OverloadedAdvicePOJOCaller,int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around13(@Target Object target, @Caller SuperClass caller,
+         @Arg int arg) throws Throwable
+   {
+      around13 = "Object,SuperClass,int";
+      return CurrentInvocation.proceed();
+   }
+ 
+   public Object around13(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Args Object[] args)
+      throws Throwable
+   {
+      around13 = "OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around13(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Args Object[] args) throws Throwable
+   {
+      around13 = "OverloadedAdvicePOJO,SuperClass,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around13(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Args Object[] args)
+      throws Throwable
+   {
+      around13 = "Object,OverloadedAdvicePOJOCaller,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around13(@Target Object target, @Caller SuperClass caller,
+         @Args Object[] args) throws Throwable
+   {
+      around13 = "Object,SuperClass,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around13(@Target OverloadedAdvicePOJO target, @Arg int arg)
+      throws Throwable
+   {
+      around13 = "OverloadedAdvicePOJO,int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around13(@Target Object target, @Arg int arg) throws Throwable
+   {
+      around13 = "Object,int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around13(@Target OverloadedAdvicePOJO target, @Args Object[] args)
+      throws Throwable
+   {
+      around13 = "OverloadedAdvicePOJO,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around13(@Target Object target, @Args Object[] args) throws Throwable
+   {
+      around13 = "Object,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around13(@Target OverloadedAdvicePOJO target) throws Throwable
+   {
+      around13 = "OverloadedAdvicePOJO";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around13(@Target Object target) throws Throwable
+   {
+      around13 = "Object";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around13(@Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+      throws Throwable
+   {
+      around13 = "OverloadedAdvicePOJOCaller,int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around13(@Caller SuperClass caller, @Arg int arg) throws Throwable
+   {
+      around13 = "SuperClass,int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around13(@Caller OverloadedAdvicePOJOCaller caller,
+         @Args Object[] args) throws Throwable
+   {
+      around13 = "OverloadedAdvicePOJOCaller,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around13(@Caller SuperClass caller, @Args Object[] args)
+      throws Throwable
+   {
+      around13 = "SuperClass,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around13(@Caller OverloadedAdvicePOJOCaller caller) throws Throwable
+   {
+      around13 = "OverloadedAdvicePOJOCaller";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around13(@Caller SuperClass caller) throws Throwable
+   {
+      around13 = "SuperClass";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around13(@Arg int arg) throws Throwable
+   {
+      around13 = "int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around13(@Args Object[] args) throws Throwable
+   {
+      around13 = "Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around13(@Arg int arg, @Args Object[] args) throws Throwable
+   {
+      Assert.fail("This advice should never be executed");
+      return CurrentInvocation.proceed();
+   }
+   
+   /* AROUND14 ADVICE */
+   
+   public Object around14(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Target OverloadedAdvicePOJO target, @Arg int arg) throws Throwable
+   {
+      around14 = "MethodCalledByMethodInvocation,OverloadedAdvicePOJO,int";
+      return invocation.invokeNext();
+   }
+   
+   public Object around14(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Target Object target, @Arg int arg) throws Throwable
+   {
+      around14 = "MethodCalledByMethodInvocation,Object,int";
+      return invocation.invokeNext();
+   }
+   
+   public Object around14(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Target OverloadedAdvicePOJO target, @Args Object[] args) throws Throwable
+   {
+      around14 = "MethodCalledByMethodInvocation,OverloadedAdvicePOJO,Object[]";
+      return invocation.invokeNext();
+   }
+   
+   public Object around14(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Target Object target, @Args Object[] args) throws Throwable
+   {
+      around14 = "MethodCalledByMethodInvocation,Object,Object[]";
+      return invocation.invokeNext();
+   }
+   
+   public Object around14(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Caller OverloadedAdvicePOJOCaller caller, @Arg int arg) throws Throwable
+   {
+      around14 = "MethodCalledByMethodInvocation,OverloadedAdvicePOJOCaller,int";
+      return invocation.invokeNext();
+   }
+   
+   public Object around14(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Caller SuperClass caller, @Arg int arg) throws Throwable
+   {
+      around14 = "MethodCalledByMethodInvocation,SuperClass,int";
+      return invocation.invokeNext();
+   }
+   
+   public Object around14(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Caller OverloadedAdvicePOJOCaller caller, @Args Object[] args)
+      throws Throwable
+   {
+      around14 = "MethodCalledByMethodInvocation,OverloadedAdvicePOJOCaller,Object[]";
+      return invocation.invokeNext();
+   }
+   
+   public Object around14(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Caller SuperClass caller, @Args Object[] args) throws Throwable
+   {
+      around14 = "MethodCalledByMethodInvocation,SuperClass,Object[]";
+      return invocation.invokeNext();
+   }
+   
+   public Object around14(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Arg int arg) throws Throwable
+   {
+      around14 = "MethodCalledByMethodInvocation,int";
+      return invocation.invokeNext();
+   }
+   
+   public Object around14(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Args Object[] args) throws Throwable
+   {
+      around14 = "MethodCalledByMethodInvocation,Object[]";
+      return invocation.invokeNext();
+   }
+   
+   public Object around14(@JoinPoint MethodCalledByMethodInvocation invocation)
+      throws Throwable
+   {
+      around14= "MethodCalledByMethodInvocation";
+      return invocation.invokeNext();
+   }
+   
+   public Object around14(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Arg int arg) throws Throwable
+   {
+      around14 = "OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around14(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Arg int arg) throws Throwable
+   {
+      around14 = "OverloadedAdvicePOJO,SuperClass,int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around14(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Arg int arg) throws Throwable
+   {
+      around14 = "Object,OverloadedAdvicePOJOCaller,int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around14(@Target Object target, @Caller SuperClass caller,
+         @Arg int arg) throws Throwable
+   {
+      around14 = "Object,SuperClass,int";
+      return CurrentInvocation.proceed();
+   }
+ 
+   public Object around14(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Args Object[] args)
+      throws Throwable
+   {
+      around14 = "OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around14(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Args Object[] args) throws Throwable
+   {
+      around14 = "OverloadedAdvicePOJO,SuperClass,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around14(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Args Object[] args)
+      throws Throwable
+   {
+      around14 = "Object,OverloadedAdvicePOJOCaller,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around14(@Target Object target, @Caller SuperClass caller,
+         @Args Object[] args) throws Throwable
+   {
+      around14 = "Object,SuperClass,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around14(@Target OverloadedAdvicePOJO target, @Arg int arg)
+      throws Throwable
+   {
+      around14 = "OverloadedAdvicePOJO,int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around14(@Target Object target, @Arg int arg) throws Throwable
+   {
+      around14 = "Object,int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around14(@Target OverloadedAdvicePOJO target, @Args Object[] args)
+      throws Throwable
+   {
+      around14 = "OverloadedAdvicePOJO,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around14(@Target Object target, @Args Object[] args) throws Throwable
+   {
+      around14 = "Object,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around14(@Target OverloadedAdvicePOJO target) throws Throwable
+   {
+      around14 = "OverloadedAdvicePOJO";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around14(@Target Object target) throws Throwable
+   {
+      around14 = "Object";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around14(@Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+      throws Throwable
+   {
+      around14 = "OverloadedAdvicePOJOCaller,int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around14(@Caller SuperClass caller, @Arg int arg) throws Throwable
+   {
+      around14 = "SuperClass,int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around14(@Caller OverloadedAdvicePOJOCaller caller,
+         @Args Object[] args) throws Throwable
+   {
+      around14 = "OverloadedAdvicePOJOCaller,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around14(@Caller SuperClass caller, @Args Object[] args)
+      throws Throwable
+   {
+      around14 = "SuperClass,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around14(@Caller OverloadedAdvicePOJOCaller caller) throws Throwable
+   {
+      around14 = "OverloadedAdvicePOJOCaller";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around14(@Caller SuperClass caller) throws Throwable
+   {
+      around14 = "SuperClass";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around14(@Arg int arg) throws Throwable
+   {
+      around14 = "int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around14(@Args Object[] args) throws Throwable
+   {
+      around14 = "Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around14(@Arg int arg, @Args Object[] args) throws Throwable
+   {
+      Assert.fail("This advice should never be executed");
+      return CurrentInvocation.proceed();
+   }
+   
+   /* AROUND15 ADVICE */
+   
+   public Object around15(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Target Object target, @Arg int arg) throws Throwable
+   {
+      around15 = "MethodCalledByMethodInvocation,Object,int";
+      return invocation.invokeNext();
+   }
+   
+   public Object around15(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Target OverloadedAdvicePOJO target, @Args Object[] args) throws Throwable
+   {
+      around15 = "MethodCalledByMethodInvocation,OverloadedAdvicePOJO,Object[]";
+      return invocation.invokeNext();
+   }
+   
+   public Object around15(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Target Object target, @Args Object[] args) throws Throwable
+   {
+      around15 = "MethodCalledByMethodInvocation,Object,Object[]";
+      return invocation.invokeNext();
+   }
+   
+   public Object around15(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Caller OverloadedAdvicePOJOCaller caller, @Arg int arg) throws Throwable
+   {
+      around15 = "MethodCalledByMethodInvocation,OverloadedAdvicePOJOCaller,int";
+      return invocation.invokeNext();
+   }
+   
+   public Object around15(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Caller SuperClass caller, @Arg int arg) throws Throwable
+   {
+      around15 = "MethodCalledByMethodInvocation,SuperClass,int";
+      return invocation.invokeNext();
+   }
+   
+   public Object around15(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Caller OverloadedAdvicePOJOCaller caller, @Args Object[] args)
+      throws Throwable
+   {
+      around15 = "MethodCalledByMethodInvocation,OverloadedAdvicePOJOCaller,Object[]";
+      return invocation.invokeNext();
+   }
+   
+   public Object around15(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Caller SuperClass caller, @Args Object[] args) throws Throwable
+   {
+      around15 = "MethodCalledByMethodInvocation,SuperClass,Object[]";
+      return invocation.invokeNext();
+   }
+   
+   public Object around15(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Arg int arg) throws Throwable
+   {
+      around15 = "MethodCalledByMethodInvocation,int";
+      return invocation.invokeNext();
+   }
+   
+   public Object around15(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Args Object[] args) throws Throwable
+   {
+      around15 = "MethodCalledByMethodInvocation,Object[]";
+      return invocation.invokeNext();
+   }
+   
+   public Object around15(@JoinPoint MethodCalledByMethodInvocation invocation)
+      throws Throwable
+   {
+      around15= "MethodCalledByMethodInvocation";
+      return invocation.invokeNext();
+   }
+   
+   public Object around15(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Arg int arg) throws Throwable
+   {
+      around15 = "OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around15(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Arg int arg) throws Throwable
+   {
+      around15 = "OverloadedAdvicePOJO,SuperClass,int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around15(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Arg int arg) throws Throwable
+   {
+      around15 = "Object,OverloadedAdvicePOJOCaller,int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around15(@Target Object target, @Caller SuperClass caller,
+         @Arg int arg) throws Throwable
+   {
+      around15 = "Object,SuperClass,int";
+      return CurrentInvocation.proceed();
+   }
+ 
+   public Object around15(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Args Object[] args)
+      throws Throwable
+   {
+      around15 = "OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around15(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Args Object[] args) throws Throwable
+   {
+      around15 = "OverloadedAdvicePOJO,SuperClass,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around15(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Args Object[] args)
+      throws Throwable
+   {
+      around15 = "Object,OverloadedAdvicePOJOCaller,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around15(@Target Object target, @Caller SuperClass caller,
+         @Args Object[] args) throws Throwable
+   {
+      around15 = "Object,SuperClass,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around15(@Target OverloadedAdvicePOJO target, @Arg int arg)
+      throws Throwable
+   {
+      around15 = "OverloadedAdvicePOJO,int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around15(@Target Object target, @Arg int arg) throws Throwable
+   {
+      around15 = "Object,int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around15(@Target OverloadedAdvicePOJO target, @Args Object[] args)
+      throws Throwable
+   {
+      around15 = "OverloadedAdvicePOJO,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around15(@Target Object target, @Args Object[] args) throws Throwable
+   {
+      around15 = "Object,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around15(@Target OverloadedAdvicePOJO target) throws Throwable
+   {
+      around15 = "OverloadedAdvicePOJO";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around15(@Target Object target) throws Throwable
+   {
+      around15 = "Object";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around15(@Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+      throws Throwable
+   {
+      around15 = "OverloadedAdvicePOJOCaller,int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around15(@Caller SuperClass caller, @Arg int arg) throws Throwable
+   {
+      around15 = "SuperClass,int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around15(@Caller OverloadedAdvicePOJOCaller caller,
+         @Args Object[] args) throws Throwable
+   {
+      around15 = "OverloadedAdvicePOJOCaller,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around15(@Caller SuperClass caller, @Args Object[] args)
+      throws Throwable
+   {
+      around15 = "SuperClass,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around15(@Caller OverloadedAdvicePOJOCaller caller) throws Throwable
+   {
+      around15 = "OverloadedAdvicePOJOCaller";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around15(@Caller SuperClass caller) throws Throwable
+   {
+      around15 = "SuperClass";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around15(@Arg int arg) throws Throwable
+   {
+      around15 = "int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around15(@Args Object[] args) throws Throwable
+   {
+      around15 = "Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around15(@Arg int arg, @Args Object[] args) throws Throwable
+   {
+      Assert.fail("This advice should never be executed");
+      return CurrentInvocation.proceed();
+   }
+   
+   /* AROUND16 ADVICE */
+   
+   public Object around16(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Target OverloadedAdvicePOJO target, @Args Object[] args) throws Throwable
+   {
+      around16 = "MethodCalledByMethodInvocation,OverloadedAdvicePOJO,Object[]";
+      return invocation.invokeNext();
+   }
+   
+   public Object around16(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Target Object target, @Args Object[] args) throws Throwable
+   {
+      around16 = "MethodCalledByMethodInvocation,Object,Object[]";
+      return invocation.invokeNext();
+   }
+   
+   public Object around16(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Caller OverloadedAdvicePOJOCaller caller, @Arg int arg) throws Throwable
+   {
+      around16 = "MethodCalledByMethodInvocation,OverloadedAdvicePOJOCaller,int";
+      return invocation.invokeNext();
+   }
+   
+   public Object around16(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Caller SuperClass caller, @Arg int arg) throws Throwable
+   {
+      around16 = "MethodCalledByMethodInvocation,SuperClass,int";
+      return invocation.invokeNext();
+   }
+   
+   public Object around16(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Caller OverloadedAdvicePOJOCaller caller, @Args Object[] args)
+      throws Throwable
+   {
+      around16 = "MethodCalledByMethodInvocation,OverloadedAdvicePOJOCaller,Object[]";
+      return invocation.invokeNext();
+   }
+   
+   public Object around16(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Caller SuperClass caller, @Args Object[] args) throws Throwable
+   {
+      around16 = "MethodCalledByMethodInvocation,SuperClass,Object[]";
+      return invocation.invokeNext();
+   }
+   
+   public Object around16(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Arg int arg) throws Throwable
+   {
+      around16 = "MethodCalledByMethodInvocation,int";
+      return invocation.invokeNext();
+   }
+   
+   public Object around16(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Args Object[] args) throws Throwable
+   {
+      around16 = "MethodCalledByMethodInvocation,Object[]";
+      return invocation.invokeNext();
+   }
+   
+   public Object around16(@JoinPoint MethodCalledByMethodInvocation invocation)
+      throws Throwable
+   {
+      around16= "MethodCalledByMethodInvocation";
+      return invocation.invokeNext();
+   }
+   
+   public Object around16(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Arg int arg) throws Throwable
+   {
+      around16 = "OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around16(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Arg int arg) throws Throwable
+   {
+      around16 = "OverloadedAdvicePOJO,SuperClass,int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around16(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Arg int arg) throws Throwable
+   {
+      around16 = "Object,OverloadedAdvicePOJOCaller,int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around16(@Target Object target, @Caller SuperClass caller,
+         @Arg int arg) throws Throwable
+   {
+      around16 = "Object,SuperClass,int";
+      return CurrentInvocation.proceed();
+   }
+ 
+   public Object around16(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Args Object[] args)
+      throws Throwable
+   {
+      around16 = "OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around16(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Args Object[] args) throws Throwable
+   {
+      around16 = "OverloadedAdvicePOJO,SuperClass,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around16(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Args Object[] args)
+      throws Throwable
+   {
+      around16 = "Object,OverloadedAdvicePOJOCaller,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around16(@Target Object target, @Caller SuperClass caller,
+         @Args Object[] args) throws Throwable
+   {
+      around16 = "Object,SuperClass,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around16(@Target OverloadedAdvicePOJO target, @Arg int arg)
+      throws Throwable
+   {
+      around16 = "OverloadedAdvicePOJO,int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around16(@Target Object target, @Arg int arg) throws Throwable
+   {
+      around16 = "Object,int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around16(@Target OverloadedAdvicePOJO target, @Args Object[] args)
+      throws Throwable
+   {
+      around16 = "OverloadedAdvicePOJO,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around16(@Target Object target, @Args Object[] args) throws Throwable
+   {
+      around16 = "Object,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around16(@Target OverloadedAdvicePOJO target) throws Throwable
+   {
+      around16 = "OverloadedAdvicePOJO";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around16(@Target Object target) throws Throwable
+   {
+      around16 = "Object";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around16(@Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+      throws Throwable
+   {
+      around16 = "OverloadedAdvicePOJOCaller,int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around16(@Caller SuperClass caller, @Arg int arg) throws Throwable
+   {
+      around16 = "SuperClass,int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around16(@Caller OverloadedAdvicePOJOCaller caller,
+         @Args Object[] args) throws Throwable
+   {
+      around16 = "OverloadedAdvicePOJOCaller,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around16(@Caller SuperClass caller, @Args Object[] args)
+      throws Throwable
+   {
+      around16 = "SuperClass,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around16(@Caller OverloadedAdvicePOJOCaller caller) throws Throwable
+   {
+      around16 = "OverloadedAdvicePOJOCaller";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around16(@Caller SuperClass caller) throws Throwable
+   {
+      around16 = "SuperClass";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around16(@Arg int arg) throws Throwable
+   {
+      around16 = "int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around16(@Args Object[] args) throws Throwable
+   {
+      around16 = "Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around16(@Arg int arg, @Args Object[] args) throws Throwable
+   {
+      Assert.fail("This advice should never be executed");
+      return CurrentInvocation.proceed();
+   }
+   
+   /* AROUND17 ADVICE */
+   
+   public Object around17(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Target Object target, @Args Object[] args) throws Throwable
+   {
+      around17 = "MethodCalledByMethodInvocation,Object,Object[]";
+      return invocation.invokeNext();
+   }
+   
+   public Object around17(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Caller OverloadedAdvicePOJOCaller caller, @Arg int arg) throws Throwable
+   {
+      around17 = "MethodCalledByMethodInvocation,OverloadedAdvicePOJOCaller,int";
+      return invocation.invokeNext();
+   }
+   
+   public Object around17(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Caller SuperClass caller, @Arg int arg) throws Throwable
+   {
+      around17 = "MethodCalledByMethodInvocation,SuperClass,int";
+      return invocation.invokeNext();
+   }
+   
+   public Object around17(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Caller OverloadedAdvicePOJOCaller caller, @Args Object[] args)
+      throws Throwable
+   {
+      around17 = "MethodCalledByMethodInvocation,OverloadedAdvicePOJOCaller,Object[]";
+      return invocation.invokeNext();
+   }
+   
+   public Object around17(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Caller SuperClass caller, @Args Object[] args) throws Throwable
+   {
+      around17 = "MethodCalledByMethodInvocation,SuperClass,Object[]";
+      return invocation.invokeNext();
+   }
+   
+   public Object around17(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Arg int arg) throws Throwable
+   {
+      around17 = "MethodCalledByMethodInvocation,int";
+      return invocation.invokeNext();
+   }
+   
+   public Object around17(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Args Object[] args) throws Throwable
+   {
+      around17 = "MethodCalledByMethodInvocation,Object[]";
+      return invocation.invokeNext();
+   }
+   
+   public Object around17(@JoinPoint MethodCalledByMethodInvocation invocation)
+      throws Throwable
+   {
+      around17= "MethodCalledByMethodInvocation";
+      return invocation.invokeNext();
+   }
+   
+   public Object around17(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Arg int arg) throws Throwable
+   {
+      around17 = "OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around17(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Arg int arg) throws Throwable
+   {
+      around17 = "OverloadedAdvicePOJO,SuperClass,int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around17(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Arg int arg) throws Throwable
+   {
+      around17 = "Object,OverloadedAdvicePOJOCaller,int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around17(@Target Object target, @Caller SuperClass caller,
+         @Arg int arg) throws Throwable
+   {
+      around17 = "Object,SuperClass,int";
+      return CurrentInvocation.proceed();
+   }
+ 
+   public Object around17(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Args Object[] args)
+      throws Throwable
+   {
+      around17 = "OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around17(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Args Object[] args) throws Throwable
+   {
+      around17 = "OverloadedAdvicePOJO,SuperClass,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around17(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Args Object[] args)
+      throws Throwable
+   {
+      around17 = "Object,OverloadedAdvicePOJOCaller,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around17(@Target Object target, @Caller SuperClass caller,
+         @Args Object[] args) throws Throwable
+   {
+      around17 = "Object,SuperClass,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around17(@Target OverloadedAdvicePOJO target, @Arg int arg)
+      throws Throwable
+   {
+      around17 = "OverloadedAdvicePOJO,int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around17(@Target Object target, @Arg int arg) throws Throwable
+   {
+      around17 = "Object,int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around17(@Target OverloadedAdvicePOJO target, @Args Object[] args)
+      throws Throwable
+   {
+      around17 = "OverloadedAdvicePOJO,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around17(@Target Object target, @Args Object[] args) throws Throwable
+   {
+      around17 = "Object,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around17(@Target OverloadedAdvicePOJO target) throws Throwable
+   {
+      around17 = "OverloadedAdvicePOJO";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around17(@Target Object target) throws Throwable
+   {
+      around17 = "Object";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around17(@Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+      throws Throwable
+   {
+      around17 = "OverloadedAdvicePOJOCaller,int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around17(@Caller SuperClass caller, @Arg int arg) throws Throwable
+   {
+      around17 = "SuperClass,int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around17(@Caller OverloadedAdvicePOJOCaller caller,
+         @Args Object[] args) throws Throwable
+   {
+      around17 = "OverloadedAdvicePOJOCaller,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around17(@Caller SuperClass caller, @Args Object[] args)
+      throws Throwable
+   {
+      around17 = "SuperClass,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around17(@Caller OverloadedAdvicePOJOCaller caller) throws Throwable
+   {
+      around17 = "OverloadedAdvicePOJOCaller";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around17(@Caller SuperClass caller) throws Throwable
+   {
+      around17 = "SuperClass";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around17(@Arg int arg) throws Throwable
+   {
+      around17 = "int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around17(@Args Object[] args) throws Throwable
+   {
+      around17 = "Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around17(@Arg int arg, @Args Object[] args) throws Throwable
+   {
+      Assert.fail("This advice should never be executed");
+      return CurrentInvocation.proceed();
+   }
+   
+   /* AROUND18 ADVICE */
+   
+   public Object around18(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Caller OverloadedAdvicePOJOCaller caller, @Arg int arg) throws Throwable
+   {
+      around18 = "MethodCalledByMethodInvocation,OverloadedAdvicePOJOCaller,int";
+      return invocation.invokeNext();
+   }
+   
+   public Object around18(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Caller SuperClass caller, @Arg int arg) throws Throwable
+   {
+      around18 = "MethodCalledByMethodInvocation,SuperClass,int";
+      return invocation.invokeNext();
+   }
+   
+   public Object around18(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Caller OverloadedAdvicePOJOCaller caller, @Args Object[] args)
+      throws Throwable
+   {
+      around18 = "MethodCalledByMethodInvocation,OverloadedAdvicePOJOCaller,Object[]";
+      return invocation.invokeNext();
+   }
+   
+   public Object around18(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Caller SuperClass caller, @Args Object[] args) throws Throwable
+   {
+      around18 = "MethodCalledByMethodInvocation,SuperClass,Object[]";
+      return invocation.invokeNext();
+   }
+   
+   public Object around18(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Arg int arg) throws Throwable
+   {
+      around18 = "MethodCalledByMethodInvocation,int";
+      return invocation.invokeNext();
+   }
+   
+   public Object around18(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Args Object[] args) throws Throwable
+   {
+      around18 = "MethodCalledByMethodInvocation,Object[]";
+      return invocation.invokeNext();
+   }
+   
+   public Object around18(@JoinPoint MethodCalledByMethodInvocation invocation)
+      throws Throwable
+   {
+      around18= "MethodCalledByMethodInvocation";
+      return invocation.invokeNext();
+   }
+   
+   public Object around18(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Arg int arg) throws Throwable
+   {
+      around18 = "OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around18(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Arg int arg) throws Throwable
+   {
+      around18 = "OverloadedAdvicePOJO,SuperClass,int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around18(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Arg int arg) throws Throwable
+   {
+      around18 = "Object,OverloadedAdvicePOJOCaller,int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around18(@Target Object target, @Caller SuperClass caller,
+         @Arg int arg) throws Throwable
+   {
+      around18 = "Object,SuperClass,int";
+      return CurrentInvocation.proceed();
+   }
+ 
+   public Object around18(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Args Object[] args)
+      throws Throwable
+   {
+      around18 = "OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around18(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Args Object[] args) throws Throwable
+   {
+      around18 = "OverloadedAdvicePOJO,SuperClass,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around18(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Args Object[] args)
+      throws Throwable
+   {
+      around18 = "Object,OverloadedAdvicePOJOCaller,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around18(@Target Object target, @Caller SuperClass caller,
+         @Args Object[] args) throws Throwable
+   {
+      around18 = "Object,SuperClass,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around18(@Target OverloadedAdvicePOJO target, @Arg int arg)
+      throws Throwable
+   {
+      around18 = "OverloadedAdvicePOJO,int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around18(@Target Object target, @Arg int arg) throws Throwable
+   {
+      around18 = "Object,int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around18(@Target OverloadedAdvicePOJO target, @Args Object[] args)
+      throws Throwable
+   {
+      around18 = "OverloadedAdvicePOJO,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around18(@Target Object target, @Args Object[] args) throws Throwable
+   {
+      around18 = "Object,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around18(@Target OverloadedAdvicePOJO target) throws Throwable
+   {
+      around18 = "OverloadedAdvicePOJO";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around18(@Target Object target) throws Throwable
+   {
+      around18 = "Object";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around18(@Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+      throws Throwable
+   {
+      around18 = "OverloadedAdvicePOJOCaller,int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around18(@Caller SuperClass caller, @Arg int arg) throws Throwable
+   {
+      around18 = "SuperClass,int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around18(@Caller OverloadedAdvicePOJOCaller caller,
+         @Args Object[] args) throws Throwable
+   {
+      around18 = "OverloadedAdvicePOJOCaller,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around18(@Caller SuperClass caller, @Args Object[] args)
+      throws Throwable
+   {
+      around18 = "SuperClass,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around18(@Caller OverloadedAdvicePOJOCaller caller) throws Throwable
+   {
+      around18 = "OverloadedAdvicePOJOCaller";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around18(@Caller SuperClass caller) throws Throwable
+   {
+      around18 = "SuperClass";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around18(@Arg int arg) throws Throwable
+   {
+      around18 = "int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around18(@Args Object[] args) throws Throwable
+   {
+      around18 = "Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around18(@Arg int arg, @Args Object[] args) throws Throwable
+   {
+      Assert.fail("This advice should never be executed");
+      return CurrentInvocation.proceed();
+   }
+   
+   /* AROUND19 ADVICE */
+   
+   public Object around19(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Caller SuperClass caller, @Arg int arg) throws Throwable
+   {
+      around19 = "MethodCalledByMethodInvocation,SuperClass,int";
+      return invocation.invokeNext();
+   }
+   
+   public Object around19(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Caller OverloadedAdvicePOJOCaller caller, @Args Object[] args)
+      throws Throwable
+   {
+      around19 = "MethodCalledByMethodInvocation,OverloadedAdvicePOJOCaller,Object[]";
+      return invocation.invokeNext();
+   }
+   
+   public Object around19(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Caller SuperClass caller, @Args Object[] args) throws Throwable
+   {
+      around19 = "MethodCalledByMethodInvocation,SuperClass,Object[]";
+      return invocation.invokeNext();
+   }
+   
+   public Object around19(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Arg int arg) throws Throwable
+   {
+      around19 = "MethodCalledByMethodInvocation,int";
+      return invocation.invokeNext();
+   }
+   
+   public Object around19(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Args Object[] args) throws Throwable
+   {
+      around19 = "MethodCalledByMethodInvocation,Object[]";
+      return invocation.invokeNext();
+   }
+   
+   public Object around19(@JoinPoint MethodCalledByMethodInvocation invocation)
+      throws Throwable
+   {
+      around19= "MethodCalledByMethodInvocation";
+      return invocation.invokeNext();
+   }
+   
+   public Object around19(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Arg int arg) throws Throwable
+   {
+      around19 = "OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around19(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Arg int arg) throws Throwable
+   {
+      around19 = "OverloadedAdvicePOJO,SuperClass,int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around19(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Arg int arg) throws Throwable
+   {
+      around19 = "Object,OverloadedAdvicePOJOCaller,int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around19(@Target Object target, @Caller SuperClass caller,
+         @Arg int arg) throws Throwable
+   {
+      around19 = "Object,SuperClass,int";
+      return CurrentInvocation.proceed();
+   }
+ 
+   public Object around19(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Args Object[] args)
+      throws Throwable
+   {
+      around19 = "OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around19(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Args Object[] args) throws Throwable
+   {
+      around19 = "OverloadedAdvicePOJO,SuperClass,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around19(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Args Object[] args)
+      throws Throwable
+   {
+      around19 = "Object,OverloadedAdvicePOJOCaller,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around19(@Target Object target, @Caller SuperClass caller,
+         @Args Object[] args) throws Throwable
+   {
+      around19 = "Object,SuperClass,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around19(@Target OverloadedAdvicePOJO target, @Arg int arg)
+      throws Throwable
+   {
+      around19 = "OverloadedAdvicePOJO,int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around19(@Target Object target, @Arg int arg) throws Throwable
+   {
+      around19 = "Object,int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around19(@Target OverloadedAdvicePOJO target, @Args Object[] args)
+      throws Throwable
+   {
+      around19 = "OverloadedAdvicePOJO,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around19(@Target Object target, @Args Object[] args) throws Throwable
+   {
+      around19 = "Object,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around19(@Target OverloadedAdvicePOJO target) throws Throwable
+   {
+      around19 = "OverloadedAdvicePOJO";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around19(@Target Object target) throws Throwable
+   {
+      around19 = "Object";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around19(@Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+      throws Throwable
+   {
+      around19 = "OverloadedAdvicePOJOCaller,int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around19(@Caller SuperClass caller, @Arg int arg) throws Throwable
+   {
+      around19 = "SuperClass,int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around19(@Caller OverloadedAdvicePOJOCaller caller,
+         @Args Object[] args) throws Throwable
+   {
+      around19 = "OverloadedAdvicePOJOCaller,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around19(@Caller SuperClass caller, @Args Object[] args)
+      throws Throwable
+   {
+      around19 = "SuperClass,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around19(@Caller OverloadedAdvicePOJOCaller caller) throws Throwable
+   {
+      around19 = "OverloadedAdvicePOJOCaller";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around19(@Caller SuperClass caller) throws Throwable
+   {
+      around19 = "SuperClass";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around19(@Arg int arg) throws Throwable
+   {
+      around19 = "int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around19(@Args Object[] args) throws Throwable
+   {
+      around19 = "Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around19(@Arg int arg, @Args Object[] args) throws Throwable
+   {
+      Assert.fail("This advice should never be executed");
+      return CurrentInvocation.proceed();
+   }
+   
+   /* AROUND20 ADVICE */
+   
+   public Object around20(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Caller OverloadedAdvicePOJOCaller caller, @Args Object[] args)
+      throws Throwable
+   {
+      around20 = "MethodCalledByMethodInvocation,OverloadedAdvicePOJOCaller,Object[]";
+      return invocation.invokeNext();
+   }
+   
+   public Object around20(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Caller SuperClass caller, @Args Object[] args) throws Throwable
+   {
+      around20 = "MethodCalledByMethodInvocation,SuperClass,Object[]";
+      return invocation.invokeNext();
+   }
+   
+   public Object around20(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Arg int arg) throws Throwable
+   {
+      around20 = "MethodCalledByMethodInvocation,int";
+      return invocation.invokeNext();
+   }
+   
+   public Object around20(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Args Object[] args) throws Throwable
+   {
+      around20 = "MethodCalledByMethodInvocation,Object[]";
+      return invocation.invokeNext();
+   }
+   
+   public Object around20(@JoinPoint MethodCalledByMethodInvocation invocation)
+      throws Throwable
+   {
+      around20= "MethodCalledByMethodInvocation";
+      return invocation.invokeNext();
+   }
+   
+   public Object around20(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Arg int arg) throws Throwable
+   {
+      around20 = "OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around20(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Arg int arg) throws Throwable
+   {
+      around20 = "OverloadedAdvicePOJO,SuperClass,int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around20(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Arg int arg) throws Throwable
+   {
+      around20 = "Object,OverloadedAdvicePOJOCaller,int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around20(@Target Object target, @Caller SuperClass caller,
+         @Arg int arg) throws Throwable
+   {
+      around20 = "Object,SuperClass,int";
+      return CurrentInvocation.proceed();
+   }
+ 
+   public Object around20(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Args Object[] args)
+      throws Throwable
+   {
+      around20 = "OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around20(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Args Object[] args) throws Throwable
+   {
+      around20 = "OverloadedAdvicePOJO,SuperClass,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around20(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Args Object[] args)
+      throws Throwable
+   {
+      around20 = "Object,OverloadedAdvicePOJOCaller,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around20(@Target Object target, @Caller SuperClass caller,
+         @Args Object[] args) throws Throwable
+   {
+      around20 = "Object,SuperClass,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around20(@Target OverloadedAdvicePOJO target, @Arg int arg)
+      throws Throwable
+   {
+      around20 = "OverloadedAdvicePOJO,int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around20(@Target Object target, @Arg int arg) throws Throwable
+   {
+      around20 = "Object,int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around20(@Target OverloadedAdvicePOJO target, @Args Object[] args)
+      throws Throwable
+   {
+      around20 = "OverloadedAdvicePOJO,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around20(@Target Object target, @Args Object[] args) throws Throwable
+   {
+      around20 = "Object,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around20(@Target OverloadedAdvicePOJO target) throws Throwable
+   {
+      around20 = "OverloadedAdvicePOJO";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around20(@Target Object target) throws Throwable
+   {
+      around20 = "Object";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around20(@Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+      throws Throwable
+   {
+      around20 = "OverloadedAdvicePOJOCaller,int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around20(@Caller SuperClass caller, @Arg int arg) throws Throwable
+   {
+      around20 = "SuperClass,int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around20(@Caller OverloadedAdvicePOJOCaller caller,
+         @Args Object[] args) throws Throwable
+   {
+      around20 = "OverloadedAdvicePOJOCaller,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around20(@Caller SuperClass caller, @Args Object[] args)
+      throws Throwable
+   {
+      around20 = "SuperClass,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around20(@Caller OverloadedAdvicePOJOCaller caller) throws Throwable
+   {
+      around20 = "OverloadedAdvicePOJOCaller";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around20(@Caller SuperClass caller) throws Throwable
+   {
+      around20 = "SuperClass";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around20(@Arg int arg) throws Throwable
+   {
+      around20 = "int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around20(@Args Object[] args) throws Throwable
+   {
+      around20 = "Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around20(@Arg int arg, @Args Object[] args) throws Throwable
+   {
+      Assert.fail("This advice should never be executed");
+      return CurrentInvocation.proceed();
+   }
+   
+   /* AROUND21 ADVICE */
+   
+   public Object around21(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Caller SuperClass caller, @Args Object[] args) throws Throwable
+   {
+      around21 = "MethodCalledByMethodInvocation,SuperClass,Object[]";
+      return invocation.invokeNext();
+   }
+   
+   public Object around21(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Arg int arg) throws Throwable
+   {
+      around21 = "MethodCalledByMethodInvocation,int";
+      return invocation.invokeNext();
+   }
+   
+   public Object around21(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Args Object[] args) throws Throwable
+   {
+      around21 = "MethodCalledByMethodInvocation,Object[]";
+      return invocation.invokeNext();
+   }
+   
+   public Object around21(@JoinPoint MethodCalledByMethodInvocation invocation)
+      throws Throwable
+   {
+      around21= "MethodCalledByMethodInvocation";
+      return invocation.invokeNext();
+   }
+   
+   public Object around21(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Arg int arg) throws Throwable
+   {
+      around21 = "OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around21(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Arg int arg) throws Throwable
+   {
+      around21 = "OverloadedAdvicePOJO,SuperClass,int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around21(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Arg int arg) throws Throwable
+   {
+      around21 = "Object,OverloadedAdvicePOJOCaller,int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around21(@Target Object target, @Caller SuperClass caller,
+         @Arg int arg) throws Throwable
+   {
+      around21 = "Object,SuperClass,int";
+      return CurrentInvocation.proceed();
+   }
+ 
+   public Object around21(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Args Object[] args)
+      throws Throwable
+   {
+      around21 = "OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around21(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Args Object[] args) throws Throwable
+   {
+      around21 = "OverloadedAdvicePOJO,SuperClass,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around21(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Args Object[] args)
+      throws Throwable
+   {
+      around21 = "Object,OverloadedAdvicePOJOCaller,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around21(@Target Object target, @Caller SuperClass caller,
+         @Args Object[] args) throws Throwable
+   {
+      around21 = "Object,SuperClass,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around21(@Target OverloadedAdvicePOJO target, @Arg int arg)
+      throws Throwable
+   {
+      around21 = "OverloadedAdvicePOJO,int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around21(@Target Object target, @Arg int arg) throws Throwable
+   {
+      around21 = "Object,int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around21(@Target OverloadedAdvicePOJO target, @Args Object[] args)
+      throws Throwable
+   {
+      around21 = "OverloadedAdvicePOJO,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around21(@Target Object target, @Args Object[] args) throws Throwable
+   {
+      around21 = "Object,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around21(@Target OverloadedAdvicePOJO target) throws Throwable
+   {
+      around21 = "OverloadedAdvicePOJO";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around21(@Target Object target) throws Throwable
+   {
+      around21 = "Object";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around21(@Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+      throws Throwable
+   {
+      around21 = "OverloadedAdvicePOJOCaller,int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around21(@Caller SuperClass caller, @Arg int arg) throws Throwable
+   {
+      around21 = "SuperClass,int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around21(@Caller OverloadedAdvicePOJOCaller caller,
+         @Args Object[] args) throws Throwable
+   {
+      around21 = "OverloadedAdvicePOJOCaller,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around21(@Caller SuperClass caller, @Args Object[] args)
+      throws Throwable
+   {
+      around21 = "SuperClass,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around21(@Caller OverloadedAdvicePOJOCaller caller) throws Throwable
+   {
+      around21 = "OverloadedAdvicePOJOCaller";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around21(@Caller SuperClass caller) throws Throwable
+   {
+      around21 = "SuperClass";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around21(@Arg int arg) throws Throwable
+   {
+      around21 = "int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around21(@Args Object[] args) throws Throwable
+   {
+      around21 = "Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around21(@Arg int arg, @Args Object[] args) throws Throwable
+   {
+      Assert.fail("This advice should never be executed");
+      return CurrentInvocation.proceed();
+   }
+   
+   /* AROUND22 ADVICE */
+   
+   public Object around22(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Arg int arg) throws Throwable
+   {
+      around22 = "MethodCalledByMethodInvocation,int";
+      return invocation.invokeNext();
+   }
+   
+   public Object around22(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Args Object[] args) throws Throwable
+   {
+      around22 = "MethodCalledByMethodInvocation,Object[]";
+      return invocation.invokeNext();
+   }
+   
+   public Object around22(@JoinPoint MethodCalledByMethodInvocation invocation)
+      throws Throwable
+   {
+      around22= "MethodCalledByMethodInvocation";
+      return invocation.invokeNext();
+   }
+   
+   public Object around22(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Arg int arg) throws Throwable
+   {
+      around22 = "OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around22(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Arg int arg) throws Throwable
+   {
+      around22 = "OverloadedAdvicePOJO,SuperClass,int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around22(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Arg int arg) throws Throwable
+   {
+      around22 = "Object,OverloadedAdvicePOJOCaller,int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around22(@Target Object target, @Caller SuperClass caller,
+         @Arg int arg) throws Throwable
+   {
+      around22 = "Object,SuperClass,int";
+      return CurrentInvocation.proceed();
+   }
+ 
+   public Object around22(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Args Object[] args)
+      throws Throwable
+   {
+      around22 = "OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around22(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Args Object[] args) throws Throwable
+   {
+      around22 = "OverloadedAdvicePOJO,SuperClass,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around22(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Args Object[] args)
+      throws Throwable
+   {
+      around22 = "Object,OverloadedAdvicePOJOCaller,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around22(@Target Object target, @Caller SuperClass caller,
+         @Args Object[] args) throws Throwable
+   {
+      around22 = "Object,SuperClass,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around22(@Target OverloadedAdvicePOJO target, @Arg int arg)
+      throws Throwable
+   {
+      around22 = "OverloadedAdvicePOJO,int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around22(@Target Object target, @Arg int arg) throws Throwable
+   {
+      around22 = "Object,int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around22(@Target OverloadedAdvicePOJO target, @Args Object[] args)
+      throws Throwable
+   {
+      around22 = "OverloadedAdvicePOJO,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around22(@Target Object target, @Args Object[] args) throws Throwable
+   {
+      around22 = "Object,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around22(@Target OverloadedAdvicePOJO target) throws Throwable
+   {
+      around22 = "OverloadedAdvicePOJO";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around22(@Target Object target) throws Throwable
+   {
+      around22 = "Object";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around22(@Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+      throws Throwable
+   {
+      around22 = "OverloadedAdvicePOJOCaller,int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around22(@Caller SuperClass caller, @Arg int arg) throws Throwable
+   {
+      around22 = "SuperClass,int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around22(@Caller OverloadedAdvicePOJOCaller caller,
+         @Args Object[] args) throws Throwable
+   {
+      around22 = "OverloadedAdvicePOJOCaller,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around22(@Caller SuperClass caller, @Args Object[] args)
+      throws Throwable
+   {
+      around22 = "SuperClass,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around22(@Caller OverloadedAdvicePOJOCaller caller) throws Throwable
+   {
+      around22 = "OverloadedAdvicePOJOCaller";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around22(@Caller SuperClass caller) throws Throwable
+   {
+      around22 = "SuperClass";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around22(@Arg int arg) throws Throwable
+   {
+      around22 = "int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around22(@Args Object[] args) throws Throwable
+   {
+      around22 = "Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around22(@Arg int arg, @Args Object[] args) throws Throwable
+   {
+      Assert.fail("This advice should never be executed");
+      return CurrentInvocation.proceed();
+   }
+   
+   /* AROUND23 ADVICE */
+   
+   public Object around23(@JoinPoint MethodCalledByMethodInvocation invocation,
+         @Args Object[] args) throws Throwable
+   {
+      around23 = "MethodCalledByMethodInvocation,Object[]";
+      return invocation.invokeNext();
+   }
+   
+   public Object around23(@JoinPoint MethodCalledByMethodInvocation invocation)
+      throws Throwable
+   {
+      around23= "MethodCalledByMethodInvocation";
+      return invocation.invokeNext();
+   }
+   
+   public Object around23(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Arg int arg) throws Throwable
+   {
+      around23 = "OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around23(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Arg int arg) throws Throwable
+   {
+      around23 = "OverloadedAdvicePOJO,SuperClass,int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around23(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Arg int arg) throws Throwable
+   {
+      around23 = "Object,OverloadedAdvicePOJOCaller,int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around23(@Target Object target, @Caller SuperClass caller,
+         @Arg int arg) throws Throwable
+   {
+      around23 = "Object,SuperClass,int";
+      return CurrentInvocation.proceed();
+   }
+ 
+   public Object around23(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Args Object[] args)
+      throws Throwable
+   {
+      around23 = "OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around23(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Args Object[] args) throws Throwable
+   {
+      around23 = "OverloadedAdvicePOJO,SuperClass,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around23(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Args Object[] args)
+      throws Throwable
+   {
+      around23 = "Object,OverloadedAdvicePOJOCaller,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around23(@Target Object target, @Caller SuperClass caller,
+         @Args Object[] args) throws Throwable
+   {
+      around23 = "Object,SuperClass,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around23(@Target OverloadedAdvicePOJO target, @Arg int arg)
+      throws Throwable
+   {
+      around23 = "OverloadedAdvicePOJO,int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around23(@Target Object target, @Arg int arg) throws Throwable
+   {
+      around23 = "Object,int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around23(@Target OverloadedAdvicePOJO target, @Args Object[] args)
+      throws Throwable
+   {
+      around23 = "OverloadedAdvicePOJO,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around23(@Target Object target, @Args Object[] args) throws Throwable
+   {
+      around23 = "Object,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around23(@Target OverloadedAdvicePOJO target) throws Throwable
+   {
+      around23 = "OverloadedAdvicePOJO";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around23(@Target Object target) throws Throwable
+   {
+      around23 = "Object";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around23(@Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+      throws Throwable
+   {
+      around23 = "OverloadedAdvicePOJOCaller,int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around23(@Caller SuperClass caller, @Arg int arg) throws Throwable
+   {
+      around23 = "SuperClass,int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around23(@Caller OverloadedAdvicePOJOCaller caller,
+         @Args Object[] args) throws Throwable
+   {
+      around23 = "OverloadedAdvicePOJOCaller,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around23(@Caller SuperClass caller, @Args Object[] args)
+      throws Throwable
+   {
+      around23 = "SuperClass,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around23(@Caller OverloadedAdvicePOJOCaller caller) throws Throwable
+   {
+      around23 = "OverloadedAdvicePOJOCaller";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around23(@Caller SuperClass caller) throws Throwable
+   {
+      around23 = "SuperClass";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around23(@Arg int arg) throws Throwable
+   {
+      around23 = "int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around23(@Args Object[] args) throws Throwable
+   {
+      around23 = "Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around23(@Arg int arg, @Args Object[] args) throws Throwable
+   {
+      Assert.fail("This advice should never be executed");
+      return CurrentInvocation.proceed();
+   }
+   
+   /* AROUND24 ADVICE */
+   
+   public Object around24(@JoinPoint MethodCalledByMethodInvocation invocation)
+      throws Throwable
+   {
+      around24= "MethodCalledByMethodInvocation";
+      return invocation.invokeNext();
+   }
+   
+   public Object around24(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Arg int arg) throws Throwable
+   {
+      around24 = "OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around24(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Arg int arg) throws Throwable
+   {
+      around24 = "OverloadedAdvicePOJO,SuperClass,int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around24(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Arg int arg) throws Throwable
+   {
+      around24 = "Object,OverloadedAdvicePOJOCaller,int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around24(@Target Object target, @Caller SuperClass caller,
+         @Arg int arg) throws Throwable
+   {
+      around24 = "Object,SuperClass,int";
+      return CurrentInvocation.proceed();
+   }
+ 
+   public Object around24(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Args Object[] args)
+      throws Throwable
+   {
+      around24 = "OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around24(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Args Object[] args) throws Throwable
+   {
+      around24 = "OverloadedAdvicePOJO,SuperClass,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around24(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Args Object[] args)
+      throws Throwable
+   {
+      around24 = "Object,OverloadedAdvicePOJOCaller,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around24(@Target Object target, @Caller SuperClass caller,
+         @Args Object[] args) throws Throwable
+   {
+      around24 = "Object,SuperClass,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around24(@Target OverloadedAdvicePOJO target, @Arg int arg)
+      throws Throwable
+   {
+      around24 = "OverloadedAdvicePOJO,int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around24(@Target Object target, @Arg int arg) throws Throwable
+   {
+      around24 = "Object,int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around24(@Target OverloadedAdvicePOJO target, @Args Object[] args)
+      throws Throwable
+   {
+      around24 = "OverloadedAdvicePOJO,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around24(@Target Object target, @Args Object[] args) throws Throwable
+   {
+      around24 = "Object,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around24(@Target OverloadedAdvicePOJO target) throws Throwable
+   {
+      around24 = "OverloadedAdvicePOJO";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around24(@Target Object target) throws Throwable
+   {
+      around24 = "Object";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around24(@Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+      throws Throwable
+   {
+      around24 = "OverloadedAdvicePOJOCaller,int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around24(@Caller SuperClass caller, @Arg int arg) throws Throwable
+   {
+      around24 = "SuperClass,int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around24(@Caller OverloadedAdvicePOJOCaller caller,
+         @Args Object[] args) throws Throwable
+   {
+      around24 = "OverloadedAdvicePOJOCaller,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around24(@Caller SuperClass caller, @Args Object[] args)
+      throws Throwable
+   {
+      around24 = "SuperClass,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around24(@Caller OverloadedAdvicePOJOCaller caller) throws Throwable
+   {
+      around24 = "OverloadedAdvicePOJOCaller";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around24(@Caller SuperClass caller) throws Throwable
+   {
+      around24 = "SuperClass";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around24(@Arg int arg) throws Throwable
+   {
+      around24 = "int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around24(@Args Object[] args) throws Throwable
+   {
+      around24 = "Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around24(@Arg int arg, @Args Object[] args) throws Throwable
+   {
+      Assert.fail("This advice should never be executed");
+      return CurrentInvocation.proceed();
+   }
+   
+   /* AROUND25 ADVICE */
+   
+   public Object around25(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Arg int arg) throws Throwable
+   {
+      around25 = "OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around25(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Arg int arg) throws Throwable
+   {
+      around25 = "OverloadedAdvicePOJO,SuperClass,int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around25(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Arg int arg) throws Throwable
+   {
+      around25 = "Object,OverloadedAdvicePOJOCaller,int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around25(@Target Object target, @Caller SuperClass caller,
+         @Arg int arg) throws Throwable
+   {
+      around25 = "Object,SuperClass,int";
+      return CurrentInvocation.proceed();
+   }
+ 
+   public Object around25(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Args Object[] args)
+      throws Throwable
+   {
+      around25 = "OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around25(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Args Object[] args) throws Throwable
+   {
+      around25 = "OverloadedAdvicePOJO,SuperClass,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around25(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Args Object[] args)
+      throws Throwable
+   {
+      around25 = "Object,OverloadedAdvicePOJOCaller,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around25(@Target Object target, @Caller SuperClass caller,
+         @Args Object[] args) throws Throwable
+   {
+      around25 = "Object,SuperClass,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around25(@Target OverloadedAdvicePOJO target, @Arg int arg)
+      throws Throwable
+   {
+      around25 = "OverloadedAdvicePOJO,int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around25(@Target Object target, @Arg int arg) throws Throwable
+   {
+      around25 = "Object,int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around25(@Target OverloadedAdvicePOJO target, @Args Object[] args)
+      throws Throwable
+   {
+      around25 = "OverloadedAdvicePOJO,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around25(@Target Object target, @Args Object[] args) throws Throwable
+   {
+      around25 = "Object,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around25(@Target OverloadedAdvicePOJO target) throws Throwable
+   {
+      around25 = "OverloadedAdvicePOJO";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around25(@Target Object target) throws Throwable
+   {
+      around25 = "Object";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around25(@Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+      throws Throwable
+   {
+      around25 = "OverloadedAdvicePOJOCaller,int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around25(@Caller SuperClass caller, @Arg int arg) throws Throwable
+   {
+      around25 = "SuperClass,int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around25(@Caller OverloadedAdvicePOJOCaller caller,
+         @Args Object[] args) throws Throwable
+   {
+      around25 = "OverloadedAdvicePOJOCaller,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around25(@Caller SuperClass caller, @Args Object[] args)
+      throws Throwable
+   {
+      around25 = "SuperClass,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around25(@Caller OverloadedAdvicePOJOCaller caller) throws Throwable
+   {
+      around25 = "OverloadedAdvicePOJOCaller";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around25(@Caller SuperClass caller) throws Throwable
+   {
+      around25 = "SuperClass";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around25(@Arg int arg) throws Throwable
+   {
+      around25 = "int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around25(@Args Object[] args) throws Throwable
+   {
+      around25 = "Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around25(@Arg int arg, @Args Object[] args) throws Throwable
+   {
+      Assert.fail("This advice should never be executed");
+      return CurrentInvocation.proceed();
+   }
+   
+   /* AROUND26 ADVICE */
+   
+   public Object around26(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Arg int arg) throws Throwable
+   {
+      around26 = "OverloadedAdvicePOJO,SuperClass,int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around26(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Arg int arg) throws Throwable
+   {
+      around26 = "Object,OverloadedAdvicePOJOCaller,int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around26(@Target Object target, @Caller SuperClass caller,
+         @Arg int arg) throws Throwable
+   {
+      around26 = "Object,SuperClass,int";
+      return CurrentInvocation.proceed();
+   }
+ 
+   public Object around26(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Args Object[] args)
+      throws Throwable
+   {
+      around26 = "OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around26(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Args Object[] args) throws Throwable
+   {
+      around26 = "OverloadedAdvicePOJO,SuperClass,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around26(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Args Object[] args)
+      throws Throwable
+   {
+      around26 = "Object,OverloadedAdvicePOJOCaller,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around26(@Target Object target, @Caller SuperClass caller,
+         @Args Object[] args) throws Throwable
+   {
+      around26 = "Object,SuperClass,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around26(@Target OverloadedAdvicePOJO target, @Arg int arg)
+      throws Throwable
+   {
+      around26 = "OverloadedAdvicePOJO,int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around26(@Target Object target, @Arg int arg) throws Throwable
+   {
+      around26 = "Object,int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around26(@Target OverloadedAdvicePOJO target, @Args Object[] args)
+      throws Throwable
+   {
+      around26 = "OverloadedAdvicePOJO,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around26(@Target Object target, @Args Object[] args) throws Throwable
+   {
+      around26 = "Object,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around26(@Target OverloadedAdvicePOJO target) throws Throwable
+   {
+      around26 = "OverloadedAdvicePOJO";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around26(@Target Object target) throws Throwable
+   {
+      around26 = "Object";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around26(@Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+      throws Throwable
+   {
+      around26 = "OverloadedAdvicePOJOCaller,int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around26(@Caller SuperClass caller, @Arg int arg) throws Throwable
+   {
+      around26 = "SuperClass,int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around26(@Caller OverloadedAdvicePOJOCaller caller,
+         @Args Object[] args) throws Throwable
+   {
+      around26 = "OverloadedAdvicePOJOCaller,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around26(@Caller SuperClass caller, @Args Object[] args)
+      throws Throwable
+   {
+      around26 = "SuperClass,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around26(@Caller OverloadedAdvicePOJOCaller caller) throws Throwable
+   {
+      around26 = "OverloadedAdvicePOJOCaller";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around26(@Caller SuperClass caller) throws Throwable
+   {
+      around26 = "SuperClass";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around26(@Arg int arg) throws Throwable
+   {
+      around26 = "int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around26(@Args Object[] args) throws Throwable
+   {
+      around26 = "Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around26(@Arg int arg, @Args Object[] args) throws Throwable
+   {
+      Assert.fail("This advice should never be executed");
+      return CurrentInvocation.proceed();
+   }
+   
+   /* AROUND27 ADVICE */
+   
+   public Object around27(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Arg int arg) throws Throwable
+   {
+      around27 = "Object,OverloadedAdvicePOJOCaller,int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around27(@Target Object target, @Caller SuperClass caller,
+         @Arg int arg) throws Throwable
+   {
+      around27 = "Object,SuperClass,int";
+      return CurrentInvocation.proceed();
+   }
+ 
+   public Object around27(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Args Object[] args)
+      throws Throwable
+   {
+      around27 = "OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around27(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Args Object[] args) throws Throwable
+   {
+      around27 = "OverloadedAdvicePOJO,SuperClass,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around27(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Args Object[] args)
+      throws Throwable
+   {
+      around27 = "Object,OverloadedAdvicePOJOCaller,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around27(@Target Object target, @Caller SuperClass caller,
+         @Args Object[] args) throws Throwable
+   {
+      around27 = "Object,SuperClass,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around27(@Target OverloadedAdvicePOJO target, @Arg int arg)
+      throws Throwable
+   {
+      around27 = "OverloadedAdvicePOJO,int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around27(@Target Object target, @Arg int arg) throws Throwable
+   {
+      around27 = "Object,int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around27(@Target OverloadedAdvicePOJO target, @Args Object[] args)
+      throws Throwable
+   {
+      around27 = "OverloadedAdvicePOJO,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around27(@Target Object target, @Args Object[] args) throws Throwable
+   {
+      around27 = "Object,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around27(@Target OverloadedAdvicePOJO target) throws Throwable
+   {
+      around27 = "OverloadedAdvicePOJO";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around27(@Target Object target) throws Throwable
+   {
+      around27 = "Object";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around27(@Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+      throws Throwable
+   {
+      around27 = "OverloadedAdvicePOJOCaller,int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around27(@Caller SuperClass caller, @Arg int arg) throws Throwable
+   {
+      around27 = "SuperClass,int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around27(@Caller OverloadedAdvicePOJOCaller caller,
+         @Args Object[] args) throws Throwable
+   {
+      around27 = "OverloadedAdvicePOJOCaller,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around27(@Caller SuperClass caller, @Args Object[] args)
+      throws Throwable
+   {
+      around27 = "SuperClass,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around27(@Caller OverloadedAdvicePOJOCaller caller) throws Throwable
+   {
+      around27 = "OverloadedAdvicePOJOCaller";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around27(@Caller SuperClass caller) throws Throwable
+   {
+      around27 = "SuperClass";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around27(@Arg int arg) throws Throwable
+   {
+      around27 = "int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around27(@Args Object[] args) throws Throwable
+   {
+      around27 = "Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around27(@Arg int arg, @Args Object[] args) throws Throwable
+   {
+      Assert.fail("This advice should never be executed");
+      return CurrentInvocation.proceed();
+   }
+   
+   /* AROUND28 ADVICE */
+   
+   public Object around28(@Target Object target, @Caller SuperClass caller,
+         @Arg int arg) throws Throwable
+   {
+      around28 = "Object,SuperClass,int";
+      return CurrentInvocation.proceed();
+   }
+ 
+   public Object around28(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Args Object[] args)
+      throws Throwable
+   {
+      around28 = "OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around28(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Args Object[] args) throws Throwable
+   {
+      around28 = "OverloadedAdvicePOJO,SuperClass,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around28(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Args Object[] args)
+      throws Throwable
+   {
+      around28 = "Object,OverloadedAdvicePOJOCaller,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around28(@Target Object target, @Caller SuperClass caller,
+         @Args Object[] args) throws Throwable
+   {
+      around28 = "Object,SuperClass,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around28(@Target OverloadedAdvicePOJO target, @Arg int arg)
+      throws Throwable
+   {
+      around28 = "OverloadedAdvicePOJO,int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around28(@Target Object target, @Arg int arg) throws Throwable
+   {
+      around28 = "Object,int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around28(@Target OverloadedAdvicePOJO target, @Args Object[] args)
+      throws Throwable
+   {
+      around28 = "OverloadedAdvicePOJO,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around28(@Target Object target, @Args Object[] args) throws Throwable
+   {
+      around28 = "Object,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around28(@Target OverloadedAdvicePOJO target) throws Throwable
+   {
+      around28 = "OverloadedAdvicePOJO";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around28(@Target Object target) throws Throwable
+   {
+      around28 = "Object";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around28(@Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+      throws Throwable
+   {
+      around28 = "OverloadedAdvicePOJOCaller,int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around28(@Caller SuperClass caller, @Arg int arg) throws Throwable
+   {
+      around28 = "SuperClass,int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around28(@Caller OverloadedAdvicePOJOCaller caller,
+         @Args Object[] args) throws Throwable
+   {
+      around28 = "OverloadedAdvicePOJOCaller,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around28(@Caller SuperClass caller, @Args Object[] args)
+      throws Throwable
+   {
+      around28 = "SuperClass,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around28(@Caller OverloadedAdvicePOJOCaller caller) throws Throwable
+   {
+      around28 = "OverloadedAdvicePOJOCaller";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around28(@Caller SuperClass caller) throws Throwable
+   {
+      around28 = "SuperClass";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around28(@Arg int arg) throws Throwable
+   {
+      around28 = "int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around28(@Args Object[] args) throws Throwable
+   {
+      around28 = "Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around28(@Arg int arg, @Args Object[] args) throws Throwable
+   {
+      Assert.fail("This advice should never be executed");
+      return CurrentInvocation.proceed();
+   }
+   
+   /* AROUND29 ADVICE */
+   
+   public Object around29(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Args Object[] args)
+      throws Throwable
+   {
+      around29 = "OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around29(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Args Object[] args) throws Throwable
+   {
+      around29 = "OverloadedAdvicePOJO,SuperClass,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around29(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Args Object[] args)
+      throws Throwable
+   {
+      around29 = "Object,OverloadedAdvicePOJOCaller,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around29(@Target Object target, @Caller SuperClass caller,
+         @Args Object[] args) throws Throwable
+   {
+      around29 = "Object,SuperClass,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around29(@Target OverloadedAdvicePOJO target, @Arg int arg)
+      throws Throwable
+   {
+      around29 = "OverloadedAdvicePOJO,int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around29(@Target Object target, @Arg int arg) throws Throwable
+   {
+      around29 = "Object,int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around29(@Target OverloadedAdvicePOJO target, @Args Object[] args)
+      throws Throwable
+   {
+      around29 = "OverloadedAdvicePOJO,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around29(@Target Object target, @Args Object[] args) throws Throwable
+   {
+      around29 = "Object,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around29(@Target OverloadedAdvicePOJO target) throws Throwable
+   {
+      around29 = "OverloadedAdvicePOJO";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around29(@Target Object target) throws Throwable
+   {
+      around29 = "Object";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around29(@Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+      throws Throwable
+   {
+      around29 = "OverloadedAdvicePOJOCaller,int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around29(@Caller SuperClass caller, @Arg int arg) throws Throwable
+   {
+      around29 = "SuperClass,int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around29(@Caller OverloadedAdvicePOJOCaller caller,
+         @Args Object[] args) throws Throwable
+   {
+      around29 = "OverloadedAdvicePOJOCaller,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around29(@Caller SuperClass caller, @Args Object[] args)
+      throws Throwable
+   {
+      around29 = "SuperClass,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around29(@Caller OverloadedAdvicePOJOCaller caller) throws Throwable
+   {
+      around29 = "OverloadedAdvicePOJOCaller";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around29(@Caller SuperClass caller) throws Throwable
+   {
+      around29 = "SuperClass";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around29(@Arg int arg) throws Throwable
+   {
+      around29 = "int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around29(@Args Object[] args) throws Throwable
+   {
+      around29 = "Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around29(@Arg int arg, @Args Object[] args) throws Throwable
+   {
+      Assert.fail("This advice should never be executed");
+      return CurrentInvocation.proceed();
+   }
+   
+   /* AROUND30 ADVICE */
+   
+   public Object around30(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Args Object[] args) throws Throwable
+   {
+      around30 = "OverloadedAdvicePOJO,SuperClass,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around30(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Args Object[] args)
+      throws Throwable
+   {
+      around30 = "Object,OverloadedAdvicePOJOCaller,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around30(@Target Object target, @Caller SuperClass caller,
+         @Args Object[] args) throws Throwable
+   {
+      around30 = "Object,SuperClass,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around30(@Target OverloadedAdvicePOJO target, @Arg int arg)
+      throws Throwable
+   {
+      around30 = "OverloadedAdvicePOJO,int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around30(@Target Object target, @Arg int arg) throws Throwable
+   {
+      around30 = "Object,int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around30(@Target OverloadedAdvicePOJO target, @Args Object[] args)
+      throws Throwable
+   {
+      around30 = "OverloadedAdvicePOJO,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around30(@Target Object target, @Args Object[] args) throws Throwable
+   {
+      around30 = "Object,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around30(@Target OverloadedAdvicePOJO target) throws Throwable
+   {
+      around30 = "OverloadedAdvicePOJO";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around30(@Target Object target) throws Throwable
+   {
+      around30 = "Object";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around30(@Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+      throws Throwable
+   {
+      around30 = "OverloadedAdvicePOJOCaller,int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around30(@Caller SuperClass caller, @Arg int arg) throws Throwable
+   {
+      around30 = "SuperClass,int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around30(@Caller OverloadedAdvicePOJOCaller caller,
+         @Args Object[] args) throws Throwable
+   {
+      around30 = "OverloadedAdvicePOJOCaller,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around30(@Caller SuperClass caller, @Args Object[] args)
+      throws Throwable
+   {
+      around30 = "SuperClass,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around30(@Caller OverloadedAdvicePOJOCaller caller) throws Throwable
+   {
+      around30 = "OverloadedAdvicePOJOCaller";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around30(@Caller SuperClass caller) throws Throwable
+   {
+      around30 = "SuperClass";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around30(@Arg int arg) throws Throwable
+   {
+      around30 = "int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around30(@Args Object[] args) throws Throwable
+   {
+      around30 = "Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around30(@Arg int arg, @Args Object[] args) throws Throwable
+   {
+      Assert.fail("This advice should never be executed");
+      return CurrentInvocation.proceed();
+   }
+   
+   /* AROUND31 ADVICE */
+   
+   public Object around31(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Args Object[] args)
+      throws Throwable
+   {
+      around31 = "Object,OverloadedAdvicePOJOCaller,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around31(@Target Object target, @Caller SuperClass caller,
+         @Args Object[] args) throws Throwable
+   {
+      around31 = "Object,SuperClass,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around31(@Target OverloadedAdvicePOJO target, @Arg int arg)
+      throws Throwable
+   {
+      around31 = "OverloadedAdvicePOJO,int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around31(@Target Object target, @Arg int arg) throws Throwable
+   {
+      around31 = "Object,int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around31(@Target OverloadedAdvicePOJO target, @Args Object[] args)
+      throws Throwable
+   {
+      around31 = "OverloadedAdvicePOJO,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around31(@Target Object target, @Args Object[] args) throws Throwable
+   {
+      around31 = "Object,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around31(@Target OverloadedAdvicePOJO target) throws Throwable
+   {
+      around31 = "OverloadedAdvicePOJO";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around31(@Target Object target) throws Throwable
+   {
+      around31 = "Object";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around31(@Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+      throws Throwable
+   {
+      around31 = "OverloadedAdvicePOJOCaller,int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around31(@Caller SuperClass caller, @Arg int arg) throws Throwable
+   {
+      around31 = "SuperClass,int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around31(@Caller OverloadedAdvicePOJOCaller caller,
+         @Args Object[] args) throws Throwable
+   {
+      around31 = "OverloadedAdvicePOJOCaller,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around31(@Caller SuperClass caller, @Args Object[] args)
+      throws Throwable
+   {
+      around31 = "SuperClass,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around31(@Caller OverloadedAdvicePOJOCaller caller) throws Throwable
+   {
+      around31 = "OverloadedAdvicePOJOCaller";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around31(@Caller SuperClass caller) throws Throwable
+   {
+      around31 = "SuperClass";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around31(@Arg int arg) throws Throwable
+   {
+      around31 = "int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around31(@Args Object[] args) throws Throwable
+   {
+      around31 = "Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around31(@Arg int arg, @Args Object[] args) throws Throwable
+   {
+      Assert.fail("This advice should never be executed");
+      return CurrentInvocation.proceed();
+   }
+   
+   /* AROUND32 ADVICE */
+   
+   public Object around32(@Target Object target, @Caller SuperClass caller,
+         @Args Object[] args) throws Throwable
+   {
+      around32 = "Object,SuperClass,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around32(@Target OverloadedAdvicePOJO target, @Arg int arg)
+      throws Throwable
+   {
+      around32 = "OverloadedAdvicePOJO,int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around32(@Target Object target, @Arg int arg) throws Throwable
+   {
+      around32 = "Object,int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around32(@Target OverloadedAdvicePOJO target, @Args Object[] args)
+      throws Throwable
+   {
+      around32 = "OverloadedAdvicePOJO,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around32(@Target Object target, @Args Object[] args) throws Throwable
+   {
+      around32 = "Object,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around32(@Target OverloadedAdvicePOJO target) throws Throwable
+   {
+      around32 = "OverloadedAdvicePOJO";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around32(@Target Object target) throws Throwable
+   {
+      around32 = "Object";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around32(@Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+      throws Throwable
+   {
+      around32 = "OverloadedAdvicePOJOCaller,int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around32(@Caller SuperClass caller, @Arg int arg) throws Throwable
+   {
+      around32 = "SuperClass,int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around32(@Caller OverloadedAdvicePOJOCaller caller,
+         @Args Object[] args) throws Throwable
+   {
+      around32 = "OverloadedAdvicePOJOCaller,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around32(@Caller SuperClass caller, @Args Object[] args)
+      throws Throwable
+   {
+      around32 = "SuperClass,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around32(@Caller OverloadedAdvicePOJOCaller caller) throws Throwable
+   {
+      around32 = "OverloadedAdvicePOJOCaller";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around32(@Caller SuperClass caller) throws Throwable
+   {
+      around32 = "SuperClass";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around32(@Arg int arg) throws Throwable
+   {
+      around32 = "int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around32(@Args Object[] args) throws Throwable
+   {
+      around32 = "Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around32(@Arg int arg, @Args Object[] args) throws Throwable
+   {
+      Assert.fail("This advice should never be executed");
+      return CurrentInvocation.proceed();
+   }
+   
+   /* AROUND33 ADVICE */
+   
+   public Object around33(@Target OverloadedAdvicePOJO target, @Arg int arg)
+      throws Throwable
+   {
+      around33 = "OverloadedAdvicePOJO,int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around33(@Target Object target, @Arg int arg) throws Throwable
+   {
+      around33 = "Object,int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around33(@Target OverloadedAdvicePOJO target, @Args Object[] args)
+      throws Throwable
+   {
+      around33 = "OverloadedAdvicePOJO,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around33(@Target Object target, @Args Object[] args) throws Throwable
+   {
+      around33 = "Object,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around33(@Target OverloadedAdvicePOJO target) throws Throwable
+   {
+      around33 = "OverloadedAdvicePOJO";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around33(@Target Object target) throws Throwable
+   {
+      around33 = "Object";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around33(@Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+      throws Throwable
+   {
+      around33 = "OverloadedAdvicePOJOCaller,int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around33(@Caller SuperClass caller, @Arg int arg) throws Throwable
+   {
+      around33 = "SuperClass,int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around33(@Caller OverloadedAdvicePOJOCaller caller,
+         @Args Object[] args) throws Throwable
+   {
+      around33 = "OverloadedAdvicePOJOCaller,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around33(@Caller SuperClass caller, @Args Object[] args)
+      throws Throwable
+   {
+      around33 = "SuperClass,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around33(@Caller OverloadedAdvicePOJOCaller caller) throws Throwable
+   {
+      around33 = "OverloadedAdvicePOJOCaller";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around33(@Caller SuperClass caller) throws Throwable
+   {
+      around33 = "SuperClass";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around33(@Arg int arg) throws Throwable
+   {
+      around33 = "int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around33(@Args Object[] args) throws Throwable
+   {
+      around33 = "Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around33(@Arg int arg, @Args Object[] args) throws Throwable
+   {
+      Assert.fail("This advice should never be executed");
+      return CurrentInvocation.proceed();
+   }
+   
+   /* AROUND34 ADVICE */
+   
+   public Object around34(@Target Object target, @Arg int arg) throws Throwable
+   {
+      around34 = "Object,int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around34(@Target OverloadedAdvicePOJO target, @Args Object[] args)
+      throws Throwable
+   {
+      around34 = "OverloadedAdvicePOJO,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around34(@Target Object target, @Args Object[] args) throws Throwable
+   {
+      around34 = "Object,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around34(@Target OverloadedAdvicePOJO target) throws Throwable
+   {
+      around34 = "OverloadedAdvicePOJO";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around34(@Target Object target) throws Throwable
+   {
+      around34 = "Object";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around34(@Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+      throws Throwable
+   {
+      around34 = "OverloadedAdvicePOJOCaller,int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around34(@Caller SuperClass caller, @Arg int arg) throws Throwable
+   {
+      around34 = "SuperClass,int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around34(@Caller OverloadedAdvicePOJOCaller caller,
+         @Args Object[] args) throws Throwable
+   {
+      around34 = "OverloadedAdvicePOJOCaller,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around34(@Caller SuperClass caller, @Args Object[] args)
+      throws Throwable
+   {
+      around34 = "SuperClass,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around34(@Caller OverloadedAdvicePOJOCaller caller) throws Throwable
+   {
+      around34 = "OverloadedAdvicePOJOCaller";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around34(@Caller SuperClass caller) throws Throwable
+   {
+      around34 = "SuperClass";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around34(@Arg int arg) throws Throwable
+   {
+      around34 = "int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around34(@Args Object[] args) throws Throwable
+   {
+      around34 = "Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around34(@Arg int arg, @Args Object[] args) throws Throwable
+   {
+      Assert.fail("This advice should never be executed");
+      return CurrentInvocation.proceed();
+   }
+   
+   /* AROUND35 ADVICE */
+   
+   public Object around35(@Target OverloadedAdvicePOJO target, @Args Object[] args)
+      throws Throwable
+   {
+      around35 = "OverloadedAdvicePOJO,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around35(@Target Object target, @Args Object[] args) throws Throwable
+   {
+      around35 = "Object,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around35(@Target OverloadedAdvicePOJO target) throws Throwable
+   {
+      around35 = "OverloadedAdvicePOJO";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around35(@Target Object target) throws Throwable
+   {
+      around35 = "Object";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around35(@Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+      throws Throwable
+   {
+      around35 = "OverloadedAdvicePOJOCaller,int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around35(@Caller SuperClass caller, @Arg int arg) throws Throwable
+   {
+      around35 = "SuperClass,int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around35(@Caller OverloadedAdvicePOJOCaller caller,
+         @Args Object[] args) throws Throwable
+   {
+      around35 = "OverloadedAdvicePOJOCaller,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around35(@Caller SuperClass caller, @Args Object[] args)
+      throws Throwable
+   {
+      around35 = "SuperClass,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around35(@Caller OverloadedAdvicePOJOCaller caller) throws Throwable
+   {
+      around35 = "OverloadedAdvicePOJOCaller";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around35(@Caller SuperClass caller) throws Throwable
+   {
+      around35 = "SuperClass";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around35(@Arg int arg) throws Throwable
+   {
+      around35 = "int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around35(@Args Object[] args) throws Throwable
+   {
+      around35 = "Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around35(@Arg int arg, @Args Object[] args) throws Throwable
+   {
+      Assert.fail("This advice should never be executed");
+      return CurrentInvocation.proceed();
+   }
+   
+   /* AROUND36 ADVICE */
+   
+   public Object around36(@Target Object target, @Args Object[] args) throws Throwable
+   {
+      around36 = "Object,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around36(@Target OverloadedAdvicePOJO target) throws Throwable
+   {
+      around36 = "OverloadedAdvicePOJO";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around36(@Target Object target) throws Throwable
+   {
+      around36 = "Object";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around36(@Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+      throws Throwable
+   {
+      around36 = "OverloadedAdvicePOJOCaller,int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around36(@Caller SuperClass caller, @Arg int arg) throws Throwable
+   {
+      around36 = "SuperClass,int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around36(@Caller OverloadedAdvicePOJOCaller caller,
+         @Args Object[] args) throws Throwable
+   {
+      around36 = "OverloadedAdvicePOJOCaller,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around36(@Caller SuperClass caller, @Args Object[] args)
+      throws Throwable
+   {
+      around36 = "SuperClass,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around36(@Caller OverloadedAdvicePOJOCaller caller) throws Throwable
+   {
+      around36 = "OverloadedAdvicePOJOCaller";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around36(@Caller SuperClass caller) throws Throwable
+   {
+      around36 = "SuperClass";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around36(@Arg int arg) throws Throwable
+   {
+      around36 = "int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around36(@Args Object[] args) throws Throwable
+   {
+      around36 = "Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around36(@Arg int arg, @Args Object[] args) throws Throwable
+   {
+      Assert.fail("This advice should never be executed");
+      return CurrentInvocation.proceed();
+   }
+   
+   /* AROUND37 ADVICE */
+   
+   public Object around37(@Target OverloadedAdvicePOJO target) throws Throwable
+   {
+      around37 = "OverloadedAdvicePOJO";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around37(@Target Object target) throws Throwable
+   {
+      around37 = "Object";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around37(@Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+      throws Throwable
+   {
+      around37 = "OverloadedAdvicePOJOCaller,int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around37(@Caller SuperClass caller, @Arg int arg) throws Throwable
+   {
+      around37 = "SuperClass,int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around37(@Caller OverloadedAdvicePOJOCaller caller,
+         @Args Object[] args) throws Throwable
+   {
+      around37 = "OverloadedAdvicePOJOCaller,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around37(@Caller SuperClass caller, @Args Object[] args)
+      throws Throwable
+   {
+      around37 = "SuperClass,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around37(@Caller OverloadedAdvicePOJOCaller caller) throws Throwable
+   {
+      around37 = "OverloadedAdvicePOJOCaller";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around37(@Caller SuperClass caller) throws Throwable
+   {
+      around37 = "SuperClass";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around37(@Arg int arg) throws Throwable
+   {
+      around37 = "int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around37(@Args Object[] args) throws Throwable
+   {
+      around37 = "Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around37(@Arg int arg, @Args Object[] args) throws Throwable
+   {
+      Assert.fail("This advice should never be executed");
+      return CurrentInvocation.proceed();
+   }
+   
+   /* AROUND38 ADVICE */
+   
+   public Object around38(@Target Object target) throws Throwable
+   {
+      around38 = "Object";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around38(@Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+      throws Throwable
+   {
+      around38 = "OverloadedAdvicePOJOCaller,int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around38(@Caller SuperClass caller, @Arg int arg) throws Throwable
+   {
+      around38 = "SuperClass,int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around38(@Caller OverloadedAdvicePOJOCaller caller,
+         @Args Object[] args) throws Throwable
+   {
+      around38 = "OverloadedAdvicePOJOCaller,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around38(@Caller SuperClass caller, @Args Object[] args)
+      throws Throwable
+   {
+      around38 = "SuperClass,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around38(@Caller OverloadedAdvicePOJOCaller caller) throws Throwable
+   {
+      around38 = "OverloadedAdvicePOJOCaller";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around38(@Caller SuperClass caller) throws Throwable
+   {
+      around38 = "SuperClass";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around38(@Arg int arg) throws Throwable
+   {
+      around38 = "int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around38(@Args Object[] args) throws Throwable
+   {
+      around38 = "Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around38(@Arg int arg, @Args Object[] args) throws Throwable
+   {
+      Assert.fail("This advice should never be executed");
+      return CurrentInvocation.proceed();
+   }
+   
+   /* AROUND39 ADVICE */
+   
+   public Object around39(@Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+      throws Throwable
+   {
+      around39 = "OverloadedAdvicePOJOCaller,int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around39(@Caller SuperClass caller, @Arg int arg) throws Throwable
+   {
+      around39 = "SuperClass,int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around39(@Caller OverloadedAdvicePOJOCaller caller,
+         @Args Object[] args) throws Throwable
+   {
+      around39 = "OverloadedAdvicePOJOCaller,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around39(@Caller SuperClass caller, @Args Object[] args)
+      throws Throwable
+   {
+      around39 = "SuperClass,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around39(@Caller OverloadedAdvicePOJOCaller caller) throws Throwable
+   {
+      around39 = "OverloadedAdvicePOJOCaller";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around39(@Caller SuperClass caller) throws Throwable
+   {
+      around39 = "SuperClass";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around39(@Arg int arg) throws Throwable
+   {
+      around39 = "int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around39(@Args Object[] args) throws Throwable
+   {
+      around39 = "Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around39(@Arg int arg, @Args Object[] args) throws Throwable
+   {
+      Assert.fail("This advice should never be executed");
+      return CurrentInvocation.proceed();
+   }
+   
+   /* AROUND40 ADVICE */
+   
+   public Object around40(@Caller SuperClass caller, @Arg int arg) throws Throwable
+   {
+      around40 = "SuperClass,int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around40(@Caller OverloadedAdvicePOJOCaller caller,
+         @Args Object[] args) throws Throwable
+   {
+      around40 = "OverloadedAdvicePOJOCaller,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around40(@Caller SuperClass caller, @Args Object[] args)
+      throws Throwable
+   {
+      around40 = "SuperClass,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around40(@Caller OverloadedAdvicePOJOCaller caller) throws Throwable
+   {
+      around40 = "OverloadedAdvicePOJOCaller";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around40(@Caller SuperClass caller) throws Throwable
+   {
+      around40 = "SuperClass";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around40(@Arg int arg) throws Throwable
+   {
+      around40 = "int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around40(@Args Object[] args) throws Throwable
+   {
+      around40 = "Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around40(@Arg int arg, @Args Object[] args) throws Throwable
+   {
+      Assert.fail("This advice should never be executed");
+      return CurrentInvocation.proceed();
+   }
+   
+   /* AROUND41 ADVICE */
+   
+   public Object around41(@Caller OverloadedAdvicePOJOCaller caller,
+         @Args Object[] args) throws Throwable
+   {
+      around41 = "OverloadedAdvicePOJOCaller,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around41(@Caller SuperClass caller, @Args Object[] args)
+      throws Throwable
+   {
+      around41 = "SuperClass,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around41(@Caller OverloadedAdvicePOJOCaller caller) throws Throwable
+   {
+      around41 = "OverloadedAdvicePOJOCaller";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around41(@Caller SuperClass caller) throws Throwable
+   {
+      around41 = "SuperClass";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around41(@Arg int arg) throws Throwable
+   {
+      around41 = "int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around41(@Args Object[] args) throws Throwable
+   {
+      around41 = "Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around41(@Arg int arg, @Args Object[] args) throws Throwable
+   {
+      Assert.fail("This advice should never be executed");
+      return CurrentInvocation.proceed();
+   }
+   
+   /* AROUND42 ADVICE */
+   
+   public Object around42(@Caller SuperClass caller, @Args Object[] args)
+      throws Throwable
+   {
+      around42 = "SuperClass,Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around42(@Caller OverloadedAdvicePOJOCaller caller) throws Throwable
+   {
+      around42 = "OverloadedAdvicePOJOCaller";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around42(@Caller SuperClass caller) throws Throwable
+   {
+      around42 = "SuperClass";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around42(@Arg int arg) throws Throwable
+   {
+      around42 = "int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around42(@Args Object[] args) throws Throwable
+   {
+      around42 = "Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around42(@Arg int arg, @Args Object[] args) throws Throwable
+   {
+      Assert.fail("This advice should never be executed");
+      return CurrentInvocation.proceed();
+   }
+   
+   /* AROUND43 ADVICE */
+   
+   public Object around43(@Caller OverloadedAdvicePOJOCaller caller) throws Throwable
+   {
+      around43 = "OverloadedAdvicePOJOCaller";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around43(@Caller SuperClass caller) throws Throwable
+   {
+      around43 = "SuperClass";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around43(@Arg int arg) throws Throwable
+   {
+      around43 = "int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around43(@Args Object[] args) throws Throwable
+   {
+      around43 = "Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around43(@Arg int arg, @Args Object[] args) throws Throwable
+   {
+      Assert.fail("This advice should never be executed");
+      return CurrentInvocation.proceed();
+   }
+   
+   /* AROUND44 ADVICE */
+   
+   public Object around44(@Caller SuperClass caller) throws Throwable
+   {
+      around44 = "SuperClass";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around44(@Arg int arg) throws Throwable
+   {
+      around44 = "int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around44(@Args Object[] args) throws Throwable
+   {
+      around44 = "Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around44(@Arg int arg, @Args Object[] args) throws Throwable
+   {
+      Assert.fail("This advice should never be executed");
+      return CurrentInvocation.proceed();
+   }
+   
+   /* AROUND45 ADVICE */
+   
+   public Object around45(@Arg int arg) throws Throwable
+   {
+      around45 = "int";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around45(@Args Object[] args) throws Throwable
+   {
+      around45 = "Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around45(@Arg int arg, @Args Object[] args) throws Throwable
+   {
+      Assert.fail("This advice should never be executed");
+      return CurrentInvocation.proceed();
+   }
+   
+   /* AROUND46 ADVICE */
+   
+   public Object around46(@Args Object[] args) throws Throwable
+   {
+      around46 = "Object[]";
+      return CurrentInvocation.proceed();
+   }
+   
+   public Object around46(@Arg int arg, @Args Object[] args) throws Throwable
+   {
+      Assert.fail("This advice should never be executed");
+      return CurrentInvocation.proceed();
+   }
+}
\ No newline at end of file

Modified: projects/aop/trunk/aop/src/test/org/jboss/test/aop/beforeafterArgs/OverloadedBeforeAspect.java
===================================================================
--- projects/aop/trunk/aop/src/test/org/jboss/test/aop/beforeafterArgs/OverloadedBeforeAspect.java	2007-03-03 04:29:41 UTC (rev 61065)
+++ projects/aop/trunk/aop/src/test/org/jboss/test/aop/beforeafterArgs/OverloadedBeforeAspect.java	2007-03-03 04:31:17 UTC (rev 61066)
@@ -31,8 +31,10 @@
 import org.jboss.aop.advice.annotation.JoinPoint;
 
 /**
- * Aspect used on overloaded before advice tests.
+ * Aspect used on overloaded around advice tests (for JoinPoint, Arg and Args tests).
  *
+ * This class includes hierarchy on a single Arg parameter.
+ *
  * @author <a href="flavia.rainone at jboss.com">Flavia Rainone</a>
  */
 public class OverloadedBeforeAspect

Added: projects/aop/trunk/aop/src/test/org/jboss/test/aop/beforeafterArgs/OverloadedBeforeCallAspect.java
===================================================================
--- projects/aop/trunk/aop/src/test/org/jboss/test/aop/beforeafterArgs/OverloadedBeforeCallAspect.java	                        (rev 0)
+++ projects/aop/trunk/aop/src/test/org/jboss/test/aop/beforeafterArgs/OverloadedBeforeCallAspect.java	2007-03-03 04:31:17 UTC (rev 61066)
@@ -0,0 +1,6164 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.test.aop.beforeafterArgs;
+
+import junit.framework.Assert;
+
+import org.jboss.aop.MethodByMethodInfo;
+import org.jboss.aop.advice.annotation.Arg;
+import org.jboss.aop.advice.annotation.Args;
+import org.jboss.aop.advice.annotation.Caller;
+import org.jboss.aop.advice.annotation.JoinPoint;
+import org.jboss.aop.advice.annotation.Target;
+
+/**
+ * Aspect used on overloaded before advice tests (for Call and Target tests
+ * only).
+ *
+ * @author <a href="flavia.rainone at jboss.com">Flavia Rainone</a>
+ */
+public class OverloadedBeforeCallAspect
+{
+   static String before1 = null;
+   static String before2 = null;
+   static String before3 = null;
+   static String before4 = null;
+   static String before5 = null;
+   static String before6 = null;
+   static String before7 = null;
+   static String before8 = null;
+   static String before9 = null;
+   static String before10 = null;
+   static String before11 = null;
+   static String before12 = null;
+   static String before13 = null;
+   static String before14 = null;
+   static String before15 = null;
+   static String before16 = null;
+   static String before17 = null;
+   static String before18 = null;
+   static String before19 = null;
+   static String before20 = null;
+   static String before21 = null;
+   static String before22 = null;
+   static String before23 = null;
+   static String before24 = null;
+   static String before25 = null;
+   static String before26 = null;
+   static String before27 = null;
+   static String before28 = null;
+   static String before29 = null;
+   static String before30 = null;
+   static String before31 = null;
+   static String before32 = null;
+   static String before33 = null;
+   static String before34 = null;
+   static String before35 = null;
+   static String before36 = null;
+   static String before37 = null;
+   static String before38 = null;
+   static String before39 = null;
+   static String before40 = null;
+   static String before41 = null;
+   static String before42 = null;
+   static String before43 = null;
+   static String before44 = null;
+   static String before45 = null;
+   static String before46 = null;
+   
+   public static void clear()
+   {
+      before1 = null;
+      before2 = null;
+      before3 = null;
+      before4 = null;
+      before5 = null;
+      before6 = null;
+      before7 = null;
+      before8 = null;
+      before9 = null;
+      before10 = null;
+      before11 = null;
+      before12 = null;
+      before13 = null;
+      before14 = null;
+      before15 = null;
+      before16 = null;
+      before17 = null;
+      before18 = null;
+      before19 = null;
+      before20 = null;
+      before21 = null;
+      before22 = null;
+      before23 = null;
+      before24 = null;
+      before25 = null;
+      before26 = null;
+      before27 = null;
+      before28 = null;
+      before29 = null;
+      before30 = null;
+      before31 = null;
+      before32 = null;
+      before33 = null;
+      before34 = null;
+      before35 = null;
+      before36 = null;
+      before37 = null;
+      before38 = null;
+      before39 = null;
+      before40 = null;
+      before41 = null;
+      before42 = null;
+      before43 = null;
+      before44 = null;
+      before45 = null;
+      before46 = null;
+   }
+   
+   /* BEFORE1 ADVICE */
+   
+   public void before1(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+   {
+      before1 = "MethodByMethodInfo,OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,int";
+   }
+   
+   public void before1(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Target OverloadedAdvicePOJO target, @Caller SuperClass caller,
+         @Arg int arg)
+   {
+      before1 = "MethodByMethodInfo,OverloadedAdvicePOJO,SuperClass,int";
+   }
+   
+   public void before1(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Target Object target, @Caller OverloadedAdvicePOJOCaller caller,
+         @Arg int arg)
+   {
+      before1 = "MethodByMethodInfo,Object,OverloadedAdvicePOJOCaller,int";
+   }
+   
+   public void before1(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Target Object target, @Caller SuperClass caller,
+         @Arg int arg)
+   {
+      before1 = "MethodByMethodInfo,Object,SuperClass,int";
+   }
+   
+   public void before1(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Args Object[] args)
+   {
+      before1 = "MethodByMethodInfo,OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,Object[]";
+   }
+   
+   public void before1(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Target OverloadedAdvicePOJO target, @Caller SuperClass caller,
+         @Args Object[] args)
+   {
+      before1 = "MethodByMethodInfo,OverloadedAdvicePOJO,SuperClass,Object[]";
+   }
+   
+   public void before1(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Target Object target, @Caller OverloadedAdvicePOJOCaller caller,
+         @Args Object[] args)
+   {
+      before1 = "MethodByMethodInfo,Object,OverloadedAdvicePOJOCaller,Object[]";
+   }
+   
+   public void before1(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Target Object target, @Caller SuperClass caller,
+         @Args Object[] args)
+   {
+      before1 = "MethodByMethodInfo,Object,SuperClass,Object[]";
+   }
+   
+   public void before1(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller)
+   {
+      before1 = "MethodByMethodInfo,OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller";
+   }
+   
+   public void before1(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Target OverloadedAdvicePOJO target, @Caller SuperClass caller)
+   {
+      before1 = "MethodByMethodInfo,OverloadedAdvicePOJO,SuperClass";
+   }
+   
+   public void before1(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Target Object target, @Caller OverloadedAdvicePOJOCaller caller)
+   {
+      before1 = "MethodByMethodInfo,Object,OverloadedAdvicePOJOCaller";
+   }
+   
+   public void before1(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Target Object target, @Caller SuperClass caller)
+   {
+      before1 = "MethodByMethodInfo,Object,SuperClass";
+   }
+   
+   public void before1(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Target OverloadedAdvicePOJO target, @Arg int arg)
+   {
+      before1 = "MethodByMethodInfo,OverloadedAdvicePOJO,int";
+   }
+   
+   public void before1(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Target Object target, @Arg int arg)
+   {
+      before1 = "MethodByMethodInfo,Object,int";
+   }
+   
+   public void before1(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Target OverloadedAdvicePOJO target, @Args Object[] args)
+   {
+      before1 = "MethodByMethodInfo,OverloadedAdvicePOJO,Object[]";
+   }
+   
+   public void before1(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Target Object target, @Args Object[] args)
+   {
+      before1 = "MethodByMethodInfo,Object,Object[]";
+   }
+   
+   public void before1(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+   {
+      before1 = "MethodByMethodInfo,OverloadedAdvicePOJOCaller,int";
+   }
+   
+   public void before1(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Caller SuperClass caller, @Arg int arg)
+   {
+      before1 = "MethodByMethodInfo,SuperClass,int";
+   }
+   
+   public void before1(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Caller OverloadedAdvicePOJOCaller caller, @Args Object[] args)
+   {
+      before1 = "MethodByMethodInfo,OverloadedAdvicePOJOCaller,Object[]";
+   }
+   
+   public void before1(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Caller SuperClass caller, @Args Object[] args)
+   {
+      before1 = "MethodByMethodInfo,SuperClass,Object[]";
+   }
+   
+   public void before1(@JoinPoint MethodByMethodInfo joinPointInfo, @Arg int arg)
+   {
+      before1 = "MethodByMethodInfo,int";
+   }
+   
+   public void before1(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Args Object[] args)
+   {
+      before1 = "MethodByMethodInfo,Object[]";
+   }
+   
+   public void before1(@JoinPoint MethodByMethodInfo joinPointInfo)
+   {
+      before1= "MethodByMethodInfo";
+   }
+   
+   public void before1(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+   {
+      before1 = "OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,int";
+   }
+   
+   public void before1(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Arg int arg)
+   {
+      before1 = "OverloadedAdvicePOJO,SuperClass,int";
+   }
+   
+   public void before1(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+   {
+      before1 = "Object,OverloadedAdvicePOJOCaller,int";
+   }
+   
+   public void before1(@Target Object target, @Caller SuperClass caller,
+         @Arg int arg)
+   {
+      before1 = "Object,SuperClass,int";
+   }
+ 
+   public void before1(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Args Object[] args)
+   {
+      before1 = "OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,Object[]";
+   }
+   
+   public void before1(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Args Object[] args)
+   {
+      before1 = "OverloadedAdvicePOJO,SuperClass,Object[]";
+   }
+   
+   public void before1(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Args Object[] args)
+   {
+      before1 = "Object,OverloadedAdvicePOJOCaller,Object[]";
+   }
+   
+   public void before1(@Target Object target, @Caller SuperClass caller,
+         @Args Object[] args)
+   {
+      before1 = "Object,SuperClass,Object[]";
+   }
+   
+   public void before1(@Target OverloadedAdvicePOJO target, @Arg int arg)
+   {
+      before1 = "OverloadedAdvicePOJO,int";
+   }
+   
+   public void before1(@Target Object target, @Arg int arg)
+   {
+      before1 = "Object,int";
+   }
+   
+   public void before1(@Target OverloadedAdvicePOJO target, @Args Object[] args)
+   {
+      before1 = "OverloadedAdvicePOJO,Object[]";
+   }
+   
+   public void before1(@Target Object target, @Args Object[] args)
+   {
+      before1 = "Object,Object[]";
+   }
+   
+   public void before1(@Target OverloadedAdvicePOJO target)
+   {
+      before1 = "OverloadedAdvicePOJO";
+   }
+   
+   public void before1(@Target Object target)
+   {
+      before1 = "Object";
+   }
+   
+   public void before1(@Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+   {
+      before1 = "OverloadedAdvicePOJOCaller,int";
+   }
+   
+   public void before1(@Caller SuperClass caller, @Arg int arg)
+   {
+      before1 = "SuperClass,int";
+   }
+   
+   public void before1(@Caller OverloadedAdvicePOJOCaller caller,
+         @Args Object[] args)
+   {
+      before1 = "OverloadedAdvicePOJOCaller,Object[]";
+   }
+   
+   public void before1(@Caller SuperClass caller, @Args Object[] args)
+   {
+      before1 = "SuperClass,Object[]";
+   }
+   
+   public void before1(@Caller OverloadedAdvicePOJOCaller caller)
+   {
+      before1 = "OverloadedAdvicePOJOCaller";
+   }
+   
+   public void before1(@Caller SuperClass caller)
+   {
+      before1 = "SuperClass";
+   }
+   
+   public void before1(@Arg int arg)
+   {
+      before1 = "int";
+   }
+   
+   public void before1(@Args Object[] args)
+   {
+      before1 = "Object[]";
+   }
+   
+   public void before1(@Arg int arg, @Args Object[] args)
+   {
+      Assert.fail("This advice should never be executed");
+   }
+   
+   /* BEFORE2 ADVICE */
+   
+   public void before2(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Target OverloadedAdvicePOJO target, @Caller SuperClass caller,
+         @Arg int arg)
+   {
+      before2 = "MethodByMethodInfo,OverloadedAdvicePOJO,SuperClass,int";
+   }
+   
+   public void before2(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Target Object target, @Caller OverloadedAdvicePOJOCaller caller,
+         @Arg int arg)
+   {
+      before2 = "MethodByMethodInfo,Object,OverloadedAdvicePOJOCaller,int";
+   }
+   
+   public void before2(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Target Object target, @Caller SuperClass caller,
+         @Arg int arg)
+   {
+      before2 = "MethodByMethodInfo,Object,SuperClass,int";
+   }
+   
+   public void before2(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Args Object[] args)
+   {
+      before2 = "MethodByMethodInfo,OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,Object[]";
+   }
+   
+   public void before2(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Target OverloadedAdvicePOJO target, @Caller SuperClass caller,
+         @Args Object[] args)
+   {
+      before2 = "MethodByMethodInfo,OverloadedAdvicePOJO,SuperClass,Object[]";
+   }
+   
+   public void before2(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Target Object target, @Caller OverloadedAdvicePOJOCaller caller,
+         @Args Object[] args)
+   {
+      before2 = "MethodByMethodInfo,Object,OverloadedAdvicePOJOCaller,Object[]";
+   }
+   
+   public void before2(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Target Object target, @Caller SuperClass caller,
+         @Args Object[] args)
+   {
+      before2 = "MethodByMethodInfo,Object,SuperClass,Object[]";
+   }
+   
+   public void before2(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller)
+   {
+      before2 = "MethodByMethodInfo,OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller";
+   }
+   
+   public void before2(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Target OverloadedAdvicePOJO target, @Caller SuperClass caller)
+   {
+      before2 = "MethodByMethodInfo,OverloadedAdvicePOJO,SuperClass";
+   }
+   
+   public void before2(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Target Object target, @Caller OverloadedAdvicePOJOCaller caller)
+   {
+      before2 = "MethodByMethodInfo,Object,OverloadedAdvicePOJOCaller";
+   }
+   
+   public void before2(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Target Object target, @Caller SuperClass caller)
+   {
+      before2 = "MethodByMethodInfo,Object,SuperClass";
+   }
+   
+   public void before2(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Target OverloadedAdvicePOJO target, @Arg int arg)
+   {
+      before2 = "MethodByMethodInfo,OverloadedAdvicePOJO,int";
+   }
+   
+   public void before2(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Target Object target, @Arg int arg)
+   {
+      before2 = "MethodByMethodInfo,Object,int";
+   }
+   
+   public void before2(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Target OverloadedAdvicePOJO target, @Args Object[] args)
+   {
+      before2 = "MethodByMethodInfo,OverloadedAdvicePOJO,Object[]";
+   }
+   
+   public void before2(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Target Object target, @Args Object[] args)
+   {
+      before2 = "MethodByMethodInfo,Object,Object[]";
+   }
+   
+   public void before2(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+   {
+      before2 = "MethodByMethodInfo,OverloadedAdvicePOJOCaller,int";
+   }
+   
+   public void before2(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Caller SuperClass caller, @Arg int arg)
+   {
+      before2 = "MethodByMethodInfo,SuperClass,int";
+   }
+   
+   public void before2(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Caller OverloadedAdvicePOJOCaller caller, @Args Object[] args)
+   {
+      before2 = "MethodByMethodInfo,OverloadedAdvicePOJOCaller,Object[]";
+   }
+   
+   public void before2(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Caller SuperClass caller, @Args Object[] args)
+   {
+      before2 = "MethodByMethodInfo,SuperClass,Object[]";
+   }
+   
+   public void before2(@JoinPoint MethodByMethodInfo joinPointInfo, @Arg int arg)
+   {
+      before2 = "MethodByMethodInfo,int";
+   }
+   
+   public void before2(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Args Object[] args)
+   {
+      before2 = "MethodByMethodInfo,Object[]";
+   }
+   
+   public void before2(@JoinPoint MethodByMethodInfo joinPointInfo)
+   {
+      before2= "MethodByMethodInfo";
+   }
+   
+   public void before2(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+   {
+      before2 = "OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,int";
+   }
+   
+   public void before2(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Arg int arg)
+   {
+      before2 = "OverloadedAdvicePOJO,SuperClass,int";
+   }
+   
+   public void before2(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+   {
+      before2 = "Object,OverloadedAdvicePOJOCaller,int";
+   }
+   
+   public void before2(@Target Object target, @Caller SuperClass caller,
+         @Arg int arg)
+   {
+      before2 = "Object,SuperClass,int";
+   }
+ 
+   public void before2(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Args Object[] args)
+   {
+      before2 = "OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,Object[]";
+   }
+   
+   public void before2(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Args Object[] args)
+   {
+      before2 = "OverloadedAdvicePOJO,SuperClass,Object[]";
+   }
+   
+   public void before2(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Args Object[] args)
+   {
+      before2 = "Object,OverloadedAdvicePOJOCaller,Object[]";
+   }
+   
+   public void before2(@Target Object target, @Caller SuperClass caller,
+         @Args Object[] args)
+   {
+      before2 = "Object,SuperClass,Object[]";
+   }
+   
+   public void before2(@Target OverloadedAdvicePOJO target, @Arg int arg)
+   {
+      before2 = "OverloadedAdvicePOJO,int";
+   }
+   
+   public void before2(@Target Object target, @Arg int arg)
+   {
+      before2 = "Object,int";
+   }
+   
+   public void before2(@Target OverloadedAdvicePOJO target, @Args Object[] args)
+   {
+      before2 = "OverloadedAdvicePOJO,Object[]";
+   }
+   
+   public void before2(@Target Object target, @Args Object[] args)
+   {
+      before2 = "Object,Object[]";
+   }
+   
+   public void before2(@Target OverloadedAdvicePOJO target)
+   {
+      before2 = "OverloadedAdvicePOJO";
+   }
+   
+   public void before2(@Target Object target)
+   {
+      before2 = "Object";
+   }
+   
+   public void before2(@Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+   {
+      before2 = "OverloadedAdvicePOJOCaller,int";
+   }
+   
+   public void before2(@Caller SuperClass caller, @Arg int arg)
+   {
+      before2 = "SuperClass,int";
+   }
+   
+   public void before2(@Caller OverloadedAdvicePOJOCaller caller,
+         @Args Object[] args)
+   {
+      before2 = "OverloadedAdvicePOJOCaller,Object[]";
+   }
+   
+   public void before2(@Caller SuperClass caller, @Args Object[] args)
+   {
+      before2 = "SuperClass,Object[]";
+   }
+   
+   public void before2(@Caller OverloadedAdvicePOJOCaller caller)
+   {
+      before2 = "OverloadedAdvicePOJOCaller";
+   }
+   
+   public void before2(@Caller SuperClass caller)
+   {
+      before2 = "SuperClass";
+   }
+   
+   public void before2(@Arg int arg)
+   {
+      before2 = "int";
+   }
+   
+   public void before2(@Args Object[] args)
+   {
+      before2 = "Object[]";
+   }
+   
+   public void before2(@Arg int arg, @Args Object[] args)
+   {
+      Assert.fail("This advice should never be executed");
+   }
+   
+   /* BEFORE3 ADVICE */
+   
+   public void before3(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Target Object target, @Caller OverloadedAdvicePOJOCaller caller,
+         @Arg int arg)
+   {
+      before3 = "MethodByMethodInfo,Object,OverloadedAdvicePOJOCaller,int";
+   }
+   
+   public void before3(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Target Object target, @Caller SuperClass caller,
+         @Arg int arg)
+   {
+      before3 = "MethodByMethodInfo,Object,SuperClass,int";
+   }
+   
+   public void before3(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Args Object[] args)
+   {
+      before3 = "MethodByMethodInfo,OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,Object[]";
+   }
+   
+   public void before3(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Target OverloadedAdvicePOJO target, @Caller SuperClass caller,
+         @Args Object[] args)
+   {
+      before3 = "MethodByMethodInfo,OverloadedAdvicePOJO,SuperClass,Object[]";
+   }
+   
+   public void before3(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Target Object target, @Caller OverloadedAdvicePOJOCaller caller,
+         @Args Object[] args)
+   {
+      before3 = "MethodByMethodInfo,Object,OverloadedAdvicePOJOCaller,Object[]";
+   }
+   
+   public void before3(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Target Object target, @Caller SuperClass caller,
+         @Args Object[] args)
+   {
+      before3 = "MethodByMethodInfo,Object,SuperClass,Object[]";
+   }
+   
+   public void before3(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller)
+   {
+      before3 = "MethodByMethodInfo,OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller";
+   }
+   
+   public void before3(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Target OverloadedAdvicePOJO target, @Caller SuperClass caller)
+   {
+      before3 = "MethodByMethodInfo,OverloadedAdvicePOJO,SuperClass";
+   }
+   
+   public void before3(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Target Object target, @Caller OverloadedAdvicePOJOCaller caller)
+   {
+      before3 = "MethodByMethodInfo,Object,OverloadedAdvicePOJOCaller";
+   }
+   
+   public void before3(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Target Object target, @Caller SuperClass caller)
+   {
+      before3 = "MethodByMethodInfo,Object,SuperClass";
+   }
+   
+   public void before3(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Target OverloadedAdvicePOJO target, @Arg int arg)
+   {
+      before3 = "MethodByMethodInfo,OverloadedAdvicePOJO,int";
+   }
+   
+   public void before3(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Target Object target, @Arg int arg)
+   {
+      before3 = "MethodByMethodInfo,Object,int";
+   }
+   
+   public void before3(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Target OverloadedAdvicePOJO target, @Args Object[] args)
+   {
+      before3 = "MethodByMethodInfo,OverloadedAdvicePOJO,Object[]";
+   }
+   
+   public void before3(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Target Object target, @Args Object[] args)
+   {
+      before3 = "MethodByMethodInfo,Object,Object[]";
+   }
+   
+   public void before3(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+   {
+      before3 = "MethodByMethodInfo,OverloadedAdvicePOJOCaller,int";
+   }
+   
+   public void before3(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Caller SuperClass caller, @Arg int arg)
+   {
+      before3 = "MethodByMethodInfo,SuperClass,int";
+   }
+   
+   public void before3(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Caller OverloadedAdvicePOJOCaller caller, @Args Object[] args)
+   {
+      before3 = "MethodByMethodInfo,OverloadedAdvicePOJOCaller,Object[]";
+   }
+   
+   public void before3(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Caller SuperClass caller, @Args Object[] args)
+   {
+      before3 = "MethodByMethodInfo,SuperClass,Object[]";
+   }
+   
+   public void before3(@JoinPoint MethodByMethodInfo joinPointInfo, @Arg int arg)
+   {
+      before3 = "MethodByMethodInfo,int";
+   }
+   
+   public void before3(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Args Object[] args)
+   {
+      before3 = "MethodByMethodInfo,Object[]";
+   }
+   
+   public void before3(@JoinPoint MethodByMethodInfo joinPointInfo)
+   {
+      before3= "MethodByMethodInfo";
+   }
+   
+   public void before3(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+   {
+      before3 = "OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,int";
+   }
+   
+   public void before3(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Arg int arg)
+   {
+      before3 = "OverloadedAdvicePOJO,SuperClass,int";
+   }
+   
+   public void before3(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+   {
+      before3 = "Object,OverloadedAdvicePOJOCaller,int";
+   }
+   
+   public void before3(@Target Object target, @Caller SuperClass caller,
+         @Arg int arg)
+   {
+      before3 = "Object,SuperClass,int";
+   }
+ 
+   public void before3(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Args Object[] args)
+   {
+      before3 = "OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,Object[]";
+   }
+   
+   public void before3(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Args Object[] args)
+   {
+      before3 = "OverloadedAdvicePOJO,SuperClass,Object[]";
+   }
+   
+   public void before3(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Args Object[] args)
+   {
+      before3 = "Object,OverloadedAdvicePOJOCaller,Object[]";
+   }
+   
+   public void before3(@Target Object target, @Caller SuperClass caller,
+         @Args Object[] args)
+   {
+      before3 = "Object,SuperClass,Object[]";
+   }
+   
+   public void before3(@Target OverloadedAdvicePOJO target, @Arg int arg)
+   {
+      before3 = "OverloadedAdvicePOJO,int";
+   }
+   
+   public void before3(@Target Object target, @Arg int arg)
+   {
+      before3 = "Object,int";
+   }
+   
+   public void before3(@Target OverloadedAdvicePOJO target, @Args Object[] args)
+   {
+      before3 = "OverloadedAdvicePOJO,Object[]";
+   }
+   
+   public void before3(@Target Object target, @Args Object[] args)
+   {
+      before3 = "Object,Object[]";
+   }
+   
+   public void before3(@Target OverloadedAdvicePOJO target)
+   {
+      before3 = "OverloadedAdvicePOJO";
+   }
+   
+   public void before3(@Target Object target)
+   {
+      before3 = "Object";
+   }
+   
+   public void before3(@Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+   {
+      before3 = "OverloadedAdvicePOJOCaller,int";
+   }
+   
+   public void before3(@Caller SuperClass caller, @Arg int arg)
+   {
+      before3 = "SuperClass,int";
+   }
+   
+   public void before3(@Caller OverloadedAdvicePOJOCaller caller,
+         @Args Object[] args)
+   {
+      before3 = "OverloadedAdvicePOJOCaller,Object[]";
+   }
+   
+   public void before3(@Caller SuperClass caller, @Args Object[] args)
+   {
+      before3 = "SuperClass,Object[]";
+   }
+   
+   public void before3(@Caller OverloadedAdvicePOJOCaller caller)
+   {
+      before3 = "OverloadedAdvicePOJOCaller";
+   }
+   
+   public void before3(@Caller SuperClass caller)
+   {
+      before3 = "SuperClass";
+   }
+   
+   public void before3(@Arg int arg)
+   {
+      before3 = "int";
+   }
+   
+   public void before3(@Args Object[] args)
+   {
+      before3 = "Object[]";
+   }
+   
+   public void before3(@Arg int arg, @Args Object[] args)
+   {
+      Assert.fail("This advice should never be executed");
+   }
+   
+   /* BEFORE4 ADVICE */
+   
+   public void before4(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Target Object target, @Caller SuperClass caller,
+         @Arg int arg)
+   {
+      before4 = "MethodByMethodInfo,Object,SuperClass,int";
+   }
+   
+   public void before4(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Args Object[] args)
+   {
+      before4 = "MethodByMethodInfo,OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,Object[]";
+   }
+   
+   public void before4(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Target OverloadedAdvicePOJO target, @Caller SuperClass caller,
+         @Args Object[] args)
+   {
+      before4 = "MethodByMethodInfo,OverloadedAdvicePOJO,SuperClass,Object[]";
+   }
+   
+   public void before4(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Target Object target, @Caller OverloadedAdvicePOJOCaller caller,
+         @Args Object[] args)
+   {
+      before4 = "MethodByMethodInfo,Object,OverloadedAdvicePOJOCaller,Object[]";
+   }
+   
+   public void before4(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Target Object target, @Caller SuperClass caller,
+         @Args Object[] args)
+   {
+      before4 = "MethodByMethodInfo,Object,SuperClass,Object[]";
+   }
+   
+   public void before4(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller)
+   {
+      before4 = "MethodByMethodInfo,OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller";
+   }
+   
+   public void before4(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Target OverloadedAdvicePOJO target, @Caller SuperClass caller)
+   {
+      before4 = "MethodByMethodInfo,OverloadedAdvicePOJO,SuperClass";
+   }
+   
+   public void before4(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Target Object target, @Caller OverloadedAdvicePOJOCaller caller)
+   {
+      before4 = "MethodByMethodInfo,Object,OverloadedAdvicePOJOCaller";
+   }
+   
+   public void before4(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Target Object target, @Caller SuperClass caller)
+   {
+      before4 = "MethodByMethodInfo,Object,SuperClass";
+   }
+   
+   public void before4(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Target OverloadedAdvicePOJO target, @Arg int arg)
+   {
+      before4 = "MethodByMethodInfo,OverloadedAdvicePOJO,int";
+   }
+   
+   public void before4(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Target Object target, @Arg int arg)
+   {
+      before4 = "MethodByMethodInfo,Object,int";
+   }
+   
+   public void before4(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Target OverloadedAdvicePOJO target, @Args Object[] args)
+   {
+      before4 = "MethodByMethodInfo,OverloadedAdvicePOJO,Object[]";
+   }
+   
+   public void before4(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Target Object target, @Args Object[] args)
+   {
+      before4 = "MethodByMethodInfo,Object,Object[]";
+   }
+   
+   public void before4(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+   {
+      before4 = "MethodByMethodInfo,OverloadedAdvicePOJOCaller,int";
+   }
+   
+   public void before4(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Caller SuperClass caller, @Arg int arg)
+   {
+      before4 = "MethodByMethodInfo,SuperClass,int";
+   }
+   
+   public void before4(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Caller OverloadedAdvicePOJOCaller caller, @Args Object[] args)
+   {
+      before4 = "MethodByMethodInfo,OverloadedAdvicePOJOCaller,Object[]";
+   }
+   
+   public void before4(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Caller SuperClass caller, @Args Object[] args)
+   {
+      before4 = "MethodByMethodInfo,SuperClass,Object[]";
+   }
+   
+   public void before4(@JoinPoint MethodByMethodInfo joinPointInfo, @Arg int arg)
+   {
+      before4 = "MethodByMethodInfo,int";
+   }
+   
+   public void before4(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Args Object[] args)
+   {
+      before4 = "MethodByMethodInfo,Object[]";
+   }
+   
+   public void before4(@JoinPoint MethodByMethodInfo joinPointInfo)
+   {
+      before4= "MethodByMethodInfo";
+   }
+   
+   public void before4(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+   {
+      before4 = "OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,int";
+   }
+   
+   public void before4(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Arg int arg)
+   {
+      before4 = "OverloadedAdvicePOJO,SuperClass,int";
+   }
+   
+   public void before4(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+   {
+      before4 = "Object,OverloadedAdvicePOJOCaller,int";
+   }
+   
+   public void before4(@Target Object target, @Caller SuperClass caller,
+         @Arg int arg)
+   {
+      before4 = "Object,SuperClass,int";
+   }
+ 
+   public void before4(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Args Object[] args)
+   {
+      before4 = "OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,Object[]";
+   }
+   
+   public void before4(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Args Object[] args)
+   {
+      before4 = "OverloadedAdvicePOJO,SuperClass,Object[]";
+   }
+   
+   public void before4(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Args Object[] args)
+   {
+      before4 = "Object,OverloadedAdvicePOJOCaller,Object[]";
+   }
+   
+   public void before4(@Target Object target, @Caller SuperClass caller,
+         @Args Object[] args)
+   {
+      before4 = "Object,SuperClass,Object[]";
+   }
+   
+   public void before4(@Target OverloadedAdvicePOJO target, @Arg int arg)
+   {
+      before4 = "OverloadedAdvicePOJO,int";
+   }
+   
+   public void before4(@Target Object target, @Arg int arg)
+   {
+      before4 = "Object,int";
+   }
+   
+   public void before4(@Target OverloadedAdvicePOJO target, @Args Object[] args)
+   {
+      before4 = "OverloadedAdvicePOJO,Object[]";
+   }
+   
+   public void before4(@Target Object target, @Args Object[] args)
+   {
+      before4 = "Object,Object[]";
+   }
+   
+   public void before4(@Target OverloadedAdvicePOJO target)
+   {
+      before4 = "OverloadedAdvicePOJO";
+   }
+   
+   public void before4(@Target Object target)
+   {
+      before4 = "Object";
+   }
+   
+   public void before4(@Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+   {
+      before4 = "OverloadedAdvicePOJOCaller,int";
+   }
+   
+   public void before4(@Caller SuperClass caller, @Arg int arg)
+   {
+      before4 = "SuperClass,int";
+   }
+   
+   public void before4(@Caller OverloadedAdvicePOJOCaller caller,
+         @Args Object[] args)
+   {
+      before4 = "OverloadedAdvicePOJOCaller,Object[]";
+   }
+   
+   public void before4(@Caller SuperClass caller, @Args Object[] args)
+   {
+      before4 = "SuperClass,Object[]";
+   }
+   
+   public void before4(@Caller OverloadedAdvicePOJOCaller caller)
+   {
+      before4 = "OverloadedAdvicePOJOCaller";
+   }
+   
+   public void before4(@Caller SuperClass caller)
+   {
+      before4 = "SuperClass";
+   }
+   
+   public void before4(@Arg int arg)
+   {
+      before4 = "int";
+   }
+   
+   public void before4(@Args Object[] args)
+   {
+      before4 = "Object[]";
+   }
+   
+   public void before4(@Arg int arg, @Args Object[] args)
+   {
+      Assert.fail("This advice should never be executed");
+   }
+   
+   /* BEFORE5 ADVICE */
+   
+   public void before5(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Args Object[] args)
+   {
+      before5 = "MethodByMethodInfo,OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,Object[]";
+   }
+   
+   public void before5(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Target OverloadedAdvicePOJO target, @Caller SuperClass caller,
+         @Args Object[] args)
+   {
+      before5 = "MethodByMethodInfo,OverloadedAdvicePOJO,SuperClass,Object[]";
+   }
+   
+   public void before5(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Target Object target, @Caller OverloadedAdvicePOJOCaller caller,
+         @Args Object[] args)
+   {
+      before5 = "MethodByMethodInfo,Object,OverloadedAdvicePOJOCaller,Object[]";
+   }
+   
+   public void before5(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Target Object target, @Caller SuperClass caller,
+         @Args Object[] args)
+   {
+      before5 = "MethodByMethodInfo,Object,SuperClass,Object[]";
+   }
+   
+   public void before5(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller)
+   {
+      before5 = "MethodByMethodInfo,OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller";
+   }
+   
+   public void before5(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Target OverloadedAdvicePOJO target, @Caller SuperClass caller)
+   {
+      before5 = "MethodByMethodInfo,OverloadedAdvicePOJO,SuperClass";
+   }
+   
+   public void before5(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Target Object target, @Caller OverloadedAdvicePOJOCaller caller)
+   {
+      before5 = "MethodByMethodInfo,Object,OverloadedAdvicePOJOCaller";
+   }
+   
+   public void before5(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Target Object target, @Caller SuperClass caller)
+   {
+      before5 = "MethodByMethodInfo,Object,SuperClass";
+   }
+   
+   public void before5(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Target OverloadedAdvicePOJO target, @Arg int arg)
+   {
+      before5 = "MethodByMethodInfo,OverloadedAdvicePOJO,int";
+   }
+   
+   public void before5(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Target Object target, @Arg int arg)
+   {
+      before5 = "MethodByMethodInfo,Object,int";
+   }
+   
+   public void before5(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Target OverloadedAdvicePOJO target, @Args Object[] args)
+   {
+      before5 = "MethodByMethodInfo,OverloadedAdvicePOJO,Object[]";
+   }
+   
+   public void before5(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Target Object target, @Args Object[] args)
+   {
+      before5 = "MethodByMethodInfo,Object,Object[]";
+   }
+   
+   public void before5(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+   {
+      before5 = "MethodByMethodInfo,OverloadedAdvicePOJOCaller,int";
+   }
+   
+   public void before5(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Caller SuperClass caller, @Arg int arg)
+   {
+      before5 = "MethodByMethodInfo,SuperClass,int";
+   }
+   
+   public void before5(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Caller OverloadedAdvicePOJOCaller caller, @Args Object[] args)
+   {
+      before5 = "MethodByMethodInfo,OverloadedAdvicePOJOCaller,Object[]";
+   }
+   
+   public void before5(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Caller SuperClass caller, @Args Object[] args)
+   {
+      before5 = "MethodByMethodInfo,SuperClass,Object[]";
+   }
+   
+   public void before5(@JoinPoint MethodByMethodInfo joinPointInfo, @Arg int arg)
+   {
+      before5 = "MethodByMethodInfo,int";
+   }
+   
+   public void before5(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Args Object[] args)
+   {
+      before5 = "MethodByMethodInfo,Object[]";
+   }
+   
+   public void before5(@JoinPoint MethodByMethodInfo joinPointInfo)
+   {
+      before5= "MethodByMethodInfo";
+   }
+   
+   public void before5(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+   {
+      before5 = "OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,int";
+   }
+   
+   public void before5(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Arg int arg)
+   {
+      before5 = "OverloadedAdvicePOJO,SuperClass,int";
+   }
+   
+   public void before5(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+   {
+      before5 = "Object,OverloadedAdvicePOJOCaller,int";
+   }
+   
+   public void before5(@Target Object target, @Caller SuperClass caller,
+         @Arg int arg)
+   {
+      before5 = "Object,SuperClass,int";
+   }
+ 
+   public void before5(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Args Object[] args)
+   {
+      before5 = "OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,Object[]";
+   }
+   
+   public void before5(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Args Object[] args)
+   {
+      before5 = "OverloadedAdvicePOJO,SuperClass,Object[]";
+   }
+   
+   public void before5(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Args Object[] args)
+   {
+      before5 = "Object,OverloadedAdvicePOJOCaller,Object[]";
+   }
+   
+   public void before5(@Target Object target, @Caller SuperClass caller,
+         @Args Object[] args)
+   {
+      before5 = "Object,SuperClass,Object[]";
+   }
+   
+   public void before5(@Target OverloadedAdvicePOJO target, @Arg int arg)
+   {
+      before5 = "OverloadedAdvicePOJO,int";
+   }
+   
+   public void before5(@Target Object target, @Arg int arg)
+   {
+      before5 = "Object,int";
+   }
+   
+   public void before5(@Target OverloadedAdvicePOJO target, @Args Object[] args)
+   {
+      before5 = "OverloadedAdvicePOJO,Object[]";
+   }
+   
+   public void before5(@Target Object target, @Args Object[] args)
+   {
+      before5 = "Object,Object[]";
+   }
+   
+   public void before5(@Target OverloadedAdvicePOJO target)
+   {
+      before5 = "OverloadedAdvicePOJO";
+   }
+   
+   public void before5(@Target Object target)
+   {
+      before5 = "Object";
+   }
+   
+   public void before5(@Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+   {
+      before5 = "OverloadedAdvicePOJOCaller,int";
+   }
+   
+   public void before5(@Caller SuperClass caller, @Arg int arg)
+   {
+      before5 = "SuperClass,int";
+   }
+   
+   public void before5(@Caller OverloadedAdvicePOJOCaller caller,
+         @Args Object[] args)
+   {
+      before5 = "OverloadedAdvicePOJOCaller,Object[]";
+   }
+   
+   public void before5(@Caller SuperClass caller, @Args Object[] args)
+   {
+      before5 = "SuperClass,Object[]";
+   }
+   
+   public void before5(@Caller OverloadedAdvicePOJOCaller caller)
+   {
+      before5 = "OverloadedAdvicePOJOCaller";
+   }
+   
+   public void before5(@Caller SuperClass caller)
+   {
+      before5 = "SuperClass";
+   }
+   
+   public void before5(@Arg int arg)
+   {
+      before5 = "int";
+   }
+   
+   public void before5(@Args Object[] args)
+   {
+      before5 = "Object[]";
+   }
+   
+   public void before5(@Arg int arg, @Args Object[] args)
+   {
+      Assert.fail("This advice should never be executed");
+   }
+   
+   /* BEFORE6 ADVICE */
+   
+   public void before6(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Target OverloadedAdvicePOJO target, @Caller SuperClass caller,
+         @Args Object[] args)
+   {
+      before6 = "MethodByMethodInfo,OverloadedAdvicePOJO,SuperClass,Object[]";
+   }
+   
+   public void before6(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Target Object target, @Caller OverloadedAdvicePOJOCaller caller,
+         @Args Object[] args)
+   {
+      before6 = "MethodByMethodInfo,Object,OverloadedAdvicePOJOCaller,Object[]";
+   }
+   
+   public void before6(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Target Object target, @Caller SuperClass caller,
+         @Args Object[] args)
+   {
+      before6 = "MethodByMethodInfo,Object,SuperClass,Object[]";
+   }
+   
+   public void before6(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller)
+   {
+      before6 = "MethodByMethodInfo,OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller";
+   }
+   
+   public void before6(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Target OverloadedAdvicePOJO target, @Caller SuperClass caller)
+   {
+      before6 = "MethodByMethodInfo,OverloadedAdvicePOJO,SuperClass";
+   }
+   
+   public void before6(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Target Object target, @Caller OverloadedAdvicePOJOCaller caller)
+   {
+      before6 = "MethodByMethodInfo,Object,OverloadedAdvicePOJOCaller";
+   }
+   
+   public void before6(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Target Object target, @Caller SuperClass caller)
+   {
+      before6 = "MethodByMethodInfo,Object,SuperClass";
+   }
+   
+   public void before6(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Target OverloadedAdvicePOJO target, @Arg int arg)
+   {
+      before6 = "MethodByMethodInfo,OverloadedAdvicePOJO,int";
+   }
+   
+   public void before6(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Target Object target, @Arg int arg)
+   {
+      before6 = "MethodByMethodInfo,Object,int";
+   }
+   
+   public void before6(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Target OverloadedAdvicePOJO target, @Args Object[] args)
+   {
+      before6 = "MethodByMethodInfo,OverloadedAdvicePOJO,Object[]";
+   }
+   
+   public void before6(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Target Object target, @Args Object[] args)
+   {
+      before6 = "MethodByMethodInfo,Object,Object[]";
+   }
+   
+   public void before6(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+   {
+      before6 = "MethodByMethodInfo,OverloadedAdvicePOJOCaller,int";
+   }
+   
+   public void before6(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Caller SuperClass caller, @Arg int arg)
+   {
+      before6 = "MethodByMethodInfo,SuperClass,int";
+   }
+   
+   public void before6(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Caller OverloadedAdvicePOJOCaller caller, @Args Object[] args)
+   {
+      before6 = "MethodByMethodInfo,OverloadedAdvicePOJOCaller,Object[]";
+   }
+   
+   public void before6(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Caller SuperClass caller, @Args Object[] args)
+   {
+      before6 = "MethodByMethodInfo,SuperClass,Object[]";
+   }
+   
+   public void before6(@JoinPoint MethodByMethodInfo joinPointInfo, @Arg int arg)
+   {
+      before6 = "MethodByMethodInfo,int";
+   }
+   
+   public void before6(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Args Object[] args)
+   {
+      before6 = "MethodByMethodInfo,Object[]";
+   }
+   
+   public void before6(@JoinPoint MethodByMethodInfo joinPointInfo)
+   {
+      before6= "MethodByMethodInfo";
+   }
+   
+   public void before6(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+   {
+      before6 = "OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,int";
+   }
+   
+   public void before6(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Arg int arg)
+   {
+      before6 = "OverloadedAdvicePOJO,SuperClass,int";
+   }
+   
+   public void before6(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+   {
+      before6 = "Object,OverloadedAdvicePOJOCaller,int";
+   }
+   
+   public void before6(@Target Object target, @Caller SuperClass caller,
+         @Arg int arg)
+   {
+      before6 = "Object,SuperClass,int";
+   }
+ 
+   public void before6(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Args Object[] args)
+   {
+      before6 = "OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,Object[]";
+   }
+   
+   public void before6(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Args Object[] args)
+   {
+      before6 = "OverloadedAdvicePOJO,SuperClass,Object[]";
+   }
+   
+   public void before6(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Args Object[] args)
+   {
+      before6 = "Object,OverloadedAdvicePOJOCaller,Object[]";
+   }
+   
+   public void before6(@Target Object target, @Caller SuperClass caller,
+         @Args Object[] args)
+   {
+      before6 = "Object,SuperClass,Object[]";
+   }
+   
+   public void before6(@Target OverloadedAdvicePOJO target, @Arg int arg)
+   {
+      before6 = "OverloadedAdvicePOJO,int";
+   }
+   
+   public void before6(@Target Object target, @Arg int arg)
+   {
+      before6 = "Object,int";
+   }
+   
+   public void before6(@Target OverloadedAdvicePOJO target, @Args Object[] args)
+   {
+      before6 = "OverloadedAdvicePOJO,Object[]";
+   }
+   
+   public void before6(@Target Object target, @Args Object[] args)
+   {
+      before6 = "Object,Object[]";
+   }
+   
+   public void before6(@Target OverloadedAdvicePOJO target)
+   {
+      before6 = "OverloadedAdvicePOJO";
+   }
+   
+   public void before6(@Target Object target)
+   {
+      before6 = "Object";
+   }
+   
+   public void before6(@Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+   {
+      before6 = "OverloadedAdvicePOJOCaller,int";
+   }
+   
+   public void before6(@Caller SuperClass caller, @Arg int arg)
+   {
+      before6 = "SuperClass,int";
+   }
+   
+   public void before6(@Caller OverloadedAdvicePOJOCaller caller,
+         @Args Object[] args)
+   {
+      before6 = "OverloadedAdvicePOJOCaller,Object[]";
+   }
+   
+   public void before6(@Caller SuperClass caller, @Args Object[] args)
+   {
+      before6 = "SuperClass,Object[]";
+   }
+   
+   public void before6(@Caller OverloadedAdvicePOJOCaller caller)
+   {
+      before6 = "OverloadedAdvicePOJOCaller";
+   }
+   
+   public void before6(@Caller SuperClass caller)
+   {
+      before6 = "SuperClass";
+   }
+   
+   public void before6(@Arg int arg)
+   {
+      before6 = "int";
+   }
+   
+   public void before6(@Args Object[] args)
+   {
+      before6 = "Object[]";
+   }
+   
+   public void before6(@Arg int arg, @Args Object[] args)
+   {
+      Assert.fail("This advice should never be executed");
+   }
+   
+   /* BEFORE7 ADVICE */
+   
+   public void before7(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Target Object target, @Caller OverloadedAdvicePOJOCaller caller,
+         @Args Object[] args)
+   {
+      before7 = "MethodByMethodInfo,Object,OverloadedAdvicePOJOCaller,Object[]";
+   }
+   
+   public void before7(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Target Object target, @Caller SuperClass caller,
+         @Args Object[] args)
+   {
+      before7 = "MethodByMethodInfo,Object,SuperClass,Object[]";
+   }
+   
+   public void before7(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller)
+   {
+      before7 = "MethodByMethodInfo,OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller";
+   }
+   
+   public void before7(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Target OverloadedAdvicePOJO target, @Caller SuperClass caller)
+   {
+      before7 = "MethodByMethodInfo,OverloadedAdvicePOJO,SuperClass";
+   }
+   
+   public void before7(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Target Object target, @Caller OverloadedAdvicePOJOCaller caller)
+   {
+      before7 = "MethodByMethodInfo,Object,OverloadedAdvicePOJOCaller";
+   }
+   
+   public void before7(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Target Object target, @Caller SuperClass caller)
+   {
+      before7 = "MethodByMethodInfo,Object,SuperClass";
+   }
+   
+   public void before7(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Target OverloadedAdvicePOJO target, @Arg int arg)
+   {
+      before7 = "MethodByMethodInfo,OverloadedAdvicePOJO,int";
+   }
+   
+   public void before7(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Target Object target, @Arg int arg)
+   {
+      before7 = "MethodByMethodInfo,Object,int";
+   }
+   
+   public void before7(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Target OverloadedAdvicePOJO target, @Args Object[] args)
+   {
+      before7 = "MethodByMethodInfo,OverloadedAdvicePOJO,Object[]";
+   }
+   
+   public void before7(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Target Object target, @Args Object[] args)
+   {
+      before7 = "MethodByMethodInfo,Object,Object[]";
+   }
+   
+   public void before7(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+   {
+      before7 = "MethodByMethodInfo,OverloadedAdvicePOJOCaller,int";
+   }
+   
+   public void before7(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Caller SuperClass caller, @Arg int arg)
+   {
+      before7 = "MethodByMethodInfo,SuperClass,int";
+   }
+   
+   public void before7(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Caller OverloadedAdvicePOJOCaller caller, @Args Object[] args)
+   {
+      before7 = "MethodByMethodInfo,OverloadedAdvicePOJOCaller,Object[]";
+   }
+   
+   public void before7(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Caller SuperClass caller, @Args Object[] args)
+   {
+      before7 = "MethodByMethodInfo,SuperClass,Object[]";
+   }
+   
+   public void before7(@JoinPoint MethodByMethodInfo joinPointInfo, @Arg int arg)
+   {
+      before7 = "MethodByMethodInfo,int";
+   }
+   
+   public void before7(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Args Object[] args)
+   {
+      before7 = "MethodByMethodInfo,Object[]";
+   }
+   
+   public void before7(@JoinPoint MethodByMethodInfo joinPointInfo)
+   {
+      before7= "MethodByMethodInfo";
+   }
+   
+   public void before7(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+   {
+      before7 = "OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,int";
+   }
+   
+   public void before7(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Arg int arg)
+   {
+      before7 = "OverloadedAdvicePOJO,SuperClass,int";
+   }
+   
+   public void before7(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+   {
+      before7 = "Object,OverloadedAdvicePOJOCaller,int";
+   }
+   
+   public void before7(@Target Object target, @Caller SuperClass caller,
+         @Arg int arg)
+   {
+      before7 = "Object,SuperClass,int";
+   }
+ 
+   public void before7(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Args Object[] args)
+   {
+      before7 = "OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,Object[]";
+   }
+   
+   public void before7(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Args Object[] args)
+   {
+      before7 = "OverloadedAdvicePOJO,SuperClass,Object[]";
+   }
+   
+   public void before7(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Args Object[] args)
+   {
+      before7 = "Object,OverloadedAdvicePOJOCaller,Object[]";
+   }
+   
+   public void before7(@Target Object target, @Caller SuperClass caller,
+         @Args Object[] args)
+   {
+      before7 = "Object,SuperClass,Object[]";
+   }
+   
+   public void before7(@Target OverloadedAdvicePOJO target, @Arg int arg)
+   {
+      before7 = "OverloadedAdvicePOJO,int";
+   }
+   
+   public void before7(@Target Object target, @Arg int arg)
+   {
+      before7 = "Object,int";
+   }
+   
+   public void before7(@Target OverloadedAdvicePOJO target, @Args Object[] args)
+   {
+      before7 = "OverloadedAdvicePOJO,Object[]";
+   }
+   
+   public void before7(@Target Object target, @Args Object[] args)
+   {
+      before7 = "Object,Object[]";
+   }
+   
+   public void before7(@Target OverloadedAdvicePOJO target)
+   {
+      before7 = "OverloadedAdvicePOJO";
+   }
+   
+   public void before7(@Target Object target)
+   {
+      before7 = "Object";
+   }
+   
+   public void before7(@Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+   {
+      before7 = "OverloadedAdvicePOJOCaller,int";
+   }
+   
+   public void before7(@Caller SuperClass caller, @Arg int arg)
+   {
+      before7 = "SuperClass,int";
+   }
+   
+   public void before7(@Caller OverloadedAdvicePOJOCaller caller,
+         @Args Object[] args)
+   {
+      before7 = "OverloadedAdvicePOJOCaller,Object[]";
+   }
+   
+   public void before7(@Caller SuperClass caller, @Args Object[] args)
+   {
+      before7 = "SuperClass,Object[]";
+   }
+   
+   public void before7(@Caller OverloadedAdvicePOJOCaller caller)
+   {
+      before7 = "OverloadedAdvicePOJOCaller";
+   }
+   
+   public void before7(@Caller SuperClass caller)
+   {
+      before7 = "SuperClass";
+   }
+   
+   public void before7(@Arg int arg)
+   {
+      before7 = "int";
+   }
+   
+   public void before7(@Args Object[] args)
+   {
+      before7 = "Object[]";
+   }
+   
+   public void before7(@Arg int arg, @Args Object[] args)
+   {
+      Assert.fail("This advice should never be executed");
+   }
+   
+   /* BEFORE8 ADVICE */
+   
+   public void before8(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Target Object target, @Caller SuperClass caller,
+         @Args Object[] args)
+   {
+      before8 = "MethodByMethodInfo,Object,SuperClass,Object[]";
+   }
+   
+   public void before8(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller)
+   {
+      before8 = "MethodByMethodInfo,OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller";
+   }
+   
+   public void before8(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Target OverloadedAdvicePOJO target, @Caller SuperClass caller)
+   {
+      before8 = "MethodByMethodInfo,OverloadedAdvicePOJO,SuperClass";
+   }
+   
+   public void before8(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Target Object target, @Caller OverloadedAdvicePOJOCaller caller)
+   {
+      before8 = "MethodByMethodInfo,Object,OverloadedAdvicePOJOCaller";
+   }
+   
+   public void before8(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Target Object target, @Caller SuperClass caller)
+   {
+      before8 = "MethodByMethodInfo,Object,SuperClass";
+   }
+   
+   public void before8(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Target OverloadedAdvicePOJO target, @Arg int arg)
+   {
+      before8 = "MethodByMethodInfo,OverloadedAdvicePOJO,int";
+   }
+   
+   public void before8(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Target Object target, @Arg int arg)
+   {
+      before8 = "MethodByMethodInfo,Object,int";
+   }
+   
+   public void before8(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Target OverloadedAdvicePOJO target, @Args Object[] args)
+   {
+      before8 = "MethodByMethodInfo,OverloadedAdvicePOJO,Object[]";
+   }
+   
+   public void before8(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Target Object target, @Args Object[] args)
+   {
+      before8 = "MethodByMethodInfo,Object,Object[]";
+   }
+   
+   public void before8(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+   {
+      before8 = "MethodByMethodInfo,OverloadedAdvicePOJOCaller,int";
+   }
+   
+   public void before8(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Caller SuperClass caller, @Arg int arg)
+   {
+      before8 = "MethodByMethodInfo,SuperClass,int";
+   }
+   
+   public void before8(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Caller OverloadedAdvicePOJOCaller caller, @Args Object[] args)
+   {
+      before8 = "MethodByMethodInfo,OverloadedAdvicePOJOCaller,Object[]";
+   }
+   
+   public void before8(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Caller SuperClass caller, @Args Object[] args)
+   {
+      before8 = "MethodByMethodInfo,SuperClass,Object[]";
+   }
+   
+   public void before8(@JoinPoint MethodByMethodInfo joinPointInfo, @Arg int arg)
+   {
+      before8 = "MethodByMethodInfo,int";
+   }
+   
+   public void before8(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Args Object[] args)
+   {
+      before8 = "MethodByMethodInfo,Object[]";
+   }
+   
+   public void before8(@JoinPoint MethodByMethodInfo joinPointInfo)
+   {
+      before8= "MethodByMethodInfo";
+   }
+   
+   public void before8(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+   {
+      before8 = "OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,int";
+   }
+   
+   public void before8(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Arg int arg)
+   {
+      before8 = "OverloadedAdvicePOJO,SuperClass,int";
+   }
+   
+   public void before8(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+   {
+      before8 = "Object,OverloadedAdvicePOJOCaller,int";
+   }
+   
+   public void before8(@Target Object target, @Caller SuperClass caller,
+         @Arg int arg)
+   {
+      before8 = "Object,SuperClass,int";
+   }
+ 
+   public void before8(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Args Object[] args)
+   {
+      before8 = "OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,Object[]";
+   }
+   
+   public void before8(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Args Object[] args)
+   {
+      before8 = "OverloadedAdvicePOJO,SuperClass,Object[]";
+   }
+   
+   public void before8(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Args Object[] args)
+   {
+      before8 = "Object,OverloadedAdvicePOJOCaller,Object[]";
+   }
+   
+   public void before8(@Target Object target, @Caller SuperClass caller,
+         @Args Object[] args)
+   {
+      before8 = "Object,SuperClass,Object[]";
+   }
+   
+   public void before8(@Target OverloadedAdvicePOJO target, @Arg int arg)
+   {
+      before8 = "OverloadedAdvicePOJO,int";
+   }
+   
+   public void before8(@Target Object target, @Arg int arg)
+   {
+      before8 = "Object,int";
+   }
+   
+   public void before8(@Target OverloadedAdvicePOJO target, @Args Object[] args)
+   {
+      before8 = "OverloadedAdvicePOJO,Object[]";
+   }
+   
+   public void before8(@Target Object target, @Args Object[] args)
+   {
+      before8 = "Object,Object[]";
+   }
+   
+   public void before8(@Target OverloadedAdvicePOJO target)
+   {
+      before8 = "OverloadedAdvicePOJO";
+   }
+   
+   public void before8(@Target Object target)
+   {
+      before8 = "Object";
+   }
+   
+   public void before8(@Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+   {
+      before8 = "OverloadedAdvicePOJOCaller,int";
+   }
+   
+   public void before8(@Caller SuperClass caller, @Arg int arg)
+   {
+      before8 = "SuperClass,int";
+   }
+   
+   public void before8(@Caller OverloadedAdvicePOJOCaller caller,
+         @Args Object[] args)
+   {
+      before8 = "OverloadedAdvicePOJOCaller,Object[]";
+   }
+   
+   public void before8(@Caller SuperClass caller, @Args Object[] args)
+   {
+      before8 = "SuperClass,Object[]";
+   }
+   
+   public void before8(@Caller OverloadedAdvicePOJOCaller caller)
+   {
+      before8 = "OverloadedAdvicePOJOCaller";
+   }
+   
+   public void before8(@Caller SuperClass caller)
+   {
+      before8 = "SuperClass";
+   }
+   
+   public void before8(@Arg int arg)
+   {
+      before8 = "int";
+   }
+   
+   public void before8(@Args Object[] args)
+   {
+      before8 = "Object[]";
+   }
+   
+   public void before8(@Arg int arg, @Args Object[] args)
+   {
+      Assert.fail("This advice should never be executed");
+   }
+   
+   /* BEFORE9 ADVICE */
+   
+   public void before9(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller)
+   {
+      before9 = "MethodByMethodInfo,OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller";
+   }
+   
+   public void before9(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Target OverloadedAdvicePOJO target, @Caller SuperClass caller)
+   {
+      before9 = "MethodByMethodInfo,OverloadedAdvicePOJO,SuperClass";
+   }
+   
+   public void before9(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Target Object target, @Caller OverloadedAdvicePOJOCaller caller)
+   {
+      before9 = "MethodByMethodInfo,Object,OverloadedAdvicePOJOCaller";
+   }
+   
+   public void before9(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Target Object target, @Caller SuperClass caller)
+   {
+      before9 = "MethodByMethodInfo,Object,SuperClass";
+   }
+   
+   public void before9(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Target OverloadedAdvicePOJO target, @Arg int arg)
+   {
+      before9 = "MethodByMethodInfo,OverloadedAdvicePOJO,int";
+   }
+   
+   public void before9(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Target Object target, @Arg int arg)
+   {
+      before9 = "MethodByMethodInfo,Object,int";
+   }
+   
+   public void before9(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Target OverloadedAdvicePOJO target, @Args Object[] args)
+   {
+      before9 = "MethodByMethodInfo,OverloadedAdvicePOJO,Object[]";
+   }
+   
+   public void before9(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Target Object target, @Args Object[] args)
+   {
+      before9 = "MethodByMethodInfo,Object,Object[]";
+   }
+   
+   public void before9(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+   {
+      before9 = "MethodByMethodInfo,OverloadedAdvicePOJOCaller,int";
+   }
+   
+   public void before9(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Caller SuperClass caller, @Arg int arg)
+   {
+      before9 = "MethodByMethodInfo,SuperClass,int";
+   }
+   
+   public void before9(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Caller OverloadedAdvicePOJOCaller caller, @Args Object[] args)
+   {
+      before9 = "MethodByMethodInfo,OverloadedAdvicePOJOCaller,Object[]";
+   }
+   
+   public void before9(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Caller SuperClass caller, @Args Object[] args)
+   {
+      before9 = "MethodByMethodInfo,SuperClass,Object[]";
+   }
+   
+   public void before9(@JoinPoint MethodByMethodInfo joinPointInfo, @Arg int arg)
+   {
+      before9 = "MethodByMethodInfo,int";
+   }
+   
+   public void before9(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Args Object[] args)
+   {
+      before9 = "MethodByMethodInfo,Object[]";
+   }
+   
+   public void before9(@JoinPoint MethodByMethodInfo joinPointInfo)
+   {
+      before9= "MethodByMethodInfo";
+   }
+   
+   public void before9(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+   {
+      before9 = "OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,int";
+   }
+   
+   public void before9(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Arg int arg)
+   {
+      before9 = "OverloadedAdvicePOJO,SuperClass,int";
+   }
+   
+   public void before9(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+   {
+      before9 = "Object,OverloadedAdvicePOJOCaller,int";
+   }
+   
+   public void before9(@Target Object target, @Caller SuperClass caller,
+         @Arg int arg)
+   {
+      before9 = "Object,SuperClass,int";
+   }
+ 
+   public void before9(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Args Object[] args)
+   {
+      before9 = "OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,Object[]";
+   }
+   
+   public void before9(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Args Object[] args)
+   {
+      before9 = "OverloadedAdvicePOJO,SuperClass,Object[]";
+   }
+   
+   public void before9(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Args Object[] args)
+   {
+      before9 = "Object,OverloadedAdvicePOJOCaller,Object[]";
+   }
+   
+   public void before9(@Target Object target, @Caller SuperClass caller,
+         @Args Object[] args)
+   {
+      before9 = "Object,SuperClass,Object[]";
+   }
+   
+   public void before9(@Target OverloadedAdvicePOJO target, @Arg int arg)
+   {
+      before9 = "OverloadedAdvicePOJO,int";
+   }
+   
+   public void before9(@Target Object target, @Arg int arg)
+   {
+      before9 = "Object,int";
+   }
+   
+   public void before9(@Target OverloadedAdvicePOJO target, @Args Object[] args)
+   {
+      before9 = "OverloadedAdvicePOJO,Object[]";
+   }
+   
+   public void before9(@Target Object target, @Args Object[] args)
+   {
+      before9 = "Object,Object[]";
+   }
+   
+   public void before9(@Target OverloadedAdvicePOJO target)
+   {
+      before9 = "OverloadedAdvicePOJO";
+   }
+   
+   public void before9(@Target Object target)
+   {
+      before9 = "Object";
+   }
+   
+   public void before9(@Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+   {
+      before9 = "OverloadedAdvicePOJOCaller,int";
+   }
+   
+   public void before9(@Caller SuperClass caller, @Arg int arg)
+   {
+      before9 = "SuperClass,int";
+   }
+   
+   public void before9(@Caller OverloadedAdvicePOJOCaller caller,
+         @Args Object[] args)
+   {
+      before9 = "OverloadedAdvicePOJOCaller,Object[]";
+   }
+   
+   public void before9(@Caller SuperClass caller, @Args Object[] args)
+   {
+      before9 = "SuperClass,Object[]";
+   }
+   
+   public void before9(@Caller OverloadedAdvicePOJOCaller caller)
+   {
+      before9 = "OverloadedAdvicePOJOCaller";
+   }
+   
+   public void before9(@Caller SuperClass caller)
+   {
+      before9 = "SuperClass";
+   }
+   
+   public void before9(@Arg int arg)
+   {
+      before9 = "int";
+   }
+   
+   public void before9(@Args Object[] args)
+   {
+      before9 = "Object[]";
+   }
+   
+   public void before9(@Arg int arg, @Args Object[] args)
+   {
+      Assert.fail("This advice should never be executed");
+   }
+   
+   /* BEFORE10 ADVICE */
+   
+   public void before10(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Target OverloadedAdvicePOJO target, @Caller SuperClass caller)
+   {
+      before10 = "MethodByMethodInfo,OverloadedAdvicePOJO,SuperClass";
+   }
+   
+   public void before10(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Target Object target, @Caller OverloadedAdvicePOJOCaller caller)
+   {
+      before10 = "MethodByMethodInfo,Object,OverloadedAdvicePOJOCaller";
+   }
+   
+   public void before10(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Target Object target, @Caller SuperClass caller)
+   {
+      before10 = "MethodByMethodInfo,Object,SuperClass";
+   }
+   
+   public void before10(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Target OverloadedAdvicePOJO target, @Arg int arg)
+   {
+      before10 = "MethodByMethodInfo,OverloadedAdvicePOJO,int";
+   }
+   
+   public void before10(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Target Object target, @Arg int arg)
+   {
+      before10 = "MethodByMethodInfo,Object,int";
+   }
+   
+   public void before10(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Target OverloadedAdvicePOJO target, @Args Object[] args)
+   {
+      before10 = "MethodByMethodInfo,OverloadedAdvicePOJO,Object[]";
+   }
+   
+   public void before10(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Target Object target, @Args Object[] args)
+   {
+      before10 = "MethodByMethodInfo,Object,Object[]";
+   }
+   
+   public void before10(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+   {
+      before10 = "MethodByMethodInfo,OverloadedAdvicePOJOCaller,int";
+   }
+   
+   public void before10(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Caller SuperClass caller, @Arg int arg)
+   {
+      before10 = "MethodByMethodInfo,SuperClass,int";
+   }
+   
+   public void before10(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Caller OverloadedAdvicePOJOCaller caller, @Args Object[] args)
+   {
+      before10 = "MethodByMethodInfo,OverloadedAdvicePOJOCaller,Object[]";
+   }
+   
+   public void before10(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Caller SuperClass caller, @Args Object[] args)
+   {
+      before10 = "MethodByMethodInfo,SuperClass,Object[]";
+   }
+   
+   public void before10(@JoinPoint MethodByMethodInfo joinPointInfo, @Arg int arg)
+   {
+      before10 = "MethodByMethodInfo,int";
+   }
+   
+   public void before10(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Args Object[] args)
+   {
+      before10 = "MethodByMethodInfo,Object[]";
+   }
+   
+   public void before10(@JoinPoint MethodByMethodInfo joinPointInfo)
+   {
+      before10= "MethodByMethodInfo";
+   }
+   
+   public void before10(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+   {
+      before10 = "OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,int";
+   }
+   
+   public void before10(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Arg int arg)
+   {
+      before10 = "OverloadedAdvicePOJO,SuperClass,int";
+   }
+   
+   public void before10(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+   {
+      before10 = "Object,OverloadedAdvicePOJOCaller,int";
+   }
+   
+   public void before10(@Target Object target, @Caller SuperClass caller,
+         @Arg int arg)
+   {
+      before10 = "Object,SuperClass,int";
+   }
+ 
+   public void before10(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Args Object[] args)
+   {
+      before10 = "OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,Object[]";
+   }
+   
+   public void before10(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Args Object[] args)
+   {
+      before10 = "OverloadedAdvicePOJO,SuperClass,Object[]";
+   }
+   
+   public void before10(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Args Object[] args)
+   {
+      before10 = "Object,OverloadedAdvicePOJOCaller,Object[]";
+   }
+   
+   public void before10(@Target Object target, @Caller SuperClass caller,
+         @Args Object[] args)
+   {
+      before10 = "Object,SuperClass,Object[]";
+   }
+   
+   public void before10(@Target OverloadedAdvicePOJO target, @Arg int arg)
+   {
+      before10 = "OverloadedAdvicePOJO,int";
+   }
+   
+   public void before10(@Target Object target, @Arg int arg)
+   {
+      before10 = "Object,int";
+   }
+   
+   public void before10(@Target OverloadedAdvicePOJO target, @Args Object[] args)
+   {
+      before10 = "OverloadedAdvicePOJO,Object[]";
+   }
+   
+   public void before10(@Target Object target, @Args Object[] args)
+   {
+      before10 = "Object,Object[]";
+   }
+   
+   public void before10(@Target OverloadedAdvicePOJO target)
+   {
+      before10 = "OverloadedAdvicePOJO";
+   }
+   
+   public void before10(@Target Object target)
+   {
+      before10 = "Object";
+   }
+   
+   public void before10(@Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+   {
+      before10 = "OverloadedAdvicePOJOCaller,int";
+   }
+   
+   public void before10(@Caller SuperClass caller, @Arg int arg)
+   {
+      before10 = "SuperClass,int";
+   }
+   
+   public void before10(@Caller OverloadedAdvicePOJOCaller caller,
+         @Args Object[] args)
+   {
+      before10 = "OverloadedAdvicePOJOCaller,Object[]";
+   }
+   
+   public void before10(@Caller SuperClass caller, @Args Object[] args)
+   {
+      before10 = "SuperClass,Object[]";
+   }
+   
+   public void before10(@Caller OverloadedAdvicePOJOCaller caller)
+   {
+      before10 = "OverloadedAdvicePOJOCaller";
+   }
+   
+   public void before10(@Caller SuperClass caller)
+   {
+      before10 = "SuperClass";
+   }
+   
+   public void before10(@Arg int arg)
+   {
+      before10 = "int";
+   }
+   
+   public void before10(@Args Object[] args)
+   {
+      before10 = "Object[]";
+   }
+   
+   public void before10(@Arg int arg, @Args Object[] args)
+   {
+      Assert.fail("This advice should never be executed");
+   }
+   
+   /* BEFORE11 ADVICE */
+   
+   public void before11(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Target Object target, @Caller OverloadedAdvicePOJOCaller caller)
+   {
+      before11 = "MethodByMethodInfo,Object,OverloadedAdvicePOJOCaller";
+   }
+   
+   public void before11(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Target Object target, @Caller SuperClass caller)
+   {
+      before11 = "MethodByMethodInfo,Object,SuperClass";
+   }
+   
+   public void before11(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Target OverloadedAdvicePOJO target, @Arg int arg)
+   {
+      before11 = "MethodByMethodInfo,OverloadedAdvicePOJO,int";
+   }
+   
+   public void before11(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Target Object target, @Arg int arg)
+   {
+      before11 = "MethodByMethodInfo,Object,int";
+   }
+   
+   public void before11(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Target OverloadedAdvicePOJO target, @Args Object[] args)
+   {
+      before11 = "MethodByMethodInfo,OverloadedAdvicePOJO,Object[]";
+   }
+   
+   public void before11(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Target Object target, @Args Object[] args)
+   {
+      before11 = "MethodByMethodInfo,Object,Object[]";
+   }
+   
+   public void before11(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+   {
+      before11 = "MethodByMethodInfo,OverloadedAdvicePOJOCaller,int";
+   }
+   
+   public void before11(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Caller SuperClass caller, @Arg int arg)
+   {
+      before11 = "MethodByMethodInfo,SuperClass,int";
+   }
+   
+   public void before11(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Caller OverloadedAdvicePOJOCaller caller, @Args Object[] args)
+   {
+      before11 = "MethodByMethodInfo,OverloadedAdvicePOJOCaller,Object[]";
+   }
+   
+   public void before11(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Caller SuperClass caller, @Args Object[] args)
+   {
+      before11 = "MethodByMethodInfo,SuperClass,Object[]";
+   }
+   
+   public void before11(@JoinPoint MethodByMethodInfo joinPointInfo, @Arg int arg)
+   {
+      before11 = "MethodByMethodInfo,int";
+   }
+   
+   public void before11(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Args Object[] args)
+   {
+      before11 = "MethodByMethodInfo,Object[]";
+   }
+   
+   public void before11(@JoinPoint MethodByMethodInfo joinPointInfo)
+   {
+      before11= "MethodByMethodInfo";
+   }
+   
+   public void before11(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+   {
+      before11 = "OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,int";
+   }
+   
+   public void before11(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Arg int arg)
+   {
+      before11 = "OverloadedAdvicePOJO,SuperClass,int";
+   }
+   
+   public void before11(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+   {
+      before11 = "Object,OverloadedAdvicePOJOCaller,int";
+   }
+   
+   public void before11(@Target Object target, @Caller SuperClass caller,
+         @Arg int arg)
+   {
+      before11 = "Object,SuperClass,int";
+   }
+ 
+   public void before11(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Args Object[] args)
+   {
+      before11 = "OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,Object[]";
+   }
+   
+   public void before11(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Args Object[] args)
+   {
+      before11 = "OverloadedAdvicePOJO,SuperClass,Object[]";
+   }
+   
+   public void before11(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Args Object[] args)
+   {
+      before11 = "Object,OverloadedAdvicePOJOCaller,Object[]";
+   }
+   
+   public void before11(@Target Object target, @Caller SuperClass caller,
+         @Args Object[] args)
+   {
+      before11 = "Object,SuperClass,Object[]";
+   }
+   
+   public void before11(@Target OverloadedAdvicePOJO target, @Arg int arg)
+   {
+      before11 = "OverloadedAdvicePOJO,int";
+   }
+   
+   public void before11(@Target Object target, @Arg int arg)
+   {
+      before11 = "Object,int";
+   }
+   
+   public void before11(@Target OverloadedAdvicePOJO target, @Args Object[] args)
+   {
+      before11 = "OverloadedAdvicePOJO,Object[]";
+   }
+   
+   public void before11(@Target Object target, @Args Object[] args)
+   {
+      before11 = "Object,Object[]";
+   }
+   
+   public void before11(@Target OverloadedAdvicePOJO target)
+   {
+      before11 = "OverloadedAdvicePOJO";
+   }
+   
+   public void before11(@Target Object target)
+   {
+      before11 = "Object";
+   }
+   
+   public void before11(@Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+   {
+      before11 = "OverloadedAdvicePOJOCaller,int";
+   }
+   
+   public void before11(@Caller SuperClass caller, @Arg int arg)
+   {
+      before11 = "SuperClass,int";
+   }
+   
+   public void before11(@Caller OverloadedAdvicePOJOCaller caller,
+         @Args Object[] args)
+   {
+      before11 = "OverloadedAdvicePOJOCaller,Object[]";
+   }
+   
+   public void before11(@Caller SuperClass caller, @Args Object[] args)
+   {
+      before11 = "SuperClass,Object[]";
+   }
+   
+   public void before11(@Caller OverloadedAdvicePOJOCaller caller)
+   {
+      before11 = "OverloadedAdvicePOJOCaller";
+   }
+   
+   public void before11(@Caller SuperClass caller)
+   {
+      before11 = "SuperClass";
+   }
+   
+   public void before11(@Arg int arg)
+   {
+      before11 = "int";
+   }
+   
+   public void before11(@Args Object[] args)
+   {
+      before11 = "Object[]";
+   }
+   
+   public void before11(@Arg int arg, @Args Object[] args)
+   {
+      Assert.fail("This advice should never be executed");
+   }
+   
+   /* BEFORE12 ADVICE */
+   
+   public void before12(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Target Object target, @Caller SuperClass caller)
+   {
+      before12 = "MethodByMethodInfo,Object,SuperClass";
+   }
+   
+   public void before12(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Target OverloadedAdvicePOJO target, @Arg int arg)
+   {
+      before12 = "MethodByMethodInfo,OverloadedAdvicePOJO,int";
+   }
+   
+   public void before12(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Target Object target, @Arg int arg)
+   {
+      before12 = "MethodByMethodInfo,Object,int";
+   }
+   
+   public void before12(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Target OverloadedAdvicePOJO target, @Args Object[] args)
+   {
+      before12 = "MethodByMethodInfo,OverloadedAdvicePOJO,Object[]";
+   }
+   
+   public void before12(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Target Object target, @Args Object[] args)
+   {
+      before12 = "MethodByMethodInfo,Object,Object[]";
+   }
+   
+   public void before12(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+   {
+      before12 = "MethodByMethodInfo,OverloadedAdvicePOJOCaller,int";
+   }
+   
+   public void before12(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Caller SuperClass caller, @Arg int arg)
+   {
+      before12 = "MethodByMethodInfo,SuperClass,int";
+   }
+   
+   public void before12(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Caller OverloadedAdvicePOJOCaller caller, @Args Object[] args)
+   {
+      before12 = "MethodByMethodInfo,OverloadedAdvicePOJOCaller,Object[]";
+   }
+   
+   public void before12(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Caller SuperClass caller, @Args Object[] args)
+   {
+      before12 = "MethodByMethodInfo,SuperClass,Object[]";
+   }
+   
+   public void before12(@JoinPoint MethodByMethodInfo joinPointInfo, @Arg int arg)
+   {
+      before12 = "MethodByMethodInfo,int";
+   }
+   
+   public void before12(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Args Object[] args)
+   {
+      before12 = "MethodByMethodInfo,Object[]";
+   }
+   
+   public void before12(@JoinPoint MethodByMethodInfo joinPointInfo)
+   {
+      before12= "MethodByMethodInfo";
+   }
+   
+   public void before12(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+   {
+      before12 = "OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,int";
+   }
+   
+   public void before12(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Arg int arg)
+   {
+      before12 = "OverloadedAdvicePOJO,SuperClass,int";
+   }
+   
+   public void before12(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+   {
+      before12 = "Object,OverloadedAdvicePOJOCaller,int";
+   }
+   
+   public void before12(@Target Object target, @Caller SuperClass caller,
+         @Arg int arg)
+   {
+      before12 = "Object,SuperClass,int";
+   }
+ 
+   public void before12(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Args Object[] args)
+   {
+      before12 = "OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,Object[]";
+   }
+   
+   public void before12(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Args Object[] args)
+   {
+      before12 = "OverloadedAdvicePOJO,SuperClass,Object[]";
+   }
+   
+   public void before12(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Args Object[] args)
+   {
+      before12 = "Object,OverloadedAdvicePOJOCaller,Object[]";
+   }
+   
+   public void before12(@Target Object target, @Caller SuperClass caller,
+         @Args Object[] args)
+   {
+      before12 = "Object,SuperClass,Object[]";
+   }
+   
+   public void before12(@Target OverloadedAdvicePOJO target, @Arg int arg)
+   {
+      before12 = "OverloadedAdvicePOJO,int";
+   }
+   
+   public void before12(@Target Object target, @Arg int arg)
+   {
+      before12 = "Object,int";
+   }
+   
+   public void before12(@Target OverloadedAdvicePOJO target, @Args Object[] args)
+   {
+      before12 = "OverloadedAdvicePOJO,Object[]";
+   }
+   
+   public void before12(@Target Object target, @Args Object[] args)
+   {
+      before12 = "Object,Object[]";
+   }
+   
+   public void before12(@Target OverloadedAdvicePOJO target)
+   {
+      before12 = "OverloadedAdvicePOJO";
+   }
+   
+   public void before12(@Target Object target)
+   {
+      before12 = "Object";
+   }
+   
+   public void before12(@Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+   {
+      before12 = "OverloadedAdvicePOJOCaller,int";
+   }
+   
+   public void before12(@Caller SuperClass caller, @Arg int arg)
+   {
+      before12 = "SuperClass,int";
+   }
+   
+   public void before12(@Caller OverloadedAdvicePOJOCaller caller,
+         @Args Object[] args)
+   {
+      before12 = "OverloadedAdvicePOJOCaller,Object[]";
+   }
+   
+   public void before12(@Caller SuperClass caller, @Args Object[] args)
+   {
+      before12 = "SuperClass,Object[]";
+   }
+   
+   public void before12(@Caller OverloadedAdvicePOJOCaller caller)
+   {
+      before12 = "OverloadedAdvicePOJOCaller";
+   }
+   
+   public void before12(@Caller SuperClass caller)
+   {
+      before12 = "SuperClass";
+   }
+   
+   public void before12(@Arg int arg)
+   {
+      before12 = "int";
+   }
+   
+   public void before12(@Args Object[] args)
+   {
+      before12 = "Object[]";
+   }
+   
+   public void before12(@Arg int arg, @Args Object[] args)
+   {
+      Assert.fail("This advice should never be executed");
+   }
+   
+   /* BEFORE13 ADVICE */
+   
+   public void before13(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Target OverloadedAdvicePOJO target, @Arg int arg)
+   {
+      before13 = "MethodByMethodInfo,OverloadedAdvicePOJO,int";
+   }
+   
+   public void before13(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Target Object target, @Arg int arg)
+   {
+      before13 = "MethodByMethodInfo,Object,int";
+   }
+   
+   public void before13(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Target OverloadedAdvicePOJO target, @Args Object[] args)
+   {
+      before13 = "MethodByMethodInfo,OverloadedAdvicePOJO,Object[]";
+   }
+   
+   public void before13(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Target Object target, @Args Object[] args)
+   {
+      before13 = "MethodByMethodInfo,Object,Object[]";
+   }
+   
+   public void before13(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+   {
+      before13 = "MethodByMethodInfo,OverloadedAdvicePOJOCaller,int";
+   }
+   
+   public void before13(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Caller SuperClass caller, @Arg int arg)
+   {
+      before13 = "MethodByMethodInfo,SuperClass,int";
+   }
+   
+   public void before13(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Caller OverloadedAdvicePOJOCaller caller, @Args Object[] args)
+   {
+      before13 = "MethodByMethodInfo,OverloadedAdvicePOJOCaller,Object[]";
+   }
+   
+   public void before13(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Caller SuperClass caller, @Args Object[] args)
+   {
+      before13 = "MethodByMethodInfo,SuperClass,Object[]";
+   }
+   
+   public void before13(@JoinPoint MethodByMethodInfo joinPointInfo, @Arg int arg)
+   {
+      before13 = "MethodByMethodInfo,int";
+   }
+   
+   public void before13(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Args Object[] args)
+   {
+      before13 = "MethodByMethodInfo,Object[]";
+   }
+   
+   public void before13(@JoinPoint MethodByMethodInfo joinPointInfo)
+   {
+      before13= "MethodByMethodInfo";
+   }
+   
+   public void before13(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+   {
+      before13 = "OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,int";
+   }
+   
+   public void before13(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Arg int arg)
+   {
+      before13 = "OverloadedAdvicePOJO,SuperClass,int";
+   }
+   
+   public void before13(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+   {
+      before13 = "Object,OverloadedAdvicePOJOCaller,int";
+   }
+   
+   public void before13(@Target Object target, @Caller SuperClass caller,
+         @Arg int arg)
+   {
+      before13 = "Object,SuperClass,int";
+   }
+ 
+   public void before13(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Args Object[] args)
+   {
+      before13 = "OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,Object[]";
+   }
+   
+   public void before13(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Args Object[] args)
+   {
+      before13 = "OverloadedAdvicePOJO,SuperClass,Object[]";
+   }
+   
+   public void before13(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Args Object[] args)
+   {
+      before13 = "Object,OverloadedAdvicePOJOCaller,Object[]";
+   }
+   
+   public void before13(@Target Object target, @Caller SuperClass caller,
+         @Args Object[] args)
+   {
+      before13 = "Object,SuperClass,Object[]";
+   }
+   
+   public void before13(@Target OverloadedAdvicePOJO target, @Arg int arg)
+   {
+      before13 = "OverloadedAdvicePOJO,int";
+   }
+   
+   public void before13(@Target Object target, @Arg int arg)
+   {
+      before13 = "Object,int";
+   }
+   
+   public void before13(@Target OverloadedAdvicePOJO target, @Args Object[] args)
+   {
+      before13 = "OverloadedAdvicePOJO,Object[]";
+   }
+   
+   public void before13(@Target Object target, @Args Object[] args)
+   {
+      before13 = "Object,Object[]";
+   }
+   
+   public void before13(@Target OverloadedAdvicePOJO target)
+   {
+      before13 = "OverloadedAdvicePOJO";
+   }
+   
+   public void before13(@Target Object target)
+   {
+      before13 = "Object";
+   }
+   
+   public void before13(@Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+   {
+      before13 = "OverloadedAdvicePOJOCaller,int";
+   }
+   
+   public void before13(@Caller SuperClass caller, @Arg int arg)
+   {
+      before13 = "SuperClass,int";
+   }
+   
+   public void before13(@Caller OverloadedAdvicePOJOCaller caller,
+         @Args Object[] args)
+   {
+      before13 = "OverloadedAdvicePOJOCaller,Object[]";
+   }
+   
+   public void before13(@Caller SuperClass caller, @Args Object[] args)
+   {
+      before13 = "SuperClass,Object[]";
+   }
+   
+   public void before13(@Caller OverloadedAdvicePOJOCaller caller)
+   {
+      before13 = "OverloadedAdvicePOJOCaller";
+   }
+   
+   public void before13(@Caller SuperClass caller)
+   {
+      before13 = "SuperClass";
+   }
+   
+   public void before13(@Arg int arg)
+   {
+      before13 = "int";
+   }
+   
+   public void before13(@Args Object[] args)
+   {
+      before13 = "Object[]";
+   }
+   
+   public void before13(@Arg int arg, @Args Object[] args)
+   {
+      Assert.fail("This advice should never be executed");
+   }
+   
+   /* BEFORE14 ADVICE */
+   
+   public void before14(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Target Object target, @Arg int arg)
+   {
+      before14 = "MethodByMethodInfo,Object,int";
+   }
+   
+   public void before14(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Target OverloadedAdvicePOJO target, @Args Object[] args)
+   {
+      before14 = "MethodByMethodInfo,OverloadedAdvicePOJO,Object[]";
+   }
+   
+   public void before14(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Target Object target, @Args Object[] args)
+   {
+      before14 = "MethodByMethodInfo,Object,Object[]";
+   }
+   
+   public void before14(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+   {
+      before14 = "MethodByMethodInfo,OverloadedAdvicePOJOCaller,int";
+   }
+   
+   public void before14(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Caller SuperClass caller, @Arg int arg)
+   {
+      before14 = "MethodByMethodInfo,SuperClass,int";
+   }
+   
+   public void before14(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Caller OverloadedAdvicePOJOCaller caller, @Args Object[] args)
+   {
+      before14 = "MethodByMethodInfo,OverloadedAdvicePOJOCaller,Object[]";
+   }
+   
+   public void before14(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Caller SuperClass caller, @Args Object[] args)
+   {
+      before14 = "MethodByMethodInfo,SuperClass,Object[]";
+   }
+   
+   public void before14(@JoinPoint MethodByMethodInfo joinPointInfo, @Arg int arg)
+   {
+      before14 = "MethodByMethodInfo,int";
+   }
+   
+   public void before14(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Args Object[] args)
+   {
+      before14 = "MethodByMethodInfo,Object[]";
+   }
+   
+   public void before14(@JoinPoint MethodByMethodInfo joinPointInfo)
+   {
+      before14= "MethodByMethodInfo";
+   }
+   
+   public void before14(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+   {
+      before14 = "OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,int";
+   }
+   
+   public void before14(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Arg int arg)
+   {
+      before14 = "OverloadedAdvicePOJO,SuperClass,int";
+   }
+   
+   public void before14(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+   {
+      before14 = "Object,OverloadedAdvicePOJOCaller,int";
+   }
+   
+   public void before14(@Target Object target, @Caller SuperClass caller,
+         @Arg int arg)
+   {
+      before14 = "Object,SuperClass,int";
+   }
+ 
+   public void before14(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Args Object[] args)
+   {
+      before14 = "OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,Object[]";
+   }
+   
+   public void before14(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Args Object[] args)
+   {
+      before14 = "OverloadedAdvicePOJO,SuperClass,Object[]";
+   }
+   
+   public void before14(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Args Object[] args)
+   {
+      before14 = "Object,OverloadedAdvicePOJOCaller,Object[]";
+   }
+   
+   public void before14(@Target Object target, @Caller SuperClass caller,
+         @Args Object[] args)
+   {
+      before14 = "Object,SuperClass,Object[]";
+   }
+   
+   public void before14(@Target OverloadedAdvicePOJO target, @Arg int arg)
+   {
+      before14 = "OverloadedAdvicePOJO,int";
+   }
+   
+   public void before14(@Target Object target, @Arg int arg)
+   {
+      before14 = "Object,int";
+   }
+   
+   public void before14(@Target OverloadedAdvicePOJO target, @Args Object[] args)
+   {
+      before14 = "OverloadedAdvicePOJO,Object[]";
+   }
+   
+   public void before14(@Target Object target, @Args Object[] args)
+   {
+      before14 = "Object,Object[]";
+   }
+   
+   public void before14(@Target OverloadedAdvicePOJO target)
+   {
+      before14 = "OverloadedAdvicePOJO";
+   }
+   
+   public void before14(@Target Object target)
+   {
+      before14 = "Object";
+   }
+   
+   public void before14(@Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+   {
+      before14 = "OverloadedAdvicePOJOCaller,int";
+   }
+   
+   public void before14(@Caller SuperClass caller, @Arg int arg)
+   {
+      before14 = "SuperClass,int";
+   }
+   
+   public void before14(@Caller OverloadedAdvicePOJOCaller caller,
+         @Args Object[] args)
+   {
+      before14 = "OverloadedAdvicePOJOCaller,Object[]";
+   }
+   
+   public void before14(@Caller SuperClass caller, @Args Object[] args)
+   {
+      before14 = "SuperClass,Object[]";
+   }
+   
+   public void before14(@Caller OverloadedAdvicePOJOCaller caller)
+   {
+      before14 = "OverloadedAdvicePOJOCaller";
+   }
+   
+   public void before14(@Caller SuperClass caller)
+   {
+      before14 = "SuperClass";
+   }
+   
+   public void before14(@Arg int arg)
+   {
+      before14 = "int";
+   }
+   
+   public void before14(@Args Object[] args)
+   {
+      before14 = "Object[]";
+   }
+   
+   public void before14(@Arg int arg, @Args Object[] args)
+   {
+      Assert.fail("This advice should never be executed");
+   }
+   
+   /* BEFORE15 ADVICE */
+   
+   public void before15(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Target OverloadedAdvicePOJO target, @Args Object[] args)
+   {
+      before15 = "MethodByMethodInfo,OverloadedAdvicePOJO,Object[]";
+   }
+   
+   public void before15(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Target Object target, @Args Object[] args)
+   {
+      before15 = "MethodByMethodInfo,Object,Object[]";
+   }
+   
+   public void before15(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+   {
+      before15 = "MethodByMethodInfo,OverloadedAdvicePOJOCaller,int";
+   }
+   
+   public void before15(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Caller SuperClass caller, @Arg int arg)
+   {
+      before15 = "MethodByMethodInfo,SuperClass,int";
+   }
+   
+   public void before15(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Caller OverloadedAdvicePOJOCaller caller, @Args Object[] args)
+   {
+      before15 = "MethodByMethodInfo,OverloadedAdvicePOJOCaller,Object[]";
+   }
+   
+   public void before15(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Caller SuperClass caller, @Args Object[] args)
+   {
+      before15 = "MethodByMethodInfo,SuperClass,Object[]";
+   }
+   
+   public void before15(@JoinPoint MethodByMethodInfo joinPointInfo, @Arg int arg)
+   {
+      before15 = "MethodByMethodInfo,int";
+   }
+   
+   public void before15(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Args Object[] args)
+   {
+      before15 = "MethodByMethodInfo,Object[]";
+   }
+   
+   public void before15(@JoinPoint MethodByMethodInfo joinPointInfo)
+   {
+      before15= "MethodByMethodInfo";
+   }
+   
+   public void before15(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+   {
+      before15 = "OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,int";
+   }
+   
+   public void before15(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Arg int arg)
+   {
+      before15 = "OverloadedAdvicePOJO,SuperClass,int";
+   }
+   
+   public void before15(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+   {
+      before15 = "Object,OverloadedAdvicePOJOCaller,int";
+   }
+   
+   public void before15(@Target Object target, @Caller SuperClass caller,
+         @Arg int arg)
+   {
+      before15 = "Object,SuperClass,int";
+   }
+ 
+   public void before15(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Args Object[] args)
+   {
+      before15 = "OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,Object[]";
+   }
+   
+   public void before15(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Args Object[] args)
+   {
+      before15 = "OverloadedAdvicePOJO,SuperClass,Object[]";
+   }
+   
+   public void before15(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Args Object[] args)
+   {
+      before15 = "Object,OverloadedAdvicePOJOCaller,Object[]";
+   }
+   
+   public void before15(@Target Object target, @Caller SuperClass caller,
+         @Args Object[] args)
+   {
+      before15 = "Object,SuperClass,Object[]";
+   }
+   
+   public void before15(@Target OverloadedAdvicePOJO target, @Arg int arg)
+   {
+      before15 = "OverloadedAdvicePOJO,int";
+   }
+   
+   public void before15(@Target Object target, @Arg int arg)
+   {
+      before15 = "Object,int";
+   }
+   
+   public void before15(@Target OverloadedAdvicePOJO target, @Args Object[] args)
+   {
+      before15 = "OverloadedAdvicePOJO,Object[]";
+   }
+   
+   public void before15(@Target Object target, @Args Object[] args)
+   {
+      before15 = "Object,Object[]";
+   }
+   
+   public void before15(@Target OverloadedAdvicePOJO target)
+   {
+      before15 = "OverloadedAdvicePOJO";
+   }
+   
+   public void before15(@Target Object target)
+   {
+      before15 = "Object";
+   }
+   
+   public void before15(@Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+   {
+      before15 = "OverloadedAdvicePOJOCaller,int";
+   }
+   
+   public void before15(@Caller SuperClass caller, @Arg int arg)
+   {
+      before15 = "SuperClass,int";
+   }
+   
+   public void before15(@Caller OverloadedAdvicePOJOCaller caller,
+         @Args Object[] args)
+   {
+      before15 = "OverloadedAdvicePOJOCaller,Object[]";
+   }
+   
+   public void before15(@Caller SuperClass caller, @Args Object[] args)
+   {
+      before15 = "SuperClass,Object[]";
+   }
+   
+   public void before15(@Caller OverloadedAdvicePOJOCaller caller)
+   {
+      before15 = "OverloadedAdvicePOJOCaller";
+   }
+   
+   public void before15(@Caller SuperClass caller)
+   {
+      before15 = "SuperClass";
+   }
+   
+   public void before15(@Arg int arg)
+   {
+      before15 = "int";
+   }
+   
+   public void before15(@Args Object[] args)
+   {
+      before15 = "Object[]";
+   }
+   
+   public void before15(@Arg int arg, @Args Object[] args)
+   {
+      Assert.fail("This advice should never be executed");
+   }
+   
+   /* BEFORE16 ADVICE */
+   
+   public void before16(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Target Object target, @Args Object[] args)
+   {
+      before16 = "MethodByMethodInfo,Object,Object[]";
+   }
+   
+   public void before16(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+   {
+      before16 = "MethodByMethodInfo,OverloadedAdvicePOJOCaller,int";
+   }
+   
+   public void before16(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Caller SuperClass caller, @Arg int arg)
+   {
+      before16 = "MethodByMethodInfo,SuperClass,int";
+   }
+   
+   public void before16(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Caller OverloadedAdvicePOJOCaller caller, @Args Object[] args)
+   {
+      before16 = "MethodByMethodInfo,OverloadedAdvicePOJOCaller,Object[]";
+   }
+   
+   public void before16(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Caller SuperClass caller, @Args Object[] args)
+   {
+      before16 = "MethodByMethodInfo,SuperClass,Object[]";
+   }
+   
+   public void before16(@JoinPoint MethodByMethodInfo joinPointInfo, @Arg int arg)
+   {
+      before16 = "MethodByMethodInfo,int";
+   }
+   
+   public void before16(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Args Object[] args)
+   {
+      before16 = "MethodByMethodInfo,Object[]";
+   }
+   
+   public void before16(@JoinPoint MethodByMethodInfo joinPointInfo)
+   {
+      before16= "MethodByMethodInfo";
+   }
+   
+   public void before16(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+   {
+      before16 = "OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,int";
+   }
+   
+   public void before16(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Arg int arg)
+   {
+      before16 = "OverloadedAdvicePOJO,SuperClass,int";
+   }
+   
+   public void before16(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+   {
+      before16 = "Object,OverloadedAdvicePOJOCaller,int";
+   }
+   
+   public void before16(@Target Object target, @Caller SuperClass caller,
+         @Arg int arg)
+   {
+      before16 = "Object,SuperClass,int";
+   }
+ 
+   public void before16(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Args Object[] args)
+   {
+      before16 = "OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,Object[]";
+   }
+   
+   public void before16(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Args Object[] args)
+   {
+      before16 = "OverloadedAdvicePOJO,SuperClass,Object[]";
+   }
+   
+   public void before16(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Args Object[] args)
+   {
+      before16 = "Object,OverloadedAdvicePOJOCaller,Object[]";
+   }
+   
+   public void before16(@Target Object target, @Caller SuperClass caller,
+         @Args Object[] args)
+   {
+      before16 = "Object,SuperClass,Object[]";
+   }
+   
+   public void before16(@Target OverloadedAdvicePOJO target, @Arg int arg)
+   {
+      before16 = "OverloadedAdvicePOJO,int";
+   }
+   
+   public void before16(@Target Object target, @Arg int arg)
+   {
+      before16 = "Object,int";
+   }
+   
+   public void before16(@Target OverloadedAdvicePOJO target, @Args Object[] args)
+   {
+      before16 = "OverloadedAdvicePOJO,Object[]";
+   }
+   
+   public void before16(@Target Object target, @Args Object[] args)
+   {
+      before16 = "Object,Object[]";
+   }
+   
+   public void before16(@Target OverloadedAdvicePOJO target)
+   {
+      before16 = "OverloadedAdvicePOJO";
+   }
+   
+   public void before16(@Target Object target)
+   {
+      before16 = "Object";
+   }
+   
+   public void before16(@Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+   {
+      before16 = "OverloadedAdvicePOJOCaller,int";
+   }
+   
+   public void before16(@Caller SuperClass caller, @Arg int arg)
+   {
+      before16 = "SuperClass,int";
+   }
+   
+   public void before16(@Caller OverloadedAdvicePOJOCaller caller,
+         @Args Object[] args)
+   {
+      before16 = "OverloadedAdvicePOJOCaller,Object[]";
+   }
+   
+   public void before16(@Caller SuperClass caller, @Args Object[] args)
+   {
+      before16 = "SuperClass,Object[]";
+   }
+   
+   public void before16(@Caller OverloadedAdvicePOJOCaller caller)
+   {
+      before16 = "OverloadedAdvicePOJOCaller";
+   }
+   
+   public void before16(@Caller SuperClass caller)
+   {
+      before16 = "SuperClass";
+   }
+   
+   public void before16(@Arg int arg)
+   {
+      before16 = "int";
+   }
+   
+   public void before16(@Args Object[] args)
+   {
+      before16 = "Object[]";
+   }
+   
+   public void before16(@Arg int arg, @Args Object[] args)
+   {
+      Assert.fail("This advice should never be executed");
+   }
+   
+   /* BEFORE17 ADVICE */
+   
+   public void before17(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+   {
+      before17 = "MethodByMethodInfo,OverloadedAdvicePOJOCaller,int";
+   }
+   
+   public void before17(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Caller SuperClass caller, @Arg int arg)
+   {
+      before17 = "MethodByMethodInfo,SuperClass,int";
+   }
+   
+   public void before17(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Caller OverloadedAdvicePOJOCaller caller, @Args Object[] args)
+   {
+      before17 = "MethodByMethodInfo,OverloadedAdvicePOJOCaller,Object[]";
+   }
+   
+   public void before17(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Caller SuperClass caller, @Args Object[] args)
+   {
+      before17 = "MethodByMethodInfo,SuperClass,Object[]";
+   }
+   
+   public void before17(@JoinPoint MethodByMethodInfo joinPointInfo, @Arg int arg)
+   {
+      before17 = "MethodByMethodInfo,int";
+   }
+   
+   public void before17(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Args Object[] args)
+   {
+      before17 = "MethodByMethodInfo,Object[]";
+   }
+   
+   public void before17(@JoinPoint MethodByMethodInfo joinPointInfo)
+   {
+      before17= "MethodByMethodInfo";
+   }
+   
+   public void before17(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+   {
+      before17 = "OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,int";
+   }
+   
+   public void before17(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Arg int arg)
+   {
+      before17 = "OverloadedAdvicePOJO,SuperClass,int";
+   }
+   
+   public void before17(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+   {
+      before17 = "Object,OverloadedAdvicePOJOCaller,int";
+   }
+   
+   public void before17(@Target Object target, @Caller SuperClass caller,
+         @Arg int arg)
+   {
+      before17 = "Object,SuperClass,int";
+   }
+ 
+   public void before17(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Args Object[] args)
+   {
+      before17 = "OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,Object[]";
+   }
+   
+   public void before17(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Args Object[] args)
+   {
+      before17 = "OverloadedAdvicePOJO,SuperClass,Object[]";
+   }
+   
+   public void before17(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Args Object[] args)
+   {
+      before17 = "Object,OverloadedAdvicePOJOCaller,Object[]";
+   }
+   
+   public void before17(@Target Object target, @Caller SuperClass caller,
+         @Args Object[] args)
+   {
+      before17 = "Object,SuperClass,Object[]";
+   }
+   
+   public void before17(@Target OverloadedAdvicePOJO target, @Arg int arg)
+   {
+      before17 = "OverloadedAdvicePOJO,int";
+   }
+   
+   public void before17(@Target Object target, @Arg int arg)
+   {
+      before17 = "Object,int";
+   }
+   
+   public void before17(@Target OverloadedAdvicePOJO target, @Args Object[] args)
+   {
+      before17 = "OverloadedAdvicePOJO,Object[]";
+   }
+   
+   public void before17(@Target Object target, @Args Object[] args)
+   {
+      before17 = "Object,Object[]";
+   }
+   
+   public void before17(@Target OverloadedAdvicePOJO target)
+   {
+      before17 = "OverloadedAdvicePOJO";
+   }
+   
+   public void before17(@Target Object target)
+   {
+      before17 = "Object";
+   }
+   
+   public void before17(@Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+   {
+      before17 = "OverloadedAdvicePOJOCaller,int";
+   }
+   
+   public void before17(@Caller SuperClass caller, @Arg int arg)
+   {
+      before17 = "SuperClass,int";
+   }
+   
+   public void before17(@Caller OverloadedAdvicePOJOCaller caller,
+         @Args Object[] args)
+   {
+      before17 = "OverloadedAdvicePOJOCaller,Object[]";
+   }
+   
+   public void before17(@Caller SuperClass caller, @Args Object[] args)
+   {
+      before17 = "SuperClass,Object[]";
+   }
+   
+   public void before17(@Caller OverloadedAdvicePOJOCaller caller)
+   {
+      before17 = "OverloadedAdvicePOJOCaller";
+   }
+   
+   public void before17(@Caller SuperClass caller)
+   {
+      before17 = "SuperClass";
+   }
+   
+   public void before17(@Arg int arg)
+   {
+      before17 = "int";
+   }
+   
+   public void before17(@Args Object[] args)
+   {
+      before17 = "Object[]";
+   }
+   
+   public void before17(@Arg int arg, @Args Object[] args)
+   {
+      Assert.fail("This advice should never be executed");
+   }
+   
+   /* BEFORE18 ADVICE */
+   
+   public void before18(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Caller SuperClass caller, @Arg int arg)
+   {
+      before18 = "MethodByMethodInfo,SuperClass,int";
+   }
+   
+   public void before18(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Caller OverloadedAdvicePOJOCaller caller, @Args Object[] args)
+   {
+      before18 = "MethodByMethodInfo,OverloadedAdvicePOJOCaller,Object[]";
+   }
+   
+   public void before18(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Caller SuperClass caller, @Args Object[] args)
+   {
+      before18 = "MethodByMethodInfo,SuperClass,Object[]";
+   }
+   
+   public void before18(@JoinPoint MethodByMethodInfo joinPointInfo, @Arg int arg)
+   {
+      before18 = "MethodByMethodInfo,int";
+   }
+   
+   public void before18(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Args Object[] args)
+   {
+      before18 = "MethodByMethodInfo,Object[]";
+   }
+   
+   public void before18(@JoinPoint MethodByMethodInfo joinPointInfo)
+   {
+      before18= "MethodByMethodInfo";
+   }
+   
+   public void before18(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+   {
+      before18 = "OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,int";
+   }
+   
+   public void before18(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Arg int arg)
+   {
+      before18 = "OverloadedAdvicePOJO,SuperClass,int";
+   }
+   
+   public void before18(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+   {
+      before18 = "Object,OverloadedAdvicePOJOCaller,int";
+   }
+   
+   public void before18(@Target Object target, @Caller SuperClass caller,
+         @Arg int arg)
+   {
+      before18 = "Object,SuperClass,int";
+   }
+ 
+   public void before18(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Args Object[] args)
+   {
+      before18 = "OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,Object[]";
+   }
+   
+   public void before18(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Args Object[] args)
+   {
+      before18 = "OverloadedAdvicePOJO,SuperClass,Object[]";
+   }
+   
+   public void before18(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Args Object[] args)
+   {
+      before18 = "Object,OverloadedAdvicePOJOCaller,Object[]";
+   }
+   
+   public void before18(@Target Object target, @Caller SuperClass caller,
+         @Args Object[] args)
+   {
+      before18 = "Object,SuperClass,Object[]";
+   }
+   
+   public void before18(@Target OverloadedAdvicePOJO target, @Arg int arg)
+   {
+      before18 = "OverloadedAdvicePOJO,int";
+   }
+   
+   public void before18(@Target Object target, @Arg int arg)
+   {
+      before18 = "Object,int";
+   }
+   
+   public void before18(@Target OverloadedAdvicePOJO target, @Args Object[] args)
+   {
+      before18 = "OverloadedAdvicePOJO,Object[]";
+   }
+   
+   public void before18(@Target Object target, @Args Object[] args)
+   {
+      before18 = "Object,Object[]";
+   }
+   
+   public void before18(@Target OverloadedAdvicePOJO target)
+   {
+      before18 = "OverloadedAdvicePOJO";
+   }
+   
+   public void before18(@Target Object target)
+   {
+      before18 = "Object";
+   }
+   
+   public void before18(@Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+   {
+      before18 = "OverloadedAdvicePOJOCaller,int";
+   }
+   
+   public void before18(@Caller SuperClass caller, @Arg int arg)
+   {
+      before18 = "SuperClass,int";
+   }
+   
+   public void before18(@Caller OverloadedAdvicePOJOCaller caller,
+         @Args Object[] args)
+   {
+      before18 = "OverloadedAdvicePOJOCaller,Object[]";
+   }
+   
+   public void before18(@Caller SuperClass caller, @Args Object[] args)
+   {
+      before18 = "SuperClass,Object[]";
+   }
+   
+   public void before18(@Caller OverloadedAdvicePOJOCaller caller)
+   {
+      before18 = "OverloadedAdvicePOJOCaller";
+   }
+   
+   public void before18(@Caller SuperClass caller)
+   {
+      before18 = "SuperClass";
+   }
+   
+   public void before18(@Arg int arg)
+   {
+      before18 = "int";
+   }
+   
+   public void before18(@Args Object[] args)
+   {
+      before18 = "Object[]";
+   }
+   
+   public void before18(@Arg int arg, @Args Object[] args)
+   {
+      Assert.fail("This advice should never be executed");
+   }
+   
+   /* BEFORE19 ADVICE */
+   
+   public void before19(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Caller OverloadedAdvicePOJOCaller caller, @Args Object[] args)
+   {
+      before19 = "MethodByMethodInfo,OverloadedAdvicePOJOCaller,Object[]";
+   }
+   
+   public void before19(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Caller SuperClass caller, @Args Object[] args)
+   {
+      before19 = "MethodByMethodInfo,SuperClass,Object[]";
+   }
+   
+   public void before19(@JoinPoint MethodByMethodInfo joinPointInfo, @Arg int arg)
+   {
+      before19 = "MethodByMethodInfo,int";
+   }
+   
+   public void before19(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Args Object[] args)
+   {
+      before19 = "MethodByMethodInfo,Object[]";
+   }
+   
+   public void before19(@JoinPoint MethodByMethodInfo joinPointInfo)
+   {
+      before19= "MethodByMethodInfo";
+   }
+   
+   public void before19(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+   {
+      before19 = "OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,int";
+   }
+   
+   public void before19(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Arg int arg)
+   {
+      before19 = "OverloadedAdvicePOJO,SuperClass,int";
+   }
+   
+   public void before19(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+   {
+      before19 = "Object,OverloadedAdvicePOJOCaller,int";
+   }
+   
+   public void before19(@Target Object target, @Caller SuperClass caller,
+         @Arg int arg)
+   {
+      before19 = "Object,SuperClass,int";
+   }
+ 
+   public void before19(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Args Object[] args)
+   {
+      before19 = "OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,Object[]";
+   }
+   
+   public void before19(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Args Object[] args)
+   {
+      before19 = "OverloadedAdvicePOJO,SuperClass,Object[]";
+   }
+   
+   public void before19(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Args Object[] args)
+   {
+      before19 = "Object,OverloadedAdvicePOJOCaller,Object[]";
+   }
+   
+   public void before19(@Target Object target, @Caller SuperClass caller,
+         @Args Object[] args)
+   {
+      before19 = "Object,SuperClass,Object[]";
+   }
+   
+   public void before19(@Target OverloadedAdvicePOJO target, @Arg int arg)
+   {
+      before19 = "OverloadedAdvicePOJO,int";
+   }
+   
+   public void before19(@Target Object target, @Arg int arg)
+   {
+      before19 = "Object,int";
+   }
+   
+   public void before19(@Target OverloadedAdvicePOJO target, @Args Object[] args)
+   {
+      before19 = "OverloadedAdvicePOJO,Object[]";
+   }
+   
+   public void before19(@Target Object target, @Args Object[] args)
+   {
+      before19 = "Object,Object[]";
+   }
+   
+   public void before19(@Target OverloadedAdvicePOJO target)
+   {
+      before19 = "OverloadedAdvicePOJO";
+   }
+   
+   public void before19(@Target Object target)
+   {
+      before19 = "Object";
+   }
+   
+   public void before19(@Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+   {
+      before19 = "OverloadedAdvicePOJOCaller,int";
+   }
+   
+   public void before19(@Caller SuperClass caller, @Arg int arg)
+   {
+      before19 = "SuperClass,int";
+   }
+   
+   public void before19(@Caller OverloadedAdvicePOJOCaller caller,
+         @Args Object[] args)
+   {
+      before19 = "OverloadedAdvicePOJOCaller,Object[]";
+   }
+   
+   public void before19(@Caller SuperClass caller, @Args Object[] args)
+   {
+      before19 = "SuperClass,Object[]";
+   }
+   
+   public void before19(@Caller OverloadedAdvicePOJOCaller caller)
+   {
+      before19 = "OverloadedAdvicePOJOCaller";
+   }
+   
+   public void before19(@Caller SuperClass caller)
+   {
+      before19 = "SuperClass";
+   }
+   
+   public void before19(@Arg int arg)
+   {
+      before19 = "int";
+   }
+   
+   public void before19(@Args Object[] args)
+   {
+      before19 = "Object[]";
+   }
+   
+   public void before19(@Arg int arg, @Args Object[] args)
+   {
+      Assert.fail("This advice should never be executed");
+   }
+   
+   /* BEFORE20 ADVICE */
+   
+   public void before20(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Caller SuperClass caller, @Args Object[] args)
+   {
+      before20 = "MethodByMethodInfo,SuperClass,Object[]";
+   }
+   
+   public void before20(@JoinPoint MethodByMethodInfo joinPointInfo, @Arg int arg)
+   {
+      before20 = "MethodByMethodInfo,int";
+   }
+   
+   public void before20(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Args Object[] args)
+   {
+      before20 = "MethodByMethodInfo,Object[]";
+   }
+   
+   public void before20(@JoinPoint MethodByMethodInfo joinPointInfo)
+   {
+      before20= "MethodByMethodInfo";
+   }
+   
+   public void before20(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+   {
+      before20 = "OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,int";
+   }
+   
+   public void before20(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Arg int arg)
+   {
+      before20 = "OverloadedAdvicePOJO,SuperClass,int";
+   }
+   
+   public void before20(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+   {
+      before20 = "Object,OverloadedAdvicePOJOCaller,int";
+   }
+   
+   public void before20(@Target Object target, @Caller SuperClass caller,
+         @Arg int arg)
+   {
+      before20 = "Object,SuperClass,int";
+   }
+ 
+   public void before20(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Args Object[] args)
+   {
+      before20 = "OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,Object[]";
+   }
+   
+   public void before20(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Args Object[] args)
+   {
+      before20 = "OverloadedAdvicePOJO,SuperClass,Object[]";
+   }
+   
+   public void before20(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Args Object[] args)
+   {
+      before20 = "Object,OverloadedAdvicePOJOCaller,Object[]";
+   }
+   
+   public void before20(@Target Object target, @Caller SuperClass caller,
+         @Args Object[] args)
+   {
+      before20 = "Object,SuperClass,Object[]";
+   }
+   
+   public void before20(@Target OverloadedAdvicePOJO target, @Arg int arg)
+   {
+      before20 = "OverloadedAdvicePOJO,int";
+   }
+   
+   public void before20(@Target Object target, @Arg int arg)
+   {
+      before20 = "Object,int";
+   }
+   
+   public void before20(@Target OverloadedAdvicePOJO target, @Args Object[] args)
+   {
+      before20 = "OverloadedAdvicePOJO,Object[]";
+   }
+   
+   public void before20(@Target Object target, @Args Object[] args)
+   {
+      before20 = "Object,Object[]";
+   }
+   
+   public void before20(@Target OverloadedAdvicePOJO target)
+   {
+      before20 = "OverloadedAdvicePOJO";
+   }
+   
+   public void before20(@Target Object target)
+   {
+      before20 = "Object";
+   }
+   
+   public void before20(@Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+   {
+      before20 = "OverloadedAdvicePOJOCaller,int";
+   }
+   
+   public void before20(@Caller SuperClass caller, @Arg int arg)
+   {
+      before20 = "SuperClass,int";
+   }
+   
+   public void before20(@Caller OverloadedAdvicePOJOCaller caller,
+         @Args Object[] args)
+   {
+      before20 = "OverloadedAdvicePOJOCaller,Object[]";
+   }
+   
+   public void before20(@Caller SuperClass caller, @Args Object[] args)
+   {
+      before20 = "SuperClass,Object[]";
+   }
+   
+   public void before20(@Caller OverloadedAdvicePOJOCaller caller)
+   {
+      before20 = "OverloadedAdvicePOJOCaller";
+   }
+   
+   public void before20(@Caller SuperClass caller)
+   {
+      before20 = "SuperClass";
+   }
+   
+   public void before20(@Arg int arg)
+   {
+      before20 = "int";
+   }
+   
+   public void before20(@Args Object[] args)
+   {
+      before20 = "Object[]";
+   }
+   
+   public void before20(@Arg int arg, @Args Object[] args)
+   {
+      Assert.fail("This advice should never be executed");
+   }
+
+   /* BEFORE21 ADVICE */
+   
+   public void before21(@JoinPoint MethodByMethodInfo joinPointInfo, @Arg int arg)
+   {
+      before21 = "MethodByMethodInfo,int";
+   }
+   
+   public void before21(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Args Object[] args)
+   {
+      before21 = "MethodByMethodInfo,Object[]";
+   }
+   
+   public void before21(@JoinPoint MethodByMethodInfo joinPointInfo)
+   {
+      before21= "MethodByMethodInfo";
+   }
+   
+   public void before21(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+   {
+      before21 = "OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,int";
+   }
+   
+   public void before21(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Arg int arg)
+   {
+      before21 = "OverloadedAdvicePOJO,SuperClass,int";
+   }
+   
+   public void before21(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+   {
+      before21 = "Object,OverloadedAdvicePOJOCaller,int";
+   }
+   
+   public void before21(@Target Object target, @Caller SuperClass caller,
+         @Arg int arg)
+   {
+      before21 = "Object,SuperClass,int";
+   }
+ 
+   public void before21(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Args Object[] args)
+   {
+      before21 = "OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,Object[]";
+   }
+   
+   public void before21(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Args Object[] args)
+   {
+      before21 = "OverloadedAdvicePOJO,SuperClass,Object[]";
+   }
+   
+   public void before21(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Args Object[] args)
+   {
+      before21 = "Object,OverloadedAdvicePOJOCaller,Object[]";
+   }
+   
+   public void before21(@Target Object target, @Caller SuperClass caller,
+         @Args Object[] args)
+   {
+      before21 = "Object,SuperClass,Object[]";
+   }
+   
+   public void before21(@Target OverloadedAdvicePOJO target, @Arg int arg)
+   {
+      before21 = "OverloadedAdvicePOJO,int";
+   }
+   
+   public void before21(@Target Object target, @Arg int arg)
+   {
+      before21 = "Object,int";
+   }
+   
+   public void before21(@Target OverloadedAdvicePOJO target, @Args Object[] args)
+   {
+      before21 = "OverloadedAdvicePOJO,Object[]";
+   }
+   
+   public void before21(@Target Object target, @Args Object[] args)
+   {
+      before21 = "Object,Object[]";
+   }
+   
+   public void before21(@Target OverloadedAdvicePOJO target)
+   {
+      before21 = "OverloadedAdvicePOJO";
+   }
+   
+   public void before21(@Target Object target)
+   {
+      before21 = "Object";
+   }
+   
+   public void before21(@Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+   {
+      before21 = "OverloadedAdvicePOJOCaller,int";
+   }
+   
+   public void before21(@Caller SuperClass caller, @Arg int arg)
+   {
+      before21 = "SuperClass,int";
+   }
+   
+   public void before21(@Caller OverloadedAdvicePOJOCaller caller,
+         @Args Object[] args)
+   {
+      before21 = "OverloadedAdvicePOJOCaller,Object[]";
+   }
+   
+   public void before21(@Caller SuperClass caller, @Args Object[] args)
+   {
+      before21 = "SuperClass,Object[]";
+   }
+   
+   public void before21(@Caller OverloadedAdvicePOJOCaller caller)
+   {
+      before21 = "OverloadedAdvicePOJOCaller";
+   }
+   
+   public void before21(@Caller SuperClass caller)
+   {
+      before21 = "SuperClass";
+   }
+   
+   public void before21(@Arg int arg)
+   {
+      before21 = "int";
+   }
+   
+   public void before21(@Args Object[] args)
+   {
+      before21 = "Object[]";
+   }
+   
+   public void before21(@Arg int arg, @Args Object[] args)
+   {
+      Assert.fail("This advice should never be executed");
+   }
+   
+   /* BEFORE22 ADVICE */
+   
+   public void before22(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Args Object[] args)
+   {
+      before22 = "MethodByMethodInfo,Object[]";
+   }
+   
+   public void before22(@JoinPoint MethodByMethodInfo joinPointInfo)
+   {
+      before22= "MethodByMethodInfo";
+   }
+   
+   public void before22(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+   {
+      before22 = "OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,int";
+   }
+   
+   public void before22(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Arg int arg)
+   {
+      before22 = "OverloadedAdvicePOJO,SuperClass,int";
+   }
+   
+   public void before22(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+   {
+      before22 = "Object,OverloadedAdvicePOJOCaller,int";
+   }
+   
+   public void before22(@Target Object target, @Caller SuperClass caller,
+         @Arg int arg)
+   {
+      before22 = "Object,SuperClass,int";
+   }
+ 
+   public void before22(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Args Object[] args)
+   {
+      before22 = "OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,Object[]";
+   }
+   
+   public void before22(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Args Object[] args)
+   {
+      before22 = "OverloadedAdvicePOJO,SuperClass,Object[]";
+   }
+   
+   public void before22(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Args Object[] args)
+   {
+      before22 = "Object,OverloadedAdvicePOJOCaller,Object[]";
+   }
+   
+   public void before22(@Target Object target, @Caller SuperClass caller,
+         @Args Object[] args)
+   {
+      before22 = "Object,SuperClass,Object[]";
+   }
+   
+   public void before22(@Target OverloadedAdvicePOJO target, @Arg int arg)
+   {
+      before22 = "OverloadedAdvicePOJO,int";
+   }
+   
+   public void before22(@Target Object target, @Arg int arg)
+   {
+      before22 = "Object,int";
+   }
+   
+   public void before22(@Target OverloadedAdvicePOJO target, @Args Object[] args)
+   {
+      before22 = "OverloadedAdvicePOJO,Object[]";
+   }
+   
+   public void before22(@Target Object target, @Args Object[] args)
+   {
+      before22 = "Object,Object[]";
+   }
+   
+   public void before22(@Target OverloadedAdvicePOJO target)
+   {
+      before22 = "OverloadedAdvicePOJO";
+   }
+   
+   public void before22(@Target Object target)
+   {
+      before22 = "Object";
+   }
+   
+   public void before22(@Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+   {
+      before22 = "OverloadedAdvicePOJOCaller,int";
+   }
+   
+   public void before22(@Caller SuperClass caller, @Arg int arg)
+   {
+      before22 = "SuperClass,int";
+   }
+   
+   public void before22(@Caller OverloadedAdvicePOJOCaller caller,
+         @Args Object[] args)
+   {
+      before22 = "OverloadedAdvicePOJOCaller,Object[]";
+   }
+   
+   public void before22(@Caller SuperClass caller, @Args Object[] args)
+   {
+      before22 = "SuperClass,Object[]";
+   }
+   
+   public void before22(@Caller OverloadedAdvicePOJOCaller caller)
+   {
+      before22 = "OverloadedAdvicePOJOCaller";
+   }
+   
+   public void before22(@Caller SuperClass caller)
+   {
+      before22 = "SuperClass";
+   }
+   
+   public void before22(@Arg int arg)
+   {
+      before22 = "int";
+   }
+   
+   public void before22(@Args Object[] args)
+   {
+      before22 = "Object[]";
+   }
+   
+   public void before22(@Arg int arg, @Args Object[] args)
+   {
+      Assert.fail("This advice should never be executed");
+   }
+   
+   /* BEFORE23 ADVICE */
+   
+   public void before23(@JoinPoint MethodByMethodInfo joinPointInfo)
+   {
+      before23= "MethodByMethodInfo";
+   }
+   
+   public void before23(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+   {
+      before23 = "OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,int";
+   }
+   
+   public void before23(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Arg int arg)
+   {
+      before23 = "OverloadedAdvicePOJO,SuperClass,int";
+   }
+   
+   public void before23(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+   {
+      before23 = "Object,OverloadedAdvicePOJOCaller,int";
+   }
+   
+   public void before23(@Target Object target, @Caller SuperClass caller,
+         @Arg int arg)
+   {
+      before23 = "Object,SuperClass,int";
+   }
+ 
+   public void before23(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Args Object[] args)
+   {
+      before23 = "OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,Object[]";
+   }
+   
+   public void before23(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Args Object[] args)
+   {
+      before23 = "OverloadedAdvicePOJO,SuperClass,Object[]";
+   }
+   
+   public void before23(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Args Object[] args)
+   {
+      before23 = "Object,OverloadedAdvicePOJOCaller,Object[]";
+   }
+   
+   public void before23(@Target Object target, @Caller SuperClass caller,
+         @Args Object[] args)
+   {
+      before23 = "Object,SuperClass,Object[]";
+   }
+   
+   public void before23(@Target OverloadedAdvicePOJO target, @Arg int arg)
+   {
+      before23 = "OverloadedAdvicePOJO,int";
+   }
+   
+   public void before23(@Target Object target, @Arg int arg)
+   {
+      before23 = "Object,int";
+   }
+   
+   public void before23(@Target OverloadedAdvicePOJO target, @Args Object[] args)
+   {
+      before23 = "OverloadedAdvicePOJO,Object[]";
+   }
+   
+   public void before23(@Target Object target, @Args Object[] args)
+   {
+      before23 = "Object,Object[]";
+   }
+   
+   public void before23(@Target OverloadedAdvicePOJO target)
+   {
+      before23 = "OverloadedAdvicePOJO";
+   }
+   
+   public void before23(@Target Object target)
+   {
+      before23 = "Object";
+   }
+   
+   public void before23(@Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+   {
+      before23 = "OverloadedAdvicePOJOCaller,int";
+   }
+   
+   public void before23(@Caller SuperClass caller, @Arg int arg)
+   {
+      before23 = "SuperClass,int";
+   }
+   
+   public void before23(@Caller OverloadedAdvicePOJOCaller caller,
+         @Args Object[] args)
+   {
+      before23 = "OverloadedAdvicePOJOCaller,Object[]";
+   }
+   
+   public void before23(@Caller SuperClass caller, @Args Object[] args)
+   {
+      before23 = "SuperClass,Object[]";
+   }
+   
+   public void before23(@Caller OverloadedAdvicePOJOCaller caller)
+   {
+      before23 = "OverloadedAdvicePOJOCaller";
+   }
+   
+   public void before23(@Caller SuperClass caller)
+   {
+      before23 = "SuperClass";
+   }
+   
+   public void before23(@Arg int arg)
+   {
+      before23 = "int";
+   }
+   
+   public void before23(@Args Object[] args)
+   {
+      before23 = "Object[]";
+   }
+   
+   public void before23(@Arg int arg, @Args Object[] args)
+   {
+      Assert.fail("This advice should never be executed");
+   }
+   
+   /* BEFORE24 ADVICE */
+   
+   public void before24(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+   {
+      before24 = "OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,int";
+   }
+   
+   public void before24(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Arg int arg)
+   {
+      before24 = "OverloadedAdvicePOJO,SuperClass,int";
+   }
+   
+   public void before24(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+   {
+      before24 = "Object,OverloadedAdvicePOJOCaller,int";
+   }
+   
+   public void before24(@Target Object target, @Caller SuperClass caller,
+         @Arg int arg)
+   {
+      before24 = "Object,SuperClass,int";
+   }
+ 
+   public void before24(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Args Object[] args)
+   {
+      before24 = "OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,Object[]";
+   }
+   
+   public void before24(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Args Object[] args)
+   {
+      before24 = "OverloadedAdvicePOJO,SuperClass,Object[]";
+   }
+   
+   public void before24(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Args Object[] args)
+   {
+      before24 = "Object,OverloadedAdvicePOJOCaller,Object[]";
+   }
+   
+   public void before24(@Target Object target, @Caller SuperClass caller,
+         @Args Object[] args)
+   {
+      before24 = "Object,SuperClass,Object[]";
+   }
+   
+   public void before24(@Target OverloadedAdvicePOJO target, @Arg int arg)
+   {
+      before24 = "OverloadedAdvicePOJO,int";
+   }
+   
+   public void before24(@Target Object target, @Arg int arg)
+   {
+      before24 = "Object,int";
+   }
+   
+   public void before24(@Target OverloadedAdvicePOJO target, @Args Object[] args)
+   {
+      before24 = "OverloadedAdvicePOJO,Object[]";
+   }
+   
+   public void before24(@Target Object target, @Args Object[] args)
+   {
+      before24 = "Object,Object[]";
+   }
+   
+   public void before24(@Target OverloadedAdvicePOJO target)
+   {
+      before24 = "OverloadedAdvicePOJO";
+   }
+   
+   public void before24(@Target Object target)
+   {
+      before24 = "Object";
+   }
+   
+   public void before24(@Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+   {
+      before24 = "OverloadedAdvicePOJOCaller,int";
+   }
+   
+   public void before24(@Caller SuperClass caller, @Arg int arg)
+   {
+      before24 = "SuperClass,int";
+   }
+   
+   public void before24(@Caller OverloadedAdvicePOJOCaller caller,
+         @Args Object[] args)
+   {
+      before24 = "OverloadedAdvicePOJOCaller,Object[]";
+   }
+   
+   public void before24(@Caller SuperClass caller, @Args Object[] args)
+   {
+      before24 = "SuperClass,Object[]";
+   }
+   
+   public void before24(@Caller OverloadedAdvicePOJOCaller caller)
+   {
+      before24 = "OverloadedAdvicePOJOCaller";
+   }
+   
+   public void before24(@Caller SuperClass caller)
+   {
+      before24 = "SuperClass";
+   }
+   
+   public void before24(@Arg int arg)
+   {
+      before24 = "int";
+   }
+   
+   public void before24(@Args Object[] args)
+   {
+      before24 = "Object[]";
+   }
+   
+   public void before24(@Arg int arg, @Args Object[] args)
+   {
+      Assert.fail("This advice should never be executed");
+   }
+   
+   /* BEFORE25 ADVICE */
+   
+   public void before25(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Arg int arg)
+   {
+      before25 = "OverloadedAdvicePOJO,SuperClass,int";
+   }
+   
+   public void before25(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+   {
+      before25 = "Object,OverloadedAdvicePOJOCaller,int";
+   }
+   
+   public void before25(@Target Object target, @Caller SuperClass caller,
+         @Arg int arg)
+   {
+      before25 = "Object,SuperClass,int";
+   }
+ 
+   public void before25(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Args Object[] args)
+   {
+      before25 = "OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,Object[]";
+   }
+   
+   public void before25(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Args Object[] args)
+   {
+      before25 = "OverloadedAdvicePOJO,SuperClass,Object[]";
+   }
+   
+   public void before25(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Args Object[] args)
+   {
+      before25 = "Object,OverloadedAdvicePOJOCaller,Object[]";
+   }
+   
+   public void before25(@Target Object target, @Caller SuperClass caller,
+         @Args Object[] args)
+   {
+      before25 = "Object,SuperClass,Object[]";
+   }
+   
+   public void before25(@Target OverloadedAdvicePOJO target, @Arg int arg)
+   {
+      before25 = "OverloadedAdvicePOJO,int";
+   }
+   
+   public void before25(@Target Object target, @Arg int arg)
+   {
+      before25 = "Object,int";
+   }
+   
+   public void before25(@Target OverloadedAdvicePOJO target, @Args Object[] args)
+   {
+      before25 = "OverloadedAdvicePOJO,Object[]";
+   }
+   
+   public void before25(@Target Object target, @Args Object[] args)
+   {
+      before25 = "Object,Object[]";
+   }
+   
+   public void before25(@Target OverloadedAdvicePOJO target)
+   {
+      before25 = "OverloadedAdvicePOJO";
+   }
+   
+   public void before25(@Target Object target)
+   {
+      before25 = "Object";
+   }
+   
+   public void before25(@Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+   {
+      before25 = "OverloadedAdvicePOJOCaller,int";
+   }
+   
+   public void before25(@Caller SuperClass caller, @Arg int arg)
+   {
+      before25 = "SuperClass,int";
+   }
+   
+   public void before25(@Caller OverloadedAdvicePOJOCaller caller,
+         @Args Object[] args)
+   {
+      before25 = "OverloadedAdvicePOJOCaller,Object[]";
+   }
+   
+   public void before25(@Caller SuperClass caller, @Args Object[] args)
+   {
+      before25 = "SuperClass,Object[]";
+   }
+   
+   public void before25(@Caller OverloadedAdvicePOJOCaller caller)
+   {
+      before25 = "OverloadedAdvicePOJOCaller";
+   }
+   
+   public void before25(@Caller SuperClass caller)
+   {
+      before25 = "SuperClass";
+   }
+   
+   public void before25(@Arg int arg)
+   {
+      before25 = "int";
+   }
+   
+   public void before25(@Args Object[] args)
+   {
+      before25 = "Object[]";
+   }
+   
+   public void before25(@Arg int arg, @Args Object[] args)
+   {
+      Assert.fail("This advice should never be executed");
+   }
+   
+   /* BEFORE26 ADVICE */
+   
+   public void before26(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+   {
+      before26 = "Object,OverloadedAdvicePOJOCaller,int";
+   }
+   
+   public void before26(@Target Object target, @Caller SuperClass caller,
+         @Arg int arg)
+   {
+      before26 = "Object,SuperClass,int";
+   }
+ 
+   public void before26(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Args Object[] args)
+   {
+      before26 = "OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,Object[]";
+   }
+   
+   public void before26(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Args Object[] args)
+   {
+      before26 = "OverloadedAdvicePOJO,SuperClass,Object[]";
+   }
+   
+   public void before26(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Args Object[] args)
+   {
+      before26 = "Object,OverloadedAdvicePOJOCaller,Object[]";
+   }
+   
+   public void before26(@Target Object target, @Caller SuperClass caller,
+         @Args Object[] args)
+   {
+      before26 = "Object,SuperClass,Object[]";
+   }
+   
+   public void before26(@Target OverloadedAdvicePOJO target, @Arg int arg)
+   {
+      before26 = "OverloadedAdvicePOJO,int";
+   }
+   
+   public void before26(@Target Object target, @Arg int arg)
+   {
+      before26 = "Object,int";
+   }
+   
+   public void before26(@Target OverloadedAdvicePOJO target, @Args Object[] args)
+   {
+      before26 = "OverloadedAdvicePOJO,Object[]";
+   }
+   
+   public void before26(@Target Object target, @Args Object[] args)
+   {
+      before26 = "Object,Object[]";
+   }
+   
+   public void before26(@Target OverloadedAdvicePOJO target)
+   {
+      before26 = "OverloadedAdvicePOJO";
+   }
+   
+   public void before26(@Target Object target)
+   {
+      before26 = "Object";
+   }
+   
+   public void before26(@Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+   {
+      before26 = "OverloadedAdvicePOJOCaller,int";
+   }
+   
+   public void before26(@Caller SuperClass caller, @Arg int arg)
+   {
+      before26 = "SuperClass,int";
+   }
+   
+   public void before26(@Caller OverloadedAdvicePOJOCaller caller,
+         @Args Object[] args)
+   {
+      before26 = "OverloadedAdvicePOJOCaller,Object[]";
+   }
+   
+   public void before26(@Caller SuperClass caller, @Args Object[] args)
+   {
+      before26 = "SuperClass,Object[]";
+   }
+   
+   public void before26(@Caller OverloadedAdvicePOJOCaller caller)
+   {
+      before26 = "OverloadedAdvicePOJOCaller";
+   }
+   
+   public void before26(@Caller SuperClass caller)
+   {
+      before26 = "SuperClass";
+   }
+   
+   public void before26(@Arg int arg)
+   {
+      before26 = "int";
+   }
+   
+   public void before26(@Args Object[] args)
+   {
+      before26 = "Object[]";
+   }
+   
+   public void before26(@Arg int arg, @Args Object[] args)
+   {
+      Assert.fail("This advice should never be executed");
+   }
+   
+   /* BEFORE27 ADVICE */
+   
+   public void before27(@Target Object target, @Caller SuperClass caller,
+         @Arg int arg)
+   {
+      before27 = "Object,SuperClass,int";
+   }
+ 
+   public void before27(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Args Object[] args)
+   {
+      before27 = "OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,Object[]";
+   }
+   
+   public void before27(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Args Object[] args)
+   {
+      before27 = "OverloadedAdvicePOJO,SuperClass,Object[]";
+   }
+   
+   public void before27(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Args Object[] args)
+   {
+      before27 = "Object,OverloadedAdvicePOJOCaller,Object[]";
+   }
+   
+   public void before27(@Target Object target, @Caller SuperClass caller,
+         @Args Object[] args)
+   {
+      before27 = "Object,SuperClass,Object[]";
+   }
+   
+   public void before27(@Target OverloadedAdvicePOJO target, @Arg int arg)
+   {
+      before27 = "OverloadedAdvicePOJO,int";
+   }
+   
+   public void before27(@Target Object target, @Arg int arg)
+   {
+      before27 = "Object,int";
+   }
+   
+   public void before27(@Target OverloadedAdvicePOJO target, @Args Object[] args)
+   {
+      before27 = "OverloadedAdvicePOJO,Object[]";
+   }
+   
+   public void before27(@Target Object target, @Args Object[] args)
+   {
+      before27 = "Object,Object[]";
+   }
+   
+   public void before27(@Target OverloadedAdvicePOJO target)
+   {
+      before27 = "OverloadedAdvicePOJO";
+   }
+   
+   public void before27(@Target Object target)
+   {
+      before27 = "Object";
+   }
+   
+   public void before27(@Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+   {
+      before27 = "OverloadedAdvicePOJOCaller,int";
+   }
+   
+   public void before27(@Caller SuperClass caller, @Arg int arg)
+   {
+      before27 = "SuperClass,int";
+   }
+   
+   public void before27(@Caller OverloadedAdvicePOJOCaller caller,
+         @Args Object[] args)
+   {
+      before27 = "OverloadedAdvicePOJOCaller,Object[]";
+   }
+   
+   public void before27(@Caller SuperClass caller, @Args Object[] args)
+   {
+      before27 = "SuperClass,Object[]";
+   }
+   
+   public void before27(@Caller OverloadedAdvicePOJOCaller caller)
+   {
+      before27 = "OverloadedAdvicePOJOCaller";
+   }
+   
+   public void before27(@Caller SuperClass caller)
+   {
+      before27 = "SuperClass";
+   }
+   
+   public void before27(@Arg int arg)
+   {
+      before27 = "int";
+   }
+   
+   public void before27(@Args Object[] args)
+   {
+      before27 = "Object[]";
+   }
+   
+   public void before27(@Arg int arg, @Args Object[] args)
+   {
+      Assert.fail("This advice should never be executed");
+   }
+   
+   /* BEFORE28 ADVICE */
+   
+   public void before28(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Args Object[] args)
+   {
+      before28 = "OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,Object[]";
+   }
+   
+   public void before28(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Args Object[] args)
+   {
+      before28 = "OverloadedAdvicePOJO,SuperClass,Object[]";
+   }
+   
+   public void before28(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Args Object[] args)
+   {
+      before28 = "Object,OverloadedAdvicePOJOCaller,Object[]";
+   }
+   
+   public void before28(@Target Object target, @Caller SuperClass caller,
+         @Args Object[] args)
+   {
+      before28 = "Object,SuperClass,Object[]";
+   }
+   
+   public void before28(@Target OverloadedAdvicePOJO target, @Arg int arg)
+   {
+      before28 = "OverloadedAdvicePOJO,int";
+   }
+   
+   public void before28(@Target Object target, @Arg int arg)
+   {
+      before28 = "Object,int";
+   }
+   
+   public void before28(@Target OverloadedAdvicePOJO target, @Args Object[] args)
+   {
+      before28 = "OverloadedAdvicePOJO,Object[]";
+   }
+   
+   public void before28(@Target Object target, @Args Object[] args)
+   {
+      before28 = "Object,Object[]";
+   }
+   
+   public void before28(@Target OverloadedAdvicePOJO target)
+   {
+      before28 = "OverloadedAdvicePOJO";
+   }
+   
+   public void before28(@Target Object target)
+   {
+      before28 = "Object";
+   }
+   
+   public void before28(@Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+   {
+      before28 = "OverloadedAdvicePOJOCaller,int";
+   }
+   
+   public void before28(@Caller SuperClass caller, @Arg int arg)
+   {
+      before28 = "SuperClass,int";
+   }
+   
+   public void before28(@Caller OverloadedAdvicePOJOCaller caller,
+         @Args Object[] args)
+   {
+      before28 = "OverloadedAdvicePOJOCaller,Object[]";
+   }
+   
+   public void before28(@Caller SuperClass caller, @Args Object[] args)
+   {
+      before28 = "SuperClass,Object[]";
+   }
+   
+   public void before28(@Caller OverloadedAdvicePOJOCaller caller)
+   {
+      before28 = "OverloadedAdvicePOJOCaller";
+   }
+   
+   public void before28(@Caller SuperClass caller)
+   {
+      before28 = "SuperClass";
+   }
+   
+   public void before28(@Arg int arg)
+   {
+      before28 = "int";
+   }
+   
+   public void before28(@Args Object[] args)
+   {
+      before28 = "Object[]";
+   }
+   
+   public void before28(@Arg int arg, @Args Object[] args)
+   {
+      Assert.fail("This advice should never be executed");
+   }
+   
+   /* BEFORE29 ADVICE */
+   
+   public void before29(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Args Object[] args)
+   {
+      before29 = "OverloadedAdvicePOJO,SuperClass,Object[]";
+   }
+   
+   public void before29(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Args Object[] args)
+   {
+      before29 = "Object,OverloadedAdvicePOJOCaller,Object[]";
+   }
+   
+   public void before29(@Target Object target, @Caller SuperClass caller,
+         @Args Object[] args)
+   {
+      before29 = "Object,SuperClass,Object[]";
+   }
+   
+   public void before29(@Target OverloadedAdvicePOJO target, @Arg int arg)
+   {
+      before29 = "OverloadedAdvicePOJO,int";
+   }
+   
+   public void before29(@Target Object target, @Arg int arg)
+   {
+      before29 = "Object,int";
+   }
+   
+   public void before29(@Target OverloadedAdvicePOJO target, @Args Object[] args)
+   {
+      before29 = "OverloadedAdvicePOJO,Object[]";
+   }
+   
+   public void before29(@Target Object target, @Args Object[] args)
+   {
+      before29 = "Object,Object[]";
+   }
+   
+   public void before29(@Target OverloadedAdvicePOJO target)
+   {
+      before29 = "OverloadedAdvicePOJO";
+   }
+   
+   public void before29(@Target Object target)
+   {
+      before29 = "Object";
+   }
+   
+   public void before29(@Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+   {
+      before29 = "OverloadedAdvicePOJOCaller,int";
+   }
+   
+   public void before29(@Caller SuperClass caller, @Arg int arg)
+   {
+      before29 = "SuperClass,int";
+   }
+   
+   public void before29(@Caller OverloadedAdvicePOJOCaller caller,
+         @Args Object[] args)
+   {
+      before29 = "OverloadedAdvicePOJOCaller,Object[]";
+   }
+   
+   public void before29(@Caller SuperClass caller, @Args Object[] args)
+   {
+      before29 = "SuperClass,Object[]";
+   }
+   
+   public void before29(@Caller OverloadedAdvicePOJOCaller caller)
+   {
+      before29 = "OverloadedAdvicePOJOCaller";
+   }
+   
+   public void before29(@Caller SuperClass caller)
+   {
+      before29 = "SuperClass";
+   }
+   
+   public void before29(@Arg int arg)
+   {
+      before29 = "int";
+   }
+   
+   public void before29(@Args Object[] args)
+   {
+      before29 = "Object[]";
+   }
+   
+   public void before29(@Arg int arg, @Args Object[] args)
+   {
+      Assert.fail("This advice should never be executed");
+   }
+   
+   /* BEFORE30 ADVICE */
+   
+   public void before30(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Args Object[] args)
+   {
+      before30 = "Object,OverloadedAdvicePOJOCaller,Object[]";
+   }
+   
+   public void before30(@Target Object target, @Caller SuperClass caller,
+         @Args Object[] args)
+   {
+      before30 = "Object,SuperClass,Object[]";
+   }
+   
+   public void before30(@Target OverloadedAdvicePOJO target, @Arg int arg)
+   {
+      before30 = "OverloadedAdvicePOJO,int";
+   }
+   
+   public void before30(@Target Object target, @Arg int arg)
+   {
+      before30 = "Object,int";
+   }
+   
+   public void before30(@Target OverloadedAdvicePOJO target, @Args Object[] args)
+   {
+      before30 = "OverloadedAdvicePOJO,Object[]";
+   }
+   
+   public void before30(@Target Object target, @Args Object[] args)
+   {
+      before30 = "Object,Object[]";
+   }
+   
+   public void before30(@Target OverloadedAdvicePOJO target)
+   {
+      before30 = "OverloadedAdvicePOJO";
+   }
+   
+   public void before30(@Target Object target)
+   {
+      before30 = "Object";
+   }
+   
+   public void before30(@Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+   {
+      before30 = "OverloadedAdvicePOJOCaller,int";
+   }
+   
+   public void before30(@Caller SuperClass caller, @Arg int arg)
+   {
+      before30 = "SuperClass,int";
+   }
+   
+   public void before30(@Caller OverloadedAdvicePOJOCaller caller,
+         @Args Object[] args)
+   {
+      before30 = "OverloadedAdvicePOJOCaller,Object[]";
+   }
+   
+   public void before30(@Caller SuperClass caller, @Args Object[] args)
+   {
+      before30 = "SuperClass,Object[]";
+   }
+   
+   public void before30(@Caller OverloadedAdvicePOJOCaller caller)
+   {
+      before30 = "OverloadedAdvicePOJOCaller";
+   }
+   
+   public void before30(@Caller SuperClass caller)
+   {
+      before30 = "SuperClass";
+   }
+   
+   public void before30(@Arg int arg)
+   {
+      before30 = "int";
+   }
+   
+   public void before30(@Args Object[] args)
+   {
+      before30 = "Object[]";
+   }
+   
+   public void before30(@Arg int arg, @Args Object[] args)
+   {
+      Assert.fail("This advice should never be executed");
+   }
+   
+   /* BEFORE31 ADVICE */
+   
+   public void before31(@Target Object target, @Caller SuperClass caller,
+         @Args Object[] args)
+   {
+      before31 = "Object,SuperClass,Object[]";
+   }
+   
+   public void before31(@Target OverloadedAdvicePOJO target, @Arg int arg)
+   {
+      before31 = "OverloadedAdvicePOJO,int";
+   }
+   
+   public void before31(@Target Object target, @Arg int arg)
+   {
+      before31 = "Object,int";
+   }
+   
+   public void before31(@Target OverloadedAdvicePOJO target, @Args Object[] args)
+   {
+      before31 = "OverloadedAdvicePOJO,Object[]";
+   }
+   
+   public void before31(@Target Object target, @Args Object[] args)
+   {
+      before31 = "Object,Object[]";
+   }
+   
+   public void before31(@Target OverloadedAdvicePOJO target)
+   {
+      before31 = "OverloadedAdvicePOJO";
+   }
+   
+   public void before31(@Target Object target)
+   {
+      before31 = "Object";
+   }
+   
+   public void before31(@Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+   {
+      before31 = "OverloadedAdvicePOJOCaller,int";
+   }
+   
+   public void before31(@Caller SuperClass caller, @Arg int arg)
+   {
+      before31 = "SuperClass,int";
+   }
+   
+   public void before31(@Caller OverloadedAdvicePOJOCaller caller,
+         @Args Object[] args)
+   {
+      before31 = "OverloadedAdvicePOJOCaller,Object[]";
+   }
+   
+   public void before31(@Caller SuperClass caller, @Args Object[] args)
+   {
+      before31 = "SuperClass,Object[]";
+   }
+   
+   public void before31(@Caller OverloadedAdvicePOJOCaller caller)
+   {
+      before31 = "OverloadedAdvicePOJOCaller";
+   }
+   
+   public void before31(@Caller SuperClass caller)
+   {
+      before31 = "SuperClass";
+   }
+   
+   public void before31(@Arg int arg)
+   {
+      before31 = "int";
+   }
+   
+   public void before31(@Args Object[] args)
+   {
+      before31 = "Object[]";
+   }
+   
+   public void before31(@Arg int arg, @Args Object[] args)
+   {
+      Assert.fail("This advice should never be executed");
+   }
+   
+   /* BEFORE32 ADVICE */
+   
+   public void before32(@Target OverloadedAdvicePOJO target, @Arg int arg)
+   {
+      before32 = "OverloadedAdvicePOJO,int";
+   }
+   
+   public void before32(@Target Object target, @Arg int arg)
+   {
+      before32 = "Object,int";
+   }
+   
+   public void before32(@Target OverloadedAdvicePOJO target, @Args Object[] args)
+   {
+      before32 = "OverloadedAdvicePOJO,Object[]";
+   }
+   
+   public void before32(@Target Object target, @Args Object[] args)
+   {
+      before32 = "Object,Object[]";
+   }
+   
+   public void before32(@Target OverloadedAdvicePOJO target)
+   {
+      before32 = "OverloadedAdvicePOJO";
+   }
+   
+   public void before32(@Target Object target)
+   {
+      before32 = "Object";
+   }
+   
+   public void before32(@Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+   {
+      before32 = "OverloadedAdvicePOJOCaller,int";
+   }
+   
+   public void before32(@Caller SuperClass caller, @Arg int arg)
+   {
+      before32 = "SuperClass,int";
+   }
+   
+   public void before32(@Caller OverloadedAdvicePOJOCaller caller,
+         @Args Object[] args)
+   {
+      before32 = "OverloadedAdvicePOJOCaller,Object[]";
+   }
+   
+   public void before32(@Caller SuperClass caller, @Args Object[] args)
+   {
+      before32 = "SuperClass,Object[]";
+   }
+   
+   public void before32(@Caller OverloadedAdvicePOJOCaller caller)
+   {
+      before32 = "OverloadedAdvicePOJOCaller";
+   }
+   
+   public void before32(@Caller SuperClass caller)
+   {
+      before32 = "SuperClass";
+   }
+   
+   public void before32(@Arg int arg)
+   {
+      before32 = "int";
+   }
+   
+   public void before32(@Args Object[] args)
+   {
+      before32 = "Object[]";
+   }
+   
+   public void before32(@Arg int arg, @Args Object[] args)
+   {
+      Assert.fail("This advice should never be executed");
+   }
+   
+   /* BEFORE33 ADVICE */
+   
+   public void before33(@Target Object target, @Arg int arg)
+   {
+      before33 = "Object,int";
+   }
+   
+   public void before33(@Target OverloadedAdvicePOJO target, @Args Object[] args)
+   {
+      before33 = "OverloadedAdvicePOJO,Object[]";
+   }
+   
+   public void before33(@Target Object target, @Args Object[] args)
+   {
+      before33 = "Object,Object[]";
+   }
+   
+   public void before33(@Target OverloadedAdvicePOJO target)
+   {
+      before33 = "OverloadedAdvicePOJO";
+   }
+   
+   public void before33(@Target Object target)
+   {
+      before33 = "Object";
+   }
+   
+   public void before33(@Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+   {
+      before33 = "OverloadedAdvicePOJOCaller,int";
+   }
+   
+   public void before33(@Caller SuperClass caller, @Arg int arg)
+   {
+      before33 = "SuperClass,int";
+   }
+   
+   public void before33(@Caller OverloadedAdvicePOJOCaller caller,
+         @Args Object[] args)
+   {
+      before33 = "OverloadedAdvicePOJOCaller,Object[]";
+   }
+   
+   public void before33(@Caller SuperClass caller, @Args Object[] args)
+   {
+      before33 = "SuperClass,Object[]";
+   }
+   
+   public void before33(@Caller OverloadedAdvicePOJOCaller caller)
+   {
+      before33 = "OverloadedAdvicePOJOCaller";
+   }
+   
+   public void before33(@Caller SuperClass caller)
+   {
+      before33 = "SuperClass";
+   }
+   
+   public void before33(@Arg int arg)
+   {
+      before33 = "int";
+   }
+   
+   public void before33(@Args Object[] args)
+   {
+      before33 = "Object[]";
+   }
+   
+   public void before33(@Arg int arg, @Args Object[] args)
+   {
+      Assert.fail("This advice should never be executed");
+   }
+   
+   /* BEFORE34 ADVICE */
+   
+   public void before34(@Target OverloadedAdvicePOJO target, @Args Object[] args)
+   {
+      before34 = "OverloadedAdvicePOJO,Object[]";
+   }
+   
+   public void before34(@Target Object target, @Args Object[] args)
+   {
+      before34 = "Object,Object[]";
+   }
+   
+   public void before34(@Target OverloadedAdvicePOJO target)
+   {
+      before34 = "OverloadedAdvicePOJO";
+   }
+   
+   public void before34(@Target Object target)
+   {
+      before34 = "Object";
+   }
+   
+   public void before34(@Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+   {
+      before34 = "OverloadedAdvicePOJOCaller,int";
+   }
+   
+   public void before34(@Caller SuperClass caller, @Arg int arg)
+   {
+      before34 = "SuperClass,int";
+   }
+   
+   public void before34(@Caller OverloadedAdvicePOJOCaller caller,
+         @Args Object[] args)
+   {
+      before34 = "OverloadedAdvicePOJOCaller,Object[]";
+   }
+   
+   public void before34(@Caller SuperClass caller, @Args Object[] args)
+   {
+      before34 = "SuperClass,Object[]";
+   }
+   
+   public void before34(@Caller OverloadedAdvicePOJOCaller caller)
+   {
+      before34 = "OverloadedAdvicePOJOCaller";
+   }
+   
+   public void before34(@Caller SuperClass caller)
+   {
+      before34 = "SuperClass";
+   }
+   
+   public void before34(@Arg int arg)
+   {
+      before34 = "int";
+   }
+   
+   public void before34(@Args Object[] args)
+   {
+      before34 = "Object[]";
+   }
+   
+   public void before34(@Arg int arg, @Args Object[] args)
+   {
+      Assert.fail("This advice should never be executed");
+   }
+   
+   /* BEFORE35 ADVICE */
+   
+   public void before35(@Target Object target, @Args Object[] args)
+   {
+      before35 = "Object,Object[]";
+   }
+   
+   public void before35(@Target OverloadedAdvicePOJO target)
+   {
+      before35 = "OverloadedAdvicePOJO";
+   }
+   
+   public void before35(@Target Object target)
+   {
+      before35 = "Object";
+   }
+   
+   public void before35(@Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+   {
+      before35 = "OverloadedAdvicePOJOCaller,int";
+   }
+   
+   public void before35(@Caller SuperClass caller, @Arg int arg)
+   {
+      before35 = "SuperClass,int";
+   }
+   
+   public void before35(@Caller OverloadedAdvicePOJOCaller caller,
+         @Args Object[] args)
+   {
+      before35 = "OverloadedAdvicePOJOCaller,Object[]";
+   }
+   
+   public void before35(@Caller SuperClass caller, @Args Object[] args)
+   {
+      before35 = "SuperClass,Object[]";
+   }
+   
+   public void before35(@Caller OverloadedAdvicePOJOCaller caller)
+   {
+      before35 = "OverloadedAdvicePOJOCaller";
+   }
+   
+   public void before35(@Caller SuperClass caller)
+   {
+      before35 = "SuperClass";
+   }
+   
+   public void before35(@Arg int arg)
+   {
+      before35 = "int";
+   }
+   
+   public void before35(@Args Object[] args)
+   {
+      before35 = "Object[]";
+   }
+   
+   public void before35(@Arg int arg, @Args Object[] args)
+   {
+      Assert.fail("This advice should never be executed");
+   }
+   
+   /* BEFORE36 ADVICE */
+   
+   public void before36(@Target OverloadedAdvicePOJO target)
+   {
+      before36 = "OverloadedAdvicePOJO";
+   }
+   
+   public void before36(@Target Object target)
+   {
+      before36 = "Object";
+   }
+   
+   public void before36(@Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+   {
+      before36 = "OverloadedAdvicePOJOCaller,int";
+   }
+   
+   public void before36(@Caller SuperClass caller, @Arg int arg)
+   {
+      before36 = "SuperClass,int";
+   }
+   
+   public void before36(@Caller OverloadedAdvicePOJOCaller caller,
+         @Args Object[] args)
+   {
+      before36 = "OverloadedAdvicePOJOCaller,Object[]";
+   }
+   
+   public void before36(@Caller SuperClass caller, @Args Object[] args)
+   {
+      before36 = "SuperClass,Object[]";
+   }
+   
+   public void before36(@Caller OverloadedAdvicePOJOCaller caller)
+   {
+      before36 = "OverloadedAdvicePOJOCaller";
+   }
+   
+   public void before36(@Caller SuperClass caller)
+   {
+      before36 = "SuperClass";
+   }
+   
+   public void before36(@Arg int arg)
+   {
+      before36 = "int";
+   }
+   
+   public void before36(@Args Object[] args)
+   {
+      before36 = "Object[]";
+   }
+   
+   public void before36(@Arg int arg, @Args Object[] args)
+   {
+      Assert.fail("This advice should never be executed");
+   }
+   
+   /* BEFORE37 ADVICE */
+   
+   public void before37(@Target Object target)
+   {
+      before37 = "Object";
+   }
+   
+   public void before37(@Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+   {
+      before37 = "OverloadedAdvicePOJOCaller,int";
+   }
+   
+   public void before37(@Caller SuperClass caller, @Arg int arg)
+   {
+      before37 = "SuperClass,int";
+   }
+   
+   public void before37(@Caller OverloadedAdvicePOJOCaller caller,
+         @Args Object[] args)
+   {
+      before37 = "OverloadedAdvicePOJOCaller,Object[]";
+   }
+   
+   public void before37(@Caller SuperClass caller, @Args Object[] args)
+   {
+      before37 = "SuperClass,Object[]";
+   }
+   
+   public void before37(@Caller OverloadedAdvicePOJOCaller caller)
+   {
+      before37 = "OverloadedAdvicePOJOCaller";
+   }
+   
+   public void before37(@Caller SuperClass caller)
+   {
+      before37 = "SuperClass";
+   }
+   
+   public void before37(@Arg int arg)
+   {
+      before37 = "int";
+   }
+   
+   public void before37(@Args Object[] args)
+   {
+      before37 = "Object[]";
+   }
+   
+   public void before37(@Arg int arg, @Args Object[] args)
+   {
+      Assert.fail("This advice should never be executed");
+   }
+   
+   /* BEFORE38 ADVICE */
+   
+   public void before38(@Caller OverloadedAdvicePOJOCaller caller, @Arg int arg)
+   {
+      before38 = "OverloadedAdvicePOJOCaller,int";
+   }
+   
+   public void before38(@Caller SuperClass caller, @Arg int arg)
+   {
+      before38 = "SuperClass,int";
+   }
+   
+   public void before38(@Caller OverloadedAdvicePOJOCaller caller,
+         @Args Object[] args)
+   {
+      before38 = "OverloadedAdvicePOJOCaller,Object[]";
+   }
+   
+   public void before38(@Caller SuperClass caller, @Args Object[] args)
+   {
+      before38 = "SuperClass,Object[]";
+   }
+   
+   public void before38(@Caller OverloadedAdvicePOJOCaller caller)
+   {
+      before38 = "OverloadedAdvicePOJOCaller";
+   }
+   
+   public void before38(@Caller SuperClass caller)
+   {
+      before38 = "SuperClass";
+   }
+   
+   public void before38(@Arg int arg)
+   {
+      before38 = "int";
+   }
+   
+   public void before38(@Args Object[] args)
+   {
+      before38 = "Object[]";
+   }
+   
+   public void before38(@Arg int arg, @Args Object[] args)
+   {
+      Assert.fail("This advice should never be executed");
+   }
+   
+   /* BEFORE39 ADVICE */
+   
+   public void before39(@Caller SuperClass caller, @Arg int arg)
+   {
+      before39 = "SuperClass,int";
+   }
+   
+   public void before39(@Caller OverloadedAdvicePOJOCaller caller,
+         @Args Object[] args)
+   {
+      before39 = "OverloadedAdvicePOJOCaller,Object[]";
+   }
+   
+   public void before39(@Caller SuperClass caller, @Args Object[] args)
+   {
+      before39 = "SuperClass,Object[]";
+   }
+   
+   public void before39(@Caller OverloadedAdvicePOJOCaller caller)
+   {
+      before39 = "OverloadedAdvicePOJOCaller";
+   }
+   
+   public void before39(@Caller SuperClass caller)
+   {
+      before39 = "SuperClass";
+   }
+   
+   public void before39(@Arg int arg)
+   {
+      before39 = "int";
+   }
+   
+   public void before39(@Args Object[] args)
+   {
+      before39 = "Object[]";
+   }
+   
+   public void before39(@Arg int arg, @Args Object[] args)
+   {
+      Assert.fail("This advice should never be executed");
+   }
+   
+   /* BEFORE40 ADVICE */
+   
+   public void before40(@Caller OverloadedAdvicePOJOCaller caller,
+         @Args Object[] args)
+   {
+      before40 = "OverloadedAdvicePOJOCaller,Object[]";
+   }
+   
+   public void before40(@Caller SuperClass caller, @Args Object[] args)
+   {
+      before40 = "SuperClass,Object[]";
+   }
+   
+   public void before40(@Caller OverloadedAdvicePOJOCaller caller)
+   {
+      before40 = "OverloadedAdvicePOJOCaller";
+   }
+   
+   public void before40(@Caller SuperClass caller)
+   {
+      before40 = "SuperClass";
+   }
+   
+   public void before40(@Arg int arg)
+   {
+      before40 = "int";
+   }
+   
+   public void before40(@Args Object[] args)
+   {
+      before40 = "Object[]";
+   }
+   
+   public void before40(@Arg int arg, @Args Object[] args)
+   {
+      Assert.fail("This advice should never be executed");
+   }
+   
+   /* BEFORE41 ADVICE */
+   
+   public void before41(@Caller SuperClass caller, @Args Object[] args)
+   {
+      before41 = "SuperClass,Object[]";
+   }
+   
+   public void before41(@Caller OverloadedAdvicePOJOCaller caller)
+   {
+      before41 = "OverloadedAdvicePOJOCaller";
+   }
+   
+   public void before41(@Caller SuperClass caller)
+   {
+      before41 = "SuperClass";
+   }
+   
+   public void before41(@Arg int arg)
+   {
+      before41 = "int";
+   }
+   
+   public void before41(@Args Object[] args)
+   {
+      before41 = "Object[]";
+   }
+   
+   public void before41(@Arg int arg, @Args Object[] args)
+   {
+      Assert.fail("This advice should never be executed");
+   }
+   
+   /* BEFORE42 ADVICE */
+   
+   public void before42(@Caller OverloadedAdvicePOJOCaller caller)
+   {
+      before42 = "OverloadedAdvicePOJOCaller";
+   }
+   
+   public void before42(@Caller SuperClass caller)
+   {
+      before42 = "SuperClass";
+   }
+   
+   public void before42(@Arg int arg)
+   {
+      before42 = "int";
+   }
+   
+   public void before42(@Args Object[] args)
+   {
+      before42 = "Object[]";
+   }
+   
+   public void before42(@Arg int arg, @Args Object[] args)
+   {
+      Assert.fail("This advice should never be executed");
+   }
+   
+   /* BEFORE43 ADVICE */
+   
+   public void before43(@Caller SuperClass caller)
+   {
+      before43 = "SuperClass";
+   }
+   
+   public void before43(@Arg int arg)
+   {
+      before43 = "int";
+   }
+   
+   public void before43(@Args Object[] args)
+   {
+      before43 = "Object[]";
+   }
+   
+   public void before43(@Arg int arg, @Args Object[] args)
+   {
+      Assert.fail("This advice should never be executed");
+   }
+   
+   /* BEFORE44 ADVICE */
+   
+   public void before44(@Arg int arg)
+   {
+      before44 = "int";
+   }
+   
+   public void before44(@Args Object[] args)
+   {
+      before44 = "Object[]";
+   }
+   
+   public void before44(@Arg int arg, @Args Object[] args)
+   {
+      Assert.fail("This advice should never be executed");
+   }
+   
+   /* BEFORE45 ADVICE */
+   
+   public void before45(@Args Object[] args)
+   {
+      before45 = "Object[]";
+   }
+   
+   public void before45(@Arg int arg, @Args Object[] args)
+   {
+      Assert.fail("This advice should never be executed");
+   }
+}
\ No newline at end of file

Added: projects/aop/trunk/aop/src/test/org/jboss/test/aop/beforeafterArgs/OverloadedThrowingCallAspect.java
===================================================================
--- projects/aop/trunk/aop/src/test/org/jboss/test/aop/beforeafterArgs/OverloadedThrowingCallAspect.java	                        (rev 0)
+++ projects/aop/trunk/aop/src/test/org/jboss/test/aop/beforeafterArgs/OverloadedThrowingCallAspect.java	2007-03-03 04:31:17 UTC (rev 61066)
@@ -0,0 +1,4649 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License aThrowable with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.test.aop.beforeafterArgs;
+
+import junit.framework.Assert;
+
+import org.jboss.aop.MethodByMethodInfo;
+import org.jboss.aop.advice.annotation.Arg;
+import org.jboss.aop.advice.annotation.Args;
+import org.jboss.aop.advice.annotation.Caller;
+import org.jboss.aop.advice.annotation.JoinPoint;
+import org.jboss.aop.advice.annotation.Target;
+import org.jboss.aop.advice.annotation.Thrown;
+
+/**
+ * Aspect used on overloaded throwing advice tests (for Call and Target tests
+ * only).
+ *
+ * @author <a href="flavia.rainone at jboss.com">Flavia Rainone</a>
+ */
+public class OverloadedThrowingCallAspect
+{
+
+   static String throwing1;
+   static String throwing2;
+   static String throwing3;
+   static String throwing4;
+   static String throwing5;
+   static String throwing6;
+   static String throwing7;
+   static String throwing8;
+   static String throwing9;
+   static String throwing10;
+   static String throwing11;
+   static String throwing12;
+   static String throwing13;
+   static String throwing14;
+   static String throwing15;
+   static String throwing16;
+   static String throwing17;
+   static String throwing18;
+   static String throwing19;
+   static String throwing20;
+   static String throwing21;
+   static String throwing22;
+   static String throwing23;
+   static String throwing24;
+   static String throwing25;
+   static String throwing26;
+   static String throwing27;
+   static String throwing28;
+   static String throwing29;
+   static String throwing30;
+   static String throwing31;
+   static String throwing32;
+   static String throwing33;
+   static String throwing34;
+   static String throwing35;
+   static String throwing36;
+   static String throwing37;
+   static String throwing38;
+   static String throwing39;
+   static String throwing40;
+   static String throwing41;
+   static String throwing42;
+   static String throwing43;
+   static String throwing44;
+   static String throwing45;
+   static String throwing46;
+   static String throwing47;
+   static String throwing48;
+   static String throwing49;
+   static String throwing50;
+   
+   public static void clear()
+   {
+      throwing1 = null;
+      throwing2 = null;
+      throwing3 = null;
+      throwing4 = null;
+      throwing5 = null;
+      throwing6 = null;
+      throwing7 = null;
+      throwing8 = null;
+      throwing9 = null;
+      throwing10 = null;
+      throwing11 = null;
+      throwing12 = null;
+      throwing13 = null;
+      throwing14 = null;
+      throwing15 = null;
+      throwing16 = null;
+      throwing17 = null;
+      throwing18 = null;
+      throwing19 = null;
+      throwing20 = null;
+      throwing21 = null;
+      throwing22 = null;
+      throwing23 = null;
+      throwing24 = null;
+      throwing25 = null;
+      throwing26 = null;
+      throwing27 = null;
+      throwing28 = null;
+      throwing29 = null;
+      throwing30 = null;
+      throwing31 = null;
+      throwing32 = null;
+      throwing33 = null;
+      throwing34 = null;
+      throwing35 = null;
+      throwing36 = null;
+      throwing37 = null;
+      throwing38 = null;
+      throwing39 = null;
+      throwing40 = null;
+      throwing41 = null;
+      throwing42 = null;
+      throwing43 = null;
+      throwing44 = null;
+      throwing45 = null;
+      throwing46 = null;
+      throwing47 = null;
+      throwing48 = null;
+      throwing49 = null;
+      throwing50 = null;
+   }
+
+   /* THROWING1 ADVICE */
+   
+   public void throwing1(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Thrown Throwable thrown,
+         @Arg boolean arg)
+   {
+      throwing1 = "MethodByMethodInfo,OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,Throwable,boolean";
+   }
+   
+   public void throwing1(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Thrown Throwable thrown,
+         @Args Object[] args)
+   {
+      throwing1 = "MethodByMethodInfo,OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,Throwable,Object[]";
+   }
+   
+   public void throwing1(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Thrown Throwable thrown)
+   {
+      throwing1 = "MethodByMethodInfo,OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,Throwable";
+   }
+   
+   public void throwing1(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Target OverloadedAdvicePOJO target, @Thrown Throwable thrown,
+         @Arg boolean arg)
+   {
+      throwing1 = "MethodByMethodInfo,OverloadedAdvicePOJO,Throwable,boolean";
+   }
+   
+   public void throwing1(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Target OverloadedAdvicePOJO target, @Thrown Throwable thrown,
+         @Args Object[] args)
+   {
+      throwing1 = "MethodByMethodInfo,OverloadedAdvicePOJO,Throwable,Object[]";
+   }
+   
+   public void throwing1(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Target OverloadedAdvicePOJO target, @Thrown Throwable thrown)
+   {
+      throwing1 = "MethodByMethodInfo,OverloadedAdvicePOJO,Throwable";
+   }
+   
+   public void throwing1(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Caller OverloadedAdvicePOJOCaller caller, @Thrown Throwable thrown,
+         @Arg boolean arg)
+   {
+      throwing1 = "MethodByMethodInfo,OverloadedAdvicePOJOCaller,Throwable,boolean";
+   }
+   
+   public void throwing1(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Caller OverloadedAdvicePOJOCaller caller, @Thrown Throwable thrown,
+         @Args Object[] args)
+   {
+      throwing1 = "MethodByMethodInfo,OverloadedAdvicePOJOCaller,Throwable,Object[]";
+   }
+   
+   public void throwing1(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Caller OverloadedAdvicePOJOCaller caller, @Thrown Throwable thrown)
+   {
+      throwing1 = "MethodByMethodInfo,OverloadedAdvicePOJOCaller,Throwable";
+   }
+   
+   public void throwing1(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Thrown Throwable thrown, @Arg boolean arg)
+   {
+      throwing1 = "MethodByMethodInfo,Throwable,boolean";
+   }
+   
+   public void throwing1(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Thrown Throwable thrown, @Args Object[] args)
+   {
+      throwing1 = "MethodByMethodInfo,Throwable,Object[]";
+   }
+   
+   public void throwing1(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Thrown Throwable thrown)
+   {
+      throwing1 = "MethodByMethodInfo,Throwable";
+   }
+   
+   public void throwing1(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Thrown Throwable thrown,
+         @Arg boolean arg)
+   {
+      throwing1="OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,Throwable,boolean";
+   }
+   
+   public void throwing1(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Thrown Throwable thrown,
+         @Arg boolean arg)
+   {
+      throwing1="OverloadedAdvicePOJO,SuperClass,Throwable,boolean";
+   }
+   
+   public void throwing1(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Thrown Throwable thrown,
+         @Arg boolean arg)
+   {
+      throwing1="Object,OverloadedAdvicePOJOCaller,Throwable,boolean";
+   }
+   
+   public void throwing1(@Target Object target, @Caller SuperClass caller,
+         @Thrown Throwable thrown, @Arg boolean arg)
+   {
+      throwing1="Object,SuperClass,Throwable,boolean";
+   }
+   
+   public void throwing1(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Thrown Throwable thrown,
+         @Args Object[] args)
+   {
+      throwing1="OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,Throwable,Object[]";
+   }
+   
+   public void throwing1(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Thrown Throwable thrown,
+         @Args Object[] args)
+   {
+      throwing1="OverloadedAdvicePOJO,SuperClass,Throwable,Object[]";
+   }
+   
+   public void throwing1(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Thrown Throwable thrown,
+         @Args Object[] args)
+   {
+      throwing1="Object,OverloadedAdvicePOJOCaller,Throwable,Object[]";
+   }
+   
+   public void throwing1(@Target Object target, @Caller SuperClass caller,
+         @Thrown Throwable thrown, @Args Object[] args)
+   {
+      throwing1="Object,SuperClass,Throwable,Object[]";
+   }
+   
+   public void throwing1(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Thrown Throwable thrown)
+   {
+      throwing1="OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,Throwable";
+   }
+   
+   public void throwing1(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Thrown Throwable thrown)
+   {
+      throwing1="OverloadedAdvicePOJO,SuperClass,Throwable";
+   }
+   
+   public void throwing1(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Thrown Throwable thrown)
+   {
+      throwing1="Object,OverloadedAdvicePOJOCaller,Throwable";
+   }
+   
+   public void throwing1(@Target Object target, @Caller SuperClass caller,
+         @Thrown Throwable thrown)
+   {
+      throwing1="Object,SuperClass,Throwable";
+   }
+   
+   public void throwing1(@Target OverloadedAdvicePOJO target,
+         @Thrown Throwable thrown, @Arg boolean arg)
+   {
+      throwing1="OverloadedAdvicePOJO,Throwable,boolean";
+   }
+   
+   public void throwing1(@Target Object target, @Thrown Throwable thrown,
+         @Arg boolean arg)
+   {
+      throwing1="Object,Throwable,boolean";
+   }
+   
+   public void throwing1(@Target OverloadedAdvicePOJO target,
+         @Thrown Throwable thrown, @Args Object[] args)
+   {
+      throwing1="OverloadedAdvicePOJO,Throwable,Object[]";
+   }
+   
+   public void throwing1(@Target Object target, @Thrown Throwable thrown,
+         @Args Object[] args)
+   {
+      throwing1="Object,Throwable,Object[]";
+   }
+   
+   public void throwing1(@Target OverloadedAdvicePOJO target,
+         @Thrown Throwable thrown)
+   {
+      throwing1="OverloadedAdvicePOJO,Throwable";
+   }
+   
+   public void throwing1(@Target Object target, @Thrown Throwable thrown)
+   {
+      throwing1="Object,Throwable";
+   }
+   
+   public void throwing1(@Caller OverloadedAdvicePOJOCaller caller,
+         @Thrown Throwable thrown, @Arg boolean arg)
+   {
+      throwing1="OverloadedAdvicePOJOCaller,Throwable,boolean";
+   }
+   
+   public void throwing1(@Caller SuperClass caller, @Thrown Throwable thrown,
+         @Arg boolean arg)
+   {
+      throwing1 = "SuperClass,Throwable,boolean";
+   }
+   
+   public void throwing1(@Caller OverloadedAdvicePOJOCaller caller,
+         @Thrown Throwable thrown, @Args Object[] args)
+   {
+      throwing1 = "OverloadedAdvicePOJOCaller,Throwable,Object[]";
+   }
+   
+   public void throwing1(@Caller SuperClass caller, @Thrown Throwable thrown,
+         @Args Object[] args)
+   {
+      throwing1 = "SuperClass,Throwable,Object[]";
+   }
+   
+   public void throwing1(@Caller OverloadedAdvicePOJOCaller caller,
+         @Thrown Throwable thrown)
+   {
+      throwing1 = "OverloadedAdvicePOJOCaller,Throwable";
+   }
+   
+   public void throwing1(@Caller SuperClass caller, @Thrown Throwable thrown)
+   {
+      throwing1 = "SuperClass,Throwable";
+   }
+   
+   public void throwing1(@Thrown Throwable thrown, @Arg boolean arg)
+   {
+      throwing1 = "Throwable,boolean";
+   }
+   
+   public void throwing1(@JoinPoint MethodByMethodInfo joinPointInfo)
+   {
+      Assert.fail("This advice should never be executed");
+   }
+   
+   /* THROWING2 ADVICE */
+   
+   public void throwing2(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Thrown Throwable thrown,
+         @Args Object[] args)
+   {
+      throwing2 = "MethodByMethodInfo,OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,Throwable,Object[]";
+   }
+   
+   public void throwing2(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Thrown Throwable thrown)
+   {
+      throwing2 = "MethodByMethodInfo,OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,Throwable";
+   }
+   
+   public void throwing2(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Target OverloadedAdvicePOJO target, @Thrown Throwable thrown,
+         @Arg boolean arg)
+   {
+      throwing2 = "MethodByMethodInfo,OverloadedAdvicePOJO,Throwable,boolean";
+   }
+   
+   public void throwing2(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Target OverloadedAdvicePOJO target, @Thrown Throwable thrown,
+         @Args Object[] args)
+   {
+      throwing2 = "MethodByMethodInfo,OverloadedAdvicePOJO,Throwable,Object[]";
+   }
+   
+   public void throwing2(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Target OverloadedAdvicePOJO target, @Thrown Throwable thrown)
+   {
+      throwing2 = "MethodByMethodInfo,OverloadedAdvicePOJO,Throwable";
+   }
+   
+   public void throwing2(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Caller OverloadedAdvicePOJOCaller caller, @Thrown Throwable thrown,
+         @Arg boolean arg)
+   {
+      throwing2 = "MethodByMethodInfo,OverloadedAdvicePOJOCaller,Throwable,boolean";
+   }
+   
+   public void throwing2(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Caller OverloadedAdvicePOJOCaller caller, @Thrown Throwable thrown,
+         @Args Object[] args)
+   {
+      throwing2 = "MethodByMethodInfo,OverloadedAdvicePOJOCaller,Throwable,Object[]";
+   }
+   
+   public void throwing2(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Caller OverloadedAdvicePOJOCaller caller, @Thrown Throwable thrown)
+   {
+      throwing2 = "MethodByMethodInfo,OverloadedAdvicePOJOCaller,Throwable";
+   }
+   
+   public void throwing2(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Thrown Throwable thrown, @Arg boolean arg)
+   {
+      throwing2 = "MethodByMethodInfo,Throwable,boolean";
+   }
+   
+   public void throwing2(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Thrown Throwable thrown, @Args Object[] args)
+   {
+      throwing2 = "MethodByMethodInfo,Throwable,Object[]";
+   }
+   
+   public void throwing2(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Thrown Throwable thrown)
+   {
+      throwing2 = "MethodByMethodInfo,Throwable";
+   }
+   
+   public void throwing2(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Thrown Throwable thrown,
+         @Arg boolean arg)
+   {
+      throwing2="OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,Throwable,boolean";
+   }
+   
+   public void throwing2(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Thrown Throwable thrown,
+         @Arg boolean arg)
+   {
+      throwing2="OverloadedAdvicePOJO,SuperClass,Throwable,boolean";
+   }
+   
+   public void throwing2(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Thrown Throwable thrown,
+         @Arg boolean arg)
+   {
+      throwing2="Object,OverloadedAdvicePOJOCaller,Throwable,boolean";
+   }
+   
+   public void throwing2(@Target Object target, @Caller SuperClass caller,
+         @Thrown Throwable thrown, @Arg boolean arg)
+   {
+      throwing2="Object,SuperClass,Throwable,boolean";
+   }
+   
+   public void throwing2(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Thrown Throwable thrown,
+         @Args Object[] args)
+   {
+      throwing2="OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,Throwable,Object[]";
+   }
+   
+   public void throwing2(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Thrown Throwable thrown,
+         @Args Object[] args)
+   {
+      throwing2="OverloadedAdvicePOJO,SuperClass,Throwable,Object[]";
+   }
+   
+   public void throwing2(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Thrown Throwable thrown,
+         @Args Object[] args)
+   {
+      throwing2="Object,OverloadedAdvicePOJOCaller,Throwable,Object[]";
+   }
+   
+   public void throwing2(@Target Object target, @Caller SuperClass caller,
+         @Thrown Throwable thrown, @Args Object[] args)
+   {
+      throwing2="Object,SuperClass,Throwable,Object[]";
+   }
+   
+   public void throwing2(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Thrown Throwable thrown)
+   {
+      throwing2="OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,Throwable";
+   }
+   
+   public void throwing2(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Thrown Throwable thrown)
+   {
+      throwing2="OverloadedAdvicePOJO,SuperClass,Throwable";
+   }
+   
+   public void throwing2(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Thrown Throwable thrown)
+   {
+      throwing2="Object,OverloadedAdvicePOJOCaller,Throwable";
+   }
+   
+   public void throwing2(@Target Object target, @Caller SuperClass caller,
+         @Thrown Throwable thrown)
+   {
+      throwing2="Object,SuperClass,Throwable";
+   }
+   
+   public void throwing2(@Target OverloadedAdvicePOJO target,
+         @Thrown Throwable thrown, @Arg boolean arg)
+   {
+      throwing2="OverloadedAdvicePOJO,Throwable,boolean";
+   }
+   
+   public void throwing2(@Target Object target, @Thrown Throwable thrown,
+         @Arg boolean arg)
+   {
+      throwing2="Object,Throwable,boolean";
+   }
+   
+   public void throwing2(@Target OverloadedAdvicePOJO target,
+         @Thrown Throwable thrown, @Args Object[] args)
+   {
+      throwing2="OverloadedAdvicePOJO,Throwable,Object[]";
+   }
+   
+   public void throwing2(@Target Object target, @Thrown Throwable thrown,
+         @Args Object[] args)
+   {
+      throwing2="Object,Throwable,Object[]";
+   }
+   
+   public void throwing2(@Target OverloadedAdvicePOJO target,
+         @Thrown Throwable thrown)
+   {
+      throwing2="OverloadedAdvicePOJO,Throwable";
+   }
+   
+   public void throwing2(@Target Object target, @Thrown Throwable thrown)
+   {
+      throwing2="Object,Throwable";
+   }
+   
+   public void throwing2(@Caller OverloadedAdvicePOJOCaller caller,
+         @Thrown Throwable thrown, @Arg boolean arg)
+   {
+      throwing2="OverloadedAdvicePOJOCaller,Throwable,boolean";
+   }
+   
+   public void throwing2(@Caller SuperClass caller, @Thrown Throwable thrown,
+         @Arg boolean arg)
+   {
+      throwing2 = "SuperClass,Throwable,boolean";
+   }
+   
+   public void throwing2(@Caller OverloadedAdvicePOJOCaller caller,
+         @Thrown Throwable thrown, @Args Object[] args)
+   {
+      throwing2 = "OverloadedAdvicePOJOCaller,Throwable,Object[]";
+   }
+   
+   public void throwing2(@Caller SuperClass caller, @Thrown Throwable thrown,
+         @Args Object[] args)
+   {
+      throwing2 = "SuperClass,Throwable,Object[]";
+   }
+   
+   public void throwing2(@Caller OverloadedAdvicePOJOCaller caller,
+         @Thrown Throwable thrown)
+   {
+      throwing2 = "OverloadedAdvicePOJOCaller,Throwable";
+   }
+   
+   public void throwing2(@Caller SuperClass caller, @Thrown Throwable thrown)
+   {
+      throwing2 = "SuperClass,Throwable";
+   }
+   
+   public void throwing2(@Thrown Throwable thrown, @Arg boolean arg)
+   {
+      throwing2 = "Throwable,boolean";
+   }
+   
+   public void throwing2(@JoinPoint MethodByMethodInfo joinPointInfo)
+   {
+      Assert.fail("This advice should never be executed");
+   }
+   
+   /* THROWING3 ADVICE */
+   
+   public void throwing3(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Thrown Throwable thrown)
+   {
+      throwing3 = "MethodByMethodInfo,OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,Throwable";
+   }
+   
+   public void throwing3(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Target OverloadedAdvicePOJO target, @Thrown Throwable thrown,
+         @Arg boolean arg)
+   {
+      throwing3 = "MethodByMethodInfo,OverloadedAdvicePOJO,Throwable,boolean";
+   }
+   
+   public void throwing3(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Target OverloadedAdvicePOJO target, @Thrown Throwable thrown,
+         @Args Object[] args)
+   {
+      throwing3 = "MethodByMethodInfo,OverloadedAdvicePOJO,Throwable,Object[]";
+   }
+   
+   public void throwing3(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Target OverloadedAdvicePOJO target, @Thrown Throwable thrown)
+   {
+      throwing3 = "MethodByMethodInfo,OverloadedAdvicePOJO,Throwable";
+   }
+   
+   public void throwing3(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Caller OverloadedAdvicePOJOCaller caller, @Thrown Throwable thrown,
+         @Arg boolean arg)
+   {
+      throwing3 = "MethodByMethodInfo,OverloadedAdvicePOJOCaller,Throwable,boolean";
+   }
+   
+   public void throwing3(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Caller OverloadedAdvicePOJOCaller caller, @Thrown Throwable thrown,
+         @Args Object[] args)
+   {
+      throwing3 = "MethodByMethodInfo,OverloadedAdvicePOJOCaller,Throwable,Object[]";
+   }
+   
+   public void throwing3(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Caller OverloadedAdvicePOJOCaller caller, @Thrown Throwable thrown)
+   {
+      throwing3 = "MethodByMethodInfo,OverloadedAdvicePOJOCaller,Throwable";
+   }
+   
+   public void throwing3(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Thrown Throwable thrown, @Arg boolean arg)
+   {
+      throwing3 = "MethodByMethodInfo,Throwable,boolean";
+   }
+   
+   public void throwing3(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Thrown Throwable thrown, @Args Object[] args)
+   {
+      throwing3 = "MethodByMethodInfo,Throwable,Object[]";
+   }
+   
+   public void throwing3(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Thrown Throwable thrown)
+   {
+      throwing3 = "MethodByMethodInfo,Throwable";
+   }
+   
+   public void throwing3(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Thrown Throwable thrown,
+         @Arg boolean arg)
+   {
+      throwing3="OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,Throwable,boolean";
+   }
+   
+   public void throwing3(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Thrown Throwable thrown,
+         @Arg boolean arg)
+   {
+      throwing3="OverloadedAdvicePOJO,SuperClass,Throwable,boolean";
+   }
+   
+   public void throwing3(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Thrown Throwable thrown,
+         @Arg boolean arg)
+   {
+      throwing3="Object,OverloadedAdvicePOJOCaller,Throwable,boolean";
+   }
+   
+   public void throwing3(@Target Object target, @Caller SuperClass caller,
+         @Thrown Throwable thrown, @Arg boolean arg)
+   {
+      throwing3="Object,SuperClass,Throwable,boolean";
+   }
+   
+   public void throwing3(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Thrown Throwable thrown,
+         @Args Object[] args)
+   {
+      throwing3="OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,Throwable,Object[]";
+   }
+   
+   public void throwing3(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Thrown Throwable thrown,
+         @Args Object[] args)
+   {
+      throwing3="OverloadedAdvicePOJO,SuperClass,Throwable,Object[]";
+   }
+   
+   public void throwing3(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Thrown Throwable thrown,
+         @Args Object[] args)
+   {
+      throwing3="Object,OverloadedAdvicePOJOCaller,Throwable,Object[]";
+   }
+   
+   public void throwing3(@Target Object target, @Caller SuperClass caller,
+         @Thrown Throwable thrown, @Args Object[] args)
+   {
+      throwing3="Object,SuperClass,Throwable,Object[]";
+   }
+   
+   public void throwing3(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Thrown Throwable thrown)
+   {
+      throwing3="OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,Throwable";
+   }
+   
+   public void throwing3(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Thrown Throwable thrown)
+   {
+      throwing3="OverloadedAdvicePOJO,SuperClass,Throwable";
+   }
+   
+   public void throwing3(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Thrown Throwable thrown)
+   {
+      throwing3="Object,OverloadedAdvicePOJOCaller,Throwable";
+   }
+   
+   public void throwing3(@Target Object target, @Caller SuperClass caller,
+         @Thrown Throwable thrown)
+   {
+      throwing3="Object,SuperClass,Throwable";
+   }
+   
+   public void throwing3(@Target OverloadedAdvicePOJO target,
+         @Thrown Throwable thrown, @Arg boolean arg)
+   {
+      throwing3="OverloadedAdvicePOJO,Throwable,boolean";
+   }
+   
+   public void throwing3(@Target Object target, @Thrown Throwable thrown,
+         @Arg boolean arg)
+   {
+      throwing3="Object,Throwable,boolean";
+   }
+   
+   public void throwing3(@Target OverloadedAdvicePOJO target,
+         @Thrown Throwable thrown, @Args Object[] args)
+   {
+      throwing3="OverloadedAdvicePOJO,Throwable,Object[]";
+   }
+   
+   public void throwing3(@Target Object target, @Thrown Throwable thrown,
+         @Args Object[] args)
+   {
+      throwing3="Object,Throwable,Object[]";
+   }
+   
+   public void throwing3(@Target OverloadedAdvicePOJO target,
+         @Thrown Throwable thrown)
+   {
+      throwing3="OverloadedAdvicePOJO,Throwable";
+   }
+   
+   public void throwing3(@Target Object target, @Thrown Throwable thrown)
+   {
+      throwing3="Object,Throwable";
+   }
+   
+   public void throwing3(@Caller OverloadedAdvicePOJOCaller caller,
+         @Thrown Throwable thrown, @Arg boolean arg)
+   {
+      throwing3="OverloadedAdvicePOJOCaller,Throwable,boolean";
+   }
+   
+   public void throwing3(@Caller SuperClass caller, @Thrown Throwable thrown,
+         @Arg boolean arg)
+   {
+      throwing3 = "SuperClass,Throwable,boolean";
+   }
+   
+   public void throwing3(@Caller OverloadedAdvicePOJOCaller caller,
+         @Thrown Throwable thrown, @Args Object[] args)
+   {
+      throwing3 = "OverloadedAdvicePOJOCaller,Throwable,Object[]";
+   }
+   
+   public void throwing3(@Caller SuperClass caller, @Thrown Throwable thrown,
+         @Args Object[] args)
+   {
+      throwing3 = "SuperClass,Throwable,Object[]";
+   }
+   
+   public void throwing3(@Caller OverloadedAdvicePOJOCaller caller,
+         @Thrown Throwable thrown)
+   {
+      throwing3 = "OverloadedAdvicePOJOCaller,Throwable";
+   }
+   
+   public void throwing3(@Caller SuperClass caller, @Thrown Throwable thrown)
+   {
+      throwing3 = "SuperClass,Throwable";
+   }
+   
+   public void throwing3(@Thrown Throwable thrown, @Arg boolean arg)
+   {
+      throwing3 = "Throwable,boolean";
+   }
+   
+   public void throwing3(@JoinPoint MethodByMethodInfo joinPointInfo)
+   {
+      Assert.fail("This advice should never be executed");
+   }
+   
+   /* THROWING4 ADVICE */
+   
+   public void throwing4(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Target OverloadedAdvicePOJO target, @Thrown Throwable thrown,
+         @Arg boolean arg)
+   {
+      throwing4 = "MethodByMethodInfo,OverloadedAdvicePOJO,Throwable,boolean";
+   }
+   
+   public void throwing4(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Target OverloadedAdvicePOJO target, @Thrown Throwable thrown,
+         @Args Object[] args)
+   {
+      throwing4 = "MethodByMethodInfo,OverloadedAdvicePOJO,Throwable,Object[]";
+   }
+   
+   public void throwing4(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Target OverloadedAdvicePOJO target, @Thrown Throwable thrown)
+   {
+      throwing4 = "MethodByMethodInfo,OverloadedAdvicePOJO,Throwable";
+   }
+   
+   public void throwing4(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Caller OverloadedAdvicePOJOCaller caller, @Thrown Throwable thrown,
+         @Arg boolean arg)
+   {
+      throwing4 = "MethodByMethodInfo,OverloadedAdvicePOJOCaller,Throwable,boolean";
+   }
+   
+   public void throwing4(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Caller OverloadedAdvicePOJOCaller caller, @Thrown Throwable thrown,
+         @Args Object[] args)
+   {
+      throwing4 = "MethodByMethodInfo,OverloadedAdvicePOJOCaller,Throwable,Object[]";
+   }
+   
+   public void throwing4(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Caller OverloadedAdvicePOJOCaller caller, @Thrown Throwable thrown)
+   {
+      throwing4 = "MethodByMethodInfo,OverloadedAdvicePOJOCaller,Throwable";
+   }
+   
+   public void throwing4(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Thrown Throwable thrown, @Arg boolean arg)
+   {
+      throwing4 = "MethodByMethodInfo,Throwable,boolean";
+   }
+   
+   public void throwing4(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Thrown Throwable thrown, @Args Object[] args)
+   {
+      throwing4 = "MethodByMethodInfo,Throwable,Object[]";
+   }
+   
+   public void throwing4(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Thrown Throwable thrown)
+   {
+      throwing4 = "MethodByMethodInfo,Throwable";
+   }
+   
+   public void throwing4(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Thrown Throwable thrown,
+         @Arg boolean arg)
+   {
+      throwing4="OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,Throwable,boolean";
+   }
+   
+   public void throwing4(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Thrown Throwable thrown,
+         @Arg boolean arg)
+   {
+      throwing4="OverloadedAdvicePOJO,SuperClass,Throwable,boolean";
+   }
+   
+   public void throwing4(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Thrown Throwable thrown,
+         @Arg boolean arg)
+   {
+      throwing4="Object,OverloadedAdvicePOJOCaller,Throwable,boolean";
+   }
+   
+   public void throwing4(@Target Object target, @Caller SuperClass caller,
+         @Thrown Throwable thrown, @Arg boolean arg)
+   {
+      throwing4="Object,SuperClass,Throwable,boolean";
+   }
+   
+   public void throwing4(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Thrown Throwable thrown,
+         @Args Object[] args)
+   {
+      throwing4="OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,Throwable,Object[]";
+   }
+   
+   public void throwing4(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Thrown Throwable thrown,
+         @Args Object[] args)
+   {
+      throwing4="OverloadedAdvicePOJO,SuperClass,Throwable,Object[]";
+   }
+   
+   public void throwing4(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Thrown Throwable thrown,
+         @Args Object[] args)
+   {
+      throwing4="Object,OverloadedAdvicePOJOCaller,Throwable,Object[]";
+   }
+   
+   public void throwing4(@Target Object target, @Caller SuperClass caller,
+         @Thrown Throwable thrown, @Args Object[] args)
+   {
+      throwing4="Object,SuperClass,Throwable,Object[]";
+   }
+   
+   public void throwing4(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Thrown Throwable thrown)
+   {
+      throwing4="OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,Throwable";
+   }
+   
+   public void throwing4(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Thrown Throwable thrown)
+   {
+      throwing4="OverloadedAdvicePOJO,SuperClass,Throwable";
+   }
+   
+   public void throwing4(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Thrown Throwable thrown)
+   {
+      throwing4="Object,OverloadedAdvicePOJOCaller,Throwable";
+   }
+   
+   public void throwing4(@Target Object target, @Caller SuperClass caller,
+         @Thrown Throwable thrown)
+   {
+      throwing4="Object,SuperClass,Throwable";
+   }
+   
+   public void throwing4(@Target OverloadedAdvicePOJO target,
+         @Thrown Throwable thrown, @Arg boolean arg)
+   {
+      throwing4="OverloadedAdvicePOJO,Throwable,boolean";
+   }
+   
+   public void throwing4(@Target Object target, @Thrown Throwable thrown,
+         @Arg boolean arg)
+   {
+      throwing4="Object,Throwable,boolean";
+   }
+   
+   public void throwing4(@Target OverloadedAdvicePOJO target,
+         @Thrown Throwable thrown, @Args Object[] args)
+   {
+      throwing4="OverloadedAdvicePOJO,Throwable,Object[]";
+   }
+   
+   public void throwing4(@Target Object target, @Thrown Throwable thrown,
+         @Args Object[] args)
+   {
+      throwing4="Object,Throwable,Object[]";
+   }
+   
+   public void throwing4(@Target OverloadedAdvicePOJO target,
+         @Thrown Throwable thrown)
+   {
+      throwing4="OverloadedAdvicePOJO,Throwable";
+   }
+   
+   public void throwing4(@Target Object target, @Thrown Throwable thrown)
+   {
+      throwing4="Object,Throwable";
+   }
+   
+   public void throwing4(@Caller OverloadedAdvicePOJOCaller caller,
+         @Thrown Throwable thrown, @Arg boolean arg)
+   {
+      throwing4="OverloadedAdvicePOJOCaller,Throwable,boolean";
+   }
+   
+   public void throwing4(@Caller SuperClass caller, @Thrown Throwable thrown,
+         @Arg boolean arg)
+   {
+      throwing4 = "SuperClass,Throwable,boolean";
+   }
+   
+   public void throwing4(@Caller OverloadedAdvicePOJOCaller caller,
+         @Thrown Throwable thrown, @Args Object[] args)
+   {
+      throwing4 = "OverloadedAdvicePOJOCaller,Throwable,Object[]";
+   }
+   
+   public void throwing4(@Caller SuperClass caller, @Thrown Throwable thrown,
+         @Args Object[] args)
+   {
+      throwing4 = "SuperClass,Throwable,Object[]";
+   }
+   
+   public void throwing4(@Caller OverloadedAdvicePOJOCaller caller,
+         @Thrown Throwable thrown)
+   {
+      throwing4 = "OverloadedAdvicePOJOCaller,Throwable";
+   }
+   
+   public void throwing4(@Caller SuperClass caller, @Thrown Throwable thrown)
+   {
+      throwing4 = "SuperClass,Throwable";
+   }
+   
+   public void throwing4(@Thrown Throwable thrown, @Arg boolean arg)
+   {
+      throwing4 = "Throwable,boolean";
+   }
+   
+   public void throwing4(@JoinPoint MethodByMethodInfo joinPointInfo)
+   {
+      Assert.fail("This advice should never be executed");
+   }
+   
+   /* THROWING5 ADVICE */
+   
+   public void throwing5(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Target OverloadedAdvicePOJO target, @Thrown Throwable thrown,
+         @Args Object[] args)
+   {
+      throwing5 = "MethodByMethodInfo,OverloadedAdvicePOJO,Throwable,Object[]";
+   }
+   
+   public void throwing5(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Target OverloadedAdvicePOJO target, @Thrown Throwable thrown)
+   {
+      throwing5 = "MethodByMethodInfo,OverloadedAdvicePOJO,Throwable";
+   }
+   
+   public void throwing5(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Caller OverloadedAdvicePOJOCaller caller, @Thrown Throwable thrown,
+         @Arg boolean arg)
+   {
+      throwing5 = "MethodByMethodInfo,OverloadedAdvicePOJOCaller,Throwable,boolean";
+   }
+   
+   public void throwing5(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Caller OverloadedAdvicePOJOCaller caller, @Thrown Throwable thrown,
+         @Args Object[] args)
+   {
+      throwing5 = "MethodByMethodInfo,OverloadedAdvicePOJOCaller,Throwable,Object[]";
+   }
+   
+   public void throwing5(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Caller OverloadedAdvicePOJOCaller caller, @Thrown Throwable thrown)
+   {
+      throwing5 = "MethodByMethodInfo,OverloadedAdvicePOJOCaller,Throwable";
+   }
+   
+   public void throwing5(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Thrown Throwable thrown, @Arg boolean arg)
+   {
+      throwing5 = "MethodByMethodInfo,Throwable,boolean";
+   }
+   
+   public void throwing5(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Thrown Throwable thrown, @Args Object[] args)
+   {
+      throwing5 = "MethodByMethodInfo,Throwable,Object[]";
+   }
+   
+   public void throwing5(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Thrown Throwable thrown)
+   {
+      throwing5 = "MethodByMethodInfo,Throwable";
+   }
+   
+   public void throwing5(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Thrown Throwable thrown,
+         @Arg boolean arg)
+   {
+      throwing5="OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,Throwable,boolean";
+   }
+   
+   public void throwing5(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Thrown Throwable thrown,
+         @Arg boolean arg)
+   {
+      throwing5="OverloadedAdvicePOJO,SuperClass,Throwable,boolean";
+   }
+   
+   public void throwing5(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Thrown Throwable thrown,
+         @Arg boolean arg)
+   {
+      throwing5="Object,OverloadedAdvicePOJOCaller,Throwable,boolean";
+   }
+   
+   public void throwing5(@Target Object target, @Caller SuperClass caller,
+         @Thrown Throwable thrown, @Arg boolean arg)
+   {
+      throwing5="Object,SuperClass,Throwable,boolean";
+   }
+   
+   public void throwing5(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Thrown Throwable thrown,
+         @Args Object[] args)
+   {
+      throwing5="OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,Throwable,Object[]";
+   }
+   
+   public void throwing5(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Thrown Throwable thrown,
+         @Args Object[] args)
+   {
+      throwing5="OverloadedAdvicePOJO,SuperClass,Throwable,Object[]";
+   }
+   
+   public void throwing5(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Thrown Throwable thrown,
+         @Args Object[] args)
+   {
+      throwing5="Object,OverloadedAdvicePOJOCaller,Throwable,Object[]";
+   }
+   
+   public void throwing5(@Target Object target, @Caller SuperClass caller,
+         @Thrown Throwable thrown, @Args Object[] args)
+   {
+      throwing5="Object,SuperClass,Throwable,Object[]";
+   }
+   
+   public void throwing5(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Thrown Throwable thrown)
+   {
+      throwing5="OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,Throwable";
+   }
+   
+   public void throwing5(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Thrown Throwable thrown)
+   {
+      throwing5="OverloadedAdvicePOJO,SuperClass,Throwable";
+   }
+   
+   public void throwing5(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Thrown Throwable thrown)
+   {
+      throwing5="Object,OverloadedAdvicePOJOCaller,Throwable";
+   }
+   
+   public void throwing5(@Target Object target, @Caller SuperClass caller,
+         @Thrown Throwable thrown)
+   {
+      throwing5="Object,SuperClass,Throwable";
+   }
+   
+   public void throwing5(@Target OverloadedAdvicePOJO target,
+         @Thrown Throwable thrown, @Arg boolean arg)
+   {
+      throwing5="OverloadedAdvicePOJO,Throwable,boolean";
+   }
+   
+   public void throwing5(@Target Object target, @Thrown Throwable thrown,
+         @Arg boolean arg)
+   {
+      throwing5="Object,Throwable,boolean";
+   }
+   
+   public void throwing5(@Target OverloadedAdvicePOJO target,
+         @Thrown Throwable thrown, @Args Object[] args)
+   {
+      throwing5="OverloadedAdvicePOJO,Throwable,Object[]";
+   }
+   
+   public void throwing5(@Target Object target, @Thrown Throwable thrown,
+         @Args Object[] args)
+   {
+      throwing5="Object,Throwable,Object[]";
+   }
+   
+   public void throwing5(@Target OverloadedAdvicePOJO target,
+         @Thrown Throwable thrown)
+   {
+      throwing5="OverloadedAdvicePOJO,Throwable";
+   }
+   
+   public void throwing5(@Target Object target, @Thrown Throwable thrown)
+   {
+      throwing5="Object,Throwable";
+   }
+   
+   public void throwing5(@Caller OverloadedAdvicePOJOCaller caller,
+         @Thrown Throwable thrown, @Arg boolean arg)
+   {
+      throwing5="OverloadedAdvicePOJOCaller,Throwable,boolean";
+   }
+   
+   public void throwing5(@Caller SuperClass caller, @Thrown Throwable thrown,
+         @Arg boolean arg)
+   {
+      throwing5 = "SuperClass,Throwable,boolean";
+   }
+   
+   public void throwing5(@Caller OverloadedAdvicePOJOCaller caller,
+         @Thrown Throwable thrown, @Args Object[] args)
+   {
+      throwing5 = "OverloadedAdvicePOJOCaller,Throwable,Object[]";
+   }
+   
+   public void throwing5(@Caller SuperClass caller, @Thrown Throwable thrown,
+         @Args Object[] args)
+   {
+      throwing5 = "SuperClass,Throwable,Object[]";
+   }
+   
+   public void throwing5(@Caller OverloadedAdvicePOJOCaller caller,
+         @Thrown Throwable thrown)
+   {
+      throwing5 = "OverloadedAdvicePOJOCaller,Throwable";
+   }
+   
+   public void throwing5(@Caller SuperClass caller, @Thrown Throwable thrown)
+   {
+      throwing5 = "SuperClass,Throwable";
+   }
+   
+   public void throwing5(@Thrown Throwable thrown, @Arg boolean arg)
+   {
+      throwing5 = "Throwable,boolean";
+   }
+   
+   public void throwing5(@JoinPoint MethodByMethodInfo joinPointInfo)
+   {
+      Assert.fail("This advice should never be executed");
+   }
+   
+   /* THROWING6 ADVICE */
+   
+   public void throwing6(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Target OverloadedAdvicePOJO target, @Thrown Throwable thrown)
+   {
+      throwing6 = "MethodByMethodInfo,OverloadedAdvicePOJO,Throwable";
+   }
+   
+   public void throwing6(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Caller OverloadedAdvicePOJOCaller caller, @Thrown Throwable thrown,
+         @Arg boolean arg)
+   {
+      throwing6 = "MethodByMethodInfo,OverloadedAdvicePOJOCaller,Throwable,boolean";
+   }
+   
+   public void throwing6(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Caller OverloadedAdvicePOJOCaller caller, @Thrown Throwable thrown,
+         @Args Object[] args)
+   {
+      throwing6 = "MethodByMethodInfo,OverloadedAdvicePOJOCaller,Throwable,Object[]";
+   }
+   
+   public void throwing6(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Caller OverloadedAdvicePOJOCaller caller, @Thrown Throwable thrown)
+   {
+      throwing6 = "MethodByMethodInfo,OverloadedAdvicePOJOCaller,Throwable";
+   }
+   
+   public void throwing6(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Thrown Throwable thrown, @Arg boolean arg)
+   {
+      throwing6 = "MethodByMethodInfo,Throwable,boolean";
+   }
+   
+   public void throwing6(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Thrown Throwable thrown, @Args Object[] args)
+   {
+      throwing6 = "MethodByMethodInfo,Throwable,Object[]";
+   }
+   
+   public void throwing6(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Thrown Throwable thrown)
+   {
+      throwing6 = "MethodByMethodInfo,Throwable";
+   }
+   
+   public void throwing6(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Thrown Throwable thrown,
+         @Arg boolean arg)
+   {
+      throwing6="OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,Throwable,boolean";
+   }
+   
+   public void throwing6(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Thrown Throwable thrown,
+         @Arg boolean arg)
+   {
+      throwing6="OverloadedAdvicePOJO,SuperClass,Throwable,boolean";
+   }
+   
+   public void throwing6(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Thrown Throwable thrown,
+         @Arg boolean arg)
+   {
+      throwing6="Object,OverloadedAdvicePOJOCaller,Throwable,boolean";
+   }
+   
+   public void throwing6(@Target Object target, @Caller SuperClass caller,
+         @Thrown Throwable thrown, @Arg boolean arg)
+   {
+      throwing6="Object,SuperClass,Throwable,boolean";
+   }
+   
+   public void throwing6(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Thrown Throwable thrown,
+         @Args Object[] args)
+   {
+      throwing6="OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,Throwable,Object[]";
+   }
+   
+   public void throwing6(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Thrown Throwable thrown,
+         @Args Object[] args)
+   {
+      throwing6="OverloadedAdvicePOJO,SuperClass,Throwable,Object[]";
+   }
+   
+   public void throwing6(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Thrown Throwable thrown,
+         @Args Object[] args)
+   {
+      throwing6="Object,OverloadedAdvicePOJOCaller,Throwable,Object[]";
+   }
+   
+   public void throwing6(@Target Object target, @Caller SuperClass caller,
+         @Thrown Throwable thrown, @Args Object[] args)
+   {
+      throwing6="Object,SuperClass,Throwable,Object[]";
+   }
+   
+   public void throwing6(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Thrown Throwable thrown)
+   {
+      throwing6="OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,Throwable";
+   }
+   
+   public void throwing6(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Thrown Throwable thrown)
+   {
+      throwing6="OverloadedAdvicePOJO,SuperClass,Throwable";
+   }
+   
+   public void throwing6(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Thrown Throwable thrown)
+   {
+      throwing6="Object,OverloadedAdvicePOJOCaller,Throwable";
+   }
+   
+   public void throwing6(@Target Object target, @Caller SuperClass caller,
+         @Thrown Throwable thrown)
+   {
+      throwing6="Object,SuperClass,Throwable";
+   }
+   
+   public void throwing6(@Target OverloadedAdvicePOJO target,
+         @Thrown Throwable thrown, @Arg boolean arg)
+   {
+      throwing6="OverloadedAdvicePOJO,Throwable,boolean";
+   }
+   
+   public void throwing6(@Target Object target, @Thrown Throwable thrown,
+         @Arg boolean arg)
+   {
+      throwing6="Object,Throwable,boolean";
+   }
+   
+   public void throwing6(@Target OverloadedAdvicePOJO target,
+         @Thrown Throwable thrown, @Args Object[] args)
+   {
+      throwing6="OverloadedAdvicePOJO,Throwable,Object[]";
+   }
+   
+   public void throwing6(@Target Object target, @Thrown Throwable thrown,
+         @Args Object[] args)
+   {
+      throwing6="Object,Throwable,Object[]";
+   }
+   
+   public void throwing6(@Target OverloadedAdvicePOJO target,
+         @Thrown Throwable thrown)
+   {
+      throwing6="OverloadedAdvicePOJO,Throwable";
+   }
+   
+   public void throwing6(@Target Object target, @Thrown Throwable thrown)
+   {
+      throwing6="Object,Throwable";
+   }
+   
+   public void throwing6(@Caller OverloadedAdvicePOJOCaller caller,
+         @Thrown Throwable thrown, @Arg boolean arg)
+   {
+      throwing6="OverloadedAdvicePOJOCaller,Throwable,boolean";
+   }
+   
+   public void throwing6(@Caller SuperClass caller, @Thrown Throwable thrown,
+         @Arg boolean arg)
+   {
+      throwing6 = "SuperClass,Throwable,boolean";
+   }
+   
+   public void throwing6(@Caller OverloadedAdvicePOJOCaller caller,
+         @Thrown Throwable thrown, @Args Object[] args)
+   {
+      throwing6 = "OverloadedAdvicePOJOCaller,Throwable,Object[]";
+   }
+   
+   public void throwing6(@Caller SuperClass caller, @Thrown Throwable thrown,
+         @Args Object[] args)
+   {
+      throwing6 = "SuperClass,Throwable,Object[]";
+   }
+   
+   public void throwing6(@Caller OverloadedAdvicePOJOCaller caller,
+         @Thrown Throwable thrown)
+   {
+      throwing6 = "OverloadedAdvicePOJOCaller,Throwable";
+   }
+   
+   public void throwing6(@Caller SuperClass caller, @Thrown Throwable thrown)
+   {
+      throwing6 = "SuperClass,Throwable";
+   }
+   
+   public void throwing6(@Thrown Throwable thrown, @Arg boolean arg)
+   {
+      throwing6 = "Throwable,boolean";
+   }
+   
+   public void throwing6(@JoinPoint MethodByMethodInfo joinPointInfo)
+   {
+      Assert.fail("This advice should never be executed");
+   }
+   
+   /* THROWING7 ADVICE */
+   
+   public void throwing7(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Caller OverloadedAdvicePOJOCaller caller, @Thrown Throwable thrown,
+         @Arg boolean arg)
+   {
+      throwing7 = "MethodByMethodInfo,OverloadedAdvicePOJOCaller,Throwable,boolean";
+   }
+   
+   public void throwing7(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Caller OverloadedAdvicePOJOCaller caller, @Thrown Throwable thrown,
+         @Args Object[] args)
+   {
+      throwing7 = "MethodByMethodInfo,OverloadedAdvicePOJOCaller,Throwable,Object[]";
+   }
+   
+   public void throwing7(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Caller OverloadedAdvicePOJOCaller caller, @Thrown Throwable thrown)
+   {
+      throwing7 = "MethodByMethodInfo,OverloadedAdvicePOJOCaller,Throwable";
+   }
+   
+   public void throwing7(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Thrown Throwable thrown, @Arg boolean arg)
+   {
+      throwing7 = "MethodByMethodInfo,Throwable,boolean";
+   }
+   
+   public void throwing7(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Thrown Throwable thrown, @Args Object[] args)
+   {
+      throwing7 = "MethodByMethodInfo,Throwable,Object[]";
+   }
+   
+   public void throwing7(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Thrown Throwable thrown)
+   {
+      throwing7 = "MethodByMethodInfo,Throwable";
+   }
+   
+   public void throwing7(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Thrown Throwable thrown,
+         @Arg boolean arg)
+   {
+      throwing7="OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,Throwable,boolean";
+   }
+   
+   public void throwing7(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Thrown Throwable thrown,
+         @Arg boolean arg)
+   {
+      throwing7="OverloadedAdvicePOJO,SuperClass,Throwable,boolean";
+   }
+   
+   public void throwing7(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Thrown Throwable thrown,
+         @Arg boolean arg)
+   {
+      throwing7="Object,OverloadedAdvicePOJOCaller,Throwable,boolean";
+   }
+   
+   public void throwing7(@Target Object target, @Caller SuperClass caller,
+         @Thrown Throwable thrown, @Arg boolean arg)
+   {
+      throwing7="Object,SuperClass,Throwable,boolean";
+   }
+   
+   public void throwing7(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Thrown Throwable thrown,
+         @Args Object[] args)
+   {
+      throwing7="OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,Throwable,Object[]";
+   }
+   
+   public void throwing7(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Thrown Throwable thrown,
+         @Args Object[] args)
+   {
+      throwing7="OverloadedAdvicePOJO,SuperClass,Throwable,Object[]";
+   }
+   
+   public void throwing7(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Thrown Throwable thrown,
+         @Args Object[] args)
+   {
+      throwing7="Object,OverloadedAdvicePOJOCaller,Throwable,Object[]";
+   }
+   
+   public void throwing7(@Target Object target, @Caller SuperClass caller,
+         @Thrown Throwable thrown, @Args Object[] args)
+   {
+      throwing7="Object,SuperClass,Throwable,Object[]";
+   }
+   
+   public void throwing7(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Thrown Throwable thrown)
+   {
+      throwing7="OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,Throwable";
+   }
+   
+   public void throwing7(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Thrown Throwable thrown)
+   {
+      throwing7="OverloadedAdvicePOJO,SuperClass,Throwable";
+   }
+   
+   public void throwing7(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Thrown Throwable thrown)
+   {
+      throwing7="Object,OverloadedAdvicePOJOCaller,Throwable";
+   }
+   
+   public void throwing7(@Target Object target, @Caller SuperClass caller,
+         @Thrown Throwable thrown)
+   {
+      throwing7="Object,SuperClass,Throwable";
+   }
+   
+   public void throwing7(@Target OverloadedAdvicePOJO target,
+         @Thrown Throwable thrown, @Arg boolean arg)
+   {
+      throwing7="OverloadedAdvicePOJO,Throwable,boolean";
+   }
+   
+   public void throwing7(@Target Object target, @Thrown Throwable thrown,
+         @Arg boolean arg)
+   {
+      throwing7="Object,Throwable,boolean";
+   }
+   
+   public void throwing7(@Target OverloadedAdvicePOJO target,
+         @Thrown Throwable thrown, @Args Object[] args)
+   {
+      throwing7="OverloadedAdvicePOJO,Throwable,Object[]";
+   }
+   
+   public void throwing7(@Target Object target, @Thrown Throwable thrown,
+         @Args Object[] args)
+   {
+      throwing7="Object,Throwable,Object[]";
+   }
+   
+   public void throwing7(@Target OverloadedAdvicePOJO target,
+         @Thrown Throwable thrown)
+   {
+      throwing7="OverloadedAdvicePOJO,Throwable";
+   }
+   
+   public void throwing7(@Target Object target, @Thrown Throwable thrown)
+   {
+      throwing7="Object,Throwable";
+   }
+   
+   public void throwing7(@Caller OverloadedAdvicePOJOCaller caller,
+         @Thrown Throwable thrown, @Arg boolean arg)
+   {
+      throwing7="OverloadedAdvicePOJOCaller,Throwable,boolean";
+   }
+   
+   public void throwing7(@Caller SuperClass caller, @Thrown Throwable thrown,
+         @Arg boolean arg)
+   {
+      throwing7 = "SuperClass,Throwable,boolean";
+   }
+   
+   public void throwing7(@Caller OverloadedAdvicePOJOCaller caller,
+         @Thrown Throwable thrown, @Args Object[] args)
+   {
+      throwing7 = "OverloadedAdvicePOJOCaller,Throwable,Object[]";
+   }
+   
+   public void throwing7(@Caller SuperClass caller, @Thrown Throwable thrown,
+         @Args Object[] args)
+   {
+      throwing7 = "SuperClass,Throwable,Object[]";
+   }
+   
+   public void throwing7(@Caller OverloadedAdvicePOJOCaller caller,
+         @Thrown Throwable thrown)
+   {
+      throwing7 = "OverloadedAdvicePOJOCaller,Throwable";
+   }
+   
+   public void throwing7(@Caller SuperClass caller, @Thrown Throwable thrown)
+   {
+      throwing7 = "SuperClass,Throwable";
+   }
+   
+   public void throwing7(@Thrown Throwable thrown, @Arg boolean arg)
+   {
+      throwing7 = "Throwable,boolean";
+   }
+   
+   public void throwing7(@JoinPoint MethodByMethodInfo joinPointInfo)
+   {
+      Assert.fail("This advice should never be executed");
+   }
+   
+   /* THROWING8 ADVICE */
+   
+   public void throwing8(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Caller OverloadedAdvicePOJOCaller caller, @Thrown Throwable thrown,
+         @Args Object[] args)
+   {
+      throwing8 = "MethodByMethodInfo,OverloadedAdvicePOJOCaller,Throwable,Object[]";
+   }
+   
+   public void throwing8(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Caller OverloadedAdvicePOJOCaller caller, @Thrown Throwable thrown)
+   {
+      throwing8 = "MethodByMethodInfo,OverloadedAdvicePOJOCaller,Throwable";
+   }
+   
+   public void throwing8(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Thrown Throwable thrown, @Arg boolean arg)
+   {
+      throwing8 = "MethodByMethodInfo,Throwable,boolean";
+   }
+   
+   public void throwing8(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Thrown Throwable thrown, @Args Object[] args)
+   {
+      throwing8 = "MethodByMethodInfo,Throwable,Object[]";
+   }
+   
+   public void throwing8(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Thrown Throwable thrown)
+   {
+      throwing8 = "MethodByMethodInfo,Throwable";
+   }
+   
+   public void throwing8(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Thrown Throwable thrown,
+         @Arg boolean arg)
+   {
+      throwing8="OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,Throwable,boolean";
+   }
+   
+   public void throwing8(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Thrown Throwable thrown,
+         @Arg boolean arg)
+   {
+      throwing8="OverloadedAdvicePOJO,SuperClass,Throwable,boolean";
+   }
+   
+   public void throwing8(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Thrown Throwable thrown,
+         @Arg boolean arg)
+   {
+      throwing8="Object,OverloadedAdvicePOJOCaller,Throwable,boolean";
+   }
+   
+   public void throwing8(@Target Object target, @Caller SuperClass caller,
+         @Thrown Throwable thrown, @Arg boolean arg)
+   {
+      throwing8="Object,SuperClass,Throwable,boolean";
+   }
+   
+   public void throwing8(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Thrown Throwable thrown,
+         @Args Object[] args)
+   {
+      throwing8="OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,Throwable,Object[]";
+   }
+   
+   public void throwing8(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Thrown Throwable thrown,
+         @Args Object[] args)
+   {
+      throwing8="OverloadedAdvicePOJO,SuperClass,Throwable,Object[]";
+   }
+   
+   public void throwing8(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Thrown Throwable thrown,
+         @Args Object[] args)
+   {
+      throwing8="Object,OverloadedAdvicePOJOCaller,Throwable,Object[]";
+   }
+   
+   public void throwing8(@Target Object target, @Caller SuperClass caller,
+         @Thrown Throwable thrown, @Args Object[] args)
+   {
+      throwing8="Object,SuperClass,Throwable,Object[]";
+   }
+   
+   public void throwing8(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Thrown Throwable thrown)
+   {
+      throwing8="OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,Throwable";
+   }
+   
+   public void throwing8(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Thrown Throwable thrown)
+   {
+      throwing8="OverloadedAdvicePOJO,SuperClass,Throwable";
+   }
+   
+   public void throwing8(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Thrown Throwable thrown)
+   {
+      throwing8="Object,OverloadedAdvicePOJOCaller,Throwable";
+   }
+   
+   public void throwing8(@Target Object target, @Caller SuperClass caller,
+         @Thrown Throwable thrown)
+   {
+      throwing8="Object,SuperClass,Throwable";
+   }
+   
+   public void throwing8(@Target OverloadedAdvicePOJO target,
+         @Thrown Throwable thrown, @Arg boolean arg)
+   {
+      throwing8="OverloadedAdvicePOJO,Throwable,boolean";
+   }
+   
+   public void throwing8(@Target Object target, @Thrown Throwable thrown,
+         @Arg boolean arg)
+   {
+      throwing8="Object,Throwable,boolean";
+   }
+   
+   public void throwing8(@Target OverloadedAdvicePOJO target,
+         @Thrown Throwable thrown, @Args Object[] args)
+   {
+      throwing8="OverloadedAdvicePOJO,Throwable,Object[]";
+   }
+   
+   public void throwing8(@Target Object target, @Thrown Throwable thrown,
+         @Args Object[] args)
+   {
+      throwing8="Object,Throwable,Object[]";
+   }
+   
+   public void throwing8(@Target OverloadedAdvicePOJO target,
+         @Thrown Throwable thrown)
+   {
+      throwing8="OverloadedAdvicePOJO,Throwable";
+   }
+   
+   public void throwing8(@Target Object target, @Thrown Throwable thrown)
+   {
+      throwing8="Object,Throwable";
+   }
+   
+   public void throwing8(@Caller OverloadedAdvicePOJOCaller caller,
+         @Thrown Throwable thrown, @Arg boolean arg)
+   {
+      throwing8="OverloadedAdvicePOJOCaller,Throwable,boolean";
+   }
+   
+   public void throwing8(@Caller SuperClass caller, @Thrown Throwable thrown,
+         @Arg boolean arg)
+   {
+      throwing8 = "SuperClass,Throwable,boolean";
+   }
+   
+   public void throwing8(@Caller OverloadedAdvicePOJOCaller caller,
+         @Thrown Throwable thrown, @Args Object[] args)
+   {
+      throwing8 = "OverloadedAdvicePOJOCaller,Throwable,Object[]";
+   }
+   
+   public void throwing8(@Caller SuperClass caller, @Thrown Throwable thrown,
+         @Args Object[] args)
+   {
+      throwing8 = "SuperClass,Throwable,Object[]";
+   }
+   
+   public void throwing8(@Caller OverloadedAdvicePOJOCaller caller,
+         @Thrown Throwable thrown)
+   {
+      throwing8 = "OverloadedAdvicePOJOCaller,Throwable";
+   }
+   
+   public void throwing8(@Caller SuperClass caller, @Thrown Throwable thrown)
+   {
+      throwing8 = "SuperClass,Throwable";
+   }
+   
+   public void throwing8(@Thrown Throwable thrown, @Arg boolean arg)
+   {
+      throwing8 = "Throwable,boolean";
+   }
+   
+   public void throwing8(@JoinPoint MethodByMethodInfo joinPointInfo)
+   {
+      Assert.fail("This advice should never be executed");
+   }
+   
+   /* THROWING9 ADVICE */
+   
+   public void throwing9(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Caller OverloadedAdvicePOJOCaller caller, @Thrown Throwable thrown)
+   {
+      throwing9 = "MethodByMethodInfo,OverloadedAdvicePOJOCaller,Throwable";
+   }
+   
+   public void throwing9(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Thrown Throwable thrown, @Arg boolean arg)
+   {
+      throwing9 = "MethodByMethodInfo,Throwable,boolean";
+   }
+   
+   public void throwing9(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Thrown Throwable thrown, @Args Object[] args)
+   {
+      throwing9 = "MethodByMethodInfo,Throwable,Object[]";
+   }
+   
+   public void throwing9(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Thrown Throwable thrown)
+   {
+      throwing9 = "MethodByMethodInfo,Throwable";
+   }
+   
+   public void throwing9(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Thrown Throwable thrown,
+         @Arg boolean arg)
+   {
+      throwing9="OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,Throwable,boolean";
+   }
+   
+   public void throwing9(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Thrown Throwable thrown,
+         @Arg boolean arg)
+   {
+      throwing9="OverloadedAdvicePOJO,SuperClass,Throwable,boolean";
+   }
+   
+   public void throwing9(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Thrown Throwable thrown,
+         @Arg boolean arg)
+   {
+      throwing9="Object,OverloadedAdvicePOJOCaller,Throwable,boolean";
+   }
+   
+   public void throwing9(@Target Object target, @Caller SuperClass caller,
+         @Thrown Throwable thrown, @Arg boolean arg)
+   {
+      throwing9="Object,SuperClass,Throwable,boolean";
+   }
+   
+   public void throwing9(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Thrown Throwable thrown,
+         @Args Object[] args)
+   {
+      throwing9="OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,Throwable,Object[]";
+   }
+   
+   public void throwing9(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Thrown Throwable thrown,
+         @Args Object[] args)
+   {
+      throwing9="OverloadedAdvicePOJO,SuperClass,Throwable,Object[]";
+   }
+   
+   public void throwing9(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Thrown Throwable thrown,
+         @Args Object[] args)
+   {
+      throwing9="Object,OverloadedAdvicePOJOCaller,Throwable,Object[]";
+   }
+   
+   public void throwing9(@Target Object target, @Caller SuperClass caller,
+         @Thrown Throwable thrown, @Args Object[] args)
+   {
+      throwing9="Object,SuperClass,Throwable,Object[]";
+   }
+   
+   public void throwing9(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Thrown Throwable thrown)
+   {
+      throwing9="OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,Throwable";
+   }
+   
+   public void throwing9(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Thrown Throwable thrown)
+   {
+      throwing9="OverloadedAdvicePOJO,SuperClass,Throwable";
+   }
+   
+   public void throwing9(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Thrown Throwable thrown)
+   {
+      throwing9="Object,OverloadedAdvicePOJOCaller,Throwable";
+   }
+   
+   public void throwing9(@Target Object target, @Caller SuperClass caller,
+         @Thrown Throwable thrown)
+   {
+      throwing9="Object,SuperClass,Throwable";
+   }
+   
+   public void throwing9(@Target OverloadedAdvicePOJO target,
+         @Thrown Throwable thrown, @Arg boolean arg)
+   {
+      throwing9="OverloadedAdvicePOJO,Throwable,boolean";
+   }
+   
+   public void throwing9(@Target Object target, @Thrown Throwable thrown,
+         @Arg boolean arg)
+   {
+      throwing9="Object,Throwable,boolean";
+   }
+   
+   public void throwing9(@Target OverloadedAdvicePOJO target,
+         @Thrown Throwable thrown, @Args Object[] args)
+   {
+      throwing9="OverloadedAdvicePOJO,Throwable,Object[]";
+   }
+   
+   public void throwing9(@Target Object target, @Thrown Throwable thrown,
+         @Args Object[] args)
+   {
+      throwing9="Object,Throwable,Object[]";
+   }
+   
+   public void throwing9(@Target OverloadedAdvicePOJO target,
+         @Thrown Throwable thrown)
+   {
+      throwing9="OverloadedAdvicePOJO,Throwable";
+   }
+   
+   public void throwing9(@Target Object target, @Thrown Throwable thrown)
+   {
+      throwing9="Object,Throwable";
+   }
+   
+   public void throwing9(@Caller OverloadedAdvicePOJOCaller caller,
+         @Thrown Throwable thrown, @Arg boolean arg)
+   {
+      throwing9="OverloadedAdvicePOJOCaller,Throwable,boolean";
+   }
+   
+   public void throwing9(@Caller SuperClass caller, @Thrown Throwable thrown,
+         @Arg boolean arg)
+   {
+      throwing9 = "SuperClass,Throwable,boolean";
+   }
+   
+   public void throwing9(@Caller OverloadedAdvicePOJOCaller caller,
+         @Thrown Throwable thrown, @Args Object[] args)
+   {
+      throwing9 = "OverloadedAdvicePOJOCaller,Throwable,Object[]";
+   }
+   
+   public void throwing9(@Caller SuperClass caller, @Thrown Throwable thrown,
+         @Args Object[] args)
+   {
+      throwing9 = "SuperClass,Throwable,Object[]";
+   }
+   
+   public void throwing9(@Caller OverloadedAdvicePOJOCaller caller,
+         @Thrown Throwable thrown)
+   {
+      throwing9 = "OverloadedAdvicePOJOCaller,Throwable";
+   }
+   
+   public void throwing9(@Caller SuperClass caller, @Thrown Throwable thrown)
+   {
+      throwing9 = "SuperClass,Throwable";
+   }
+   
+   public void throwing9(@Thrown Throwable thrown, @Arg boolean arg)
+   {
+      throwing9 = "Throwable,boolean";
+   }
+   
+   public void throwing9(@JoinPoint MethodByMethodInfo joinPointInfo)
+   {
+      Assert.fail("This advice should never be executed");
+   }
+   
+   /* THROWING10 ADVICE */
+   
+   public void throwing10(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Thrown Throwable thrown, @Arg boolean arg)
+   {
+      throwing10 = "MethodByMethodInfo,Throwable,boolean";
+   }
+   
+   public void throwing10(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Thrown Throwable thrown, @Args Object[] args)
+   {
+      throwing10 = "MethodByMethodInfo,Throwable,Object[]";
+   }
+   
+   public void throwing10(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Thrown Throwable thrown)
+   {
+      throwing10 = "MethodByMethodInfo,Throwable";
+   }
+   
+   public void throwing10(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Thrown Throwable thrown,
+         @Arg boolean arg)
+   {
+      throwing10="OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,Throwable,boolean";
+   }
+   
+   public void throwing10(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Thrown Throwable thrown,
+         @Arg boolean arg)
+   {
+      throwing10="OverloadedAdvicePOJO,SuperClass,Throwable,boolean";
+   }
+   
+   public void throwing10(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Thrown Throwable thrown,
+         @Arg boolean arg)
+   {
+      throwing10="Object,OverloadedAdvicePOJOCaller,Throwable,boolean";
+   }
+   
+   public void throwing10(@Target Object target, @Caller SuperClass caller,
+         @Thrown Throwable thrown, @Arg boolean arg)
+   {
+      throwing10="Object,SuperClass,Throwable,boolean";
+   }
+   
+   public void throwing10(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Thrown Throwable thrown,
+         @Args Object[] args)
+   {
+      throwing10="OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,Throwable,Object[]";
+   }
+   
+   public void throwing10(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Thrown Throwable thrown,
+         @Args Object[] args)
+   {
+      throwing10="OverloadedAdvicePOJO,SuperClass,Throwable,Object[]";
+   }
+   
+   public void throwing10(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Thrown Throwable thrown,
+         @Args Object[] args)
+   {
+      throwing10="Object,OverloadedAdvicePOJOCaller,Throwable,Object[]";
+   }
+   
+   public void throwing10(@Target Object target, @Caller SuperClass caller,
+         @Thrown Throwable thrown, @Args Object[] args)
+   {
+      throwing10="Object,SuperClass,Throwable,Object[]";
+   }
+   
+   public void throwing10(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Thrown Throwable thrown)
+   {
+      throwing10="OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,Throwable";
+   }
+   
+   public void throwing10(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Thrown Throwable thrown)
+   {
+      throwing10="OverloadedAdvicePOJO,SuperClass,Throwable";
+   }
+   
+   public void throwing10(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Thrown Throwable thrown)
+   {
+      throwing10="Object,OverloadedAdvicePOJOCaller,Throwable";
+   }
+   
+   public void throwing10(@Target Object target, @Caller SuperClass caller,
+         @Thrown Throwable thrown)
+   {
+      throwing10="Object,SuperClass,Throwable";
+   }
+   
+   public void throwing10(@Target OverloadedAdvicePOJO target,
+         @Thrown Throwable thrown, @Arg boolean arg)
+   {
+      throwing10="OverloadedAdvicePOJO,Throwable,boolean";
+   }
+   
+   public void throwing10(@Target Object target, @Thrown Throwable thrown,
+         @Arg boolean arg)
+   {
+      throwing10="Object,Throwable,boolean";
+   }
+   
+   public void throwing10(@Target OverloadedAdvicePOJO target,
+         @Thrown Throwable thrown, @Args Object[] args)
+   {
+      throwing10="OverloadedAdvicePOJO,Throwable,Object[]";
+   }
+   
+   public void throwing10(@Target Object target, @Thrown Throwable thrown,
+         @Args Object[] args)
+   {
+      throwing10="Object,Throwable,Object[]";
+   }
+   
+   public void throwing10(@Target OverloadedAdvicePOJO target,
+         @Thrown Throwable thrown)
+   {
+      throwing10="OverloadedAdvicePOJO,Throwable";
+   }
+   
+   public void throwing10(@Target Object target, @Thrown Throwable thrown)
+   {
+      throwing10="Object,Throwable";
+   }
+   
+   public void throwing10(@Caller OverloadedAdvicePOJOCaller caller,
+         @Thrown Throwable thrown, @Arg boolean arg)
+   {
+      throwing10="OverloadedAdvicePOJOCaller,Throwable,boolean";
+   }
+   
+   public void throwing10(@Caller SuperClass caller, @Thrown Throwable thrown,
+         @Arg boolean arg)
+   {
+      throwing10 = "SuperClass,Throwable,boolean";
+   }
+   
+   public void throwing10(@Caller OverloadedAdvicePOJOCaller caller,
+         @Thrown Throwable thrown, @Args Object[] args)
+   {
+      throwing10 = "OverloadedAdvicePOJOCaller,Throwable,Object[]";
+   }
+   
+   public void throwing10(@Caller SuperClass caller, @Thrown Throwable thrown,
+         @Args Object[] args)
+   {
+      throwing10 = "SuperClass,Throwable,Object[]";
+   }
+   
+   public void throwing10(@Caller OverloadedAdvicePOJOCaller caller,
+         @Thrown Throwable thrown)
+   {
+      throwing10 = "OverloadedAdvicePOJOCaller,Throwable";
+   }
+   
+   public void throwing10(@Caller SuperClass caller, @Thrown Throwable thrown)
+   {
+      throwing10 = "SuperClass,Throwable";
+   }
+   
+   public void throwing10(@Thrown Throwable thrown, @Arg boolean arg)
+   {
+      throwing10 = "Throwable,boolean";
+   }
+   
+   public void throwing10(@JoinPoint MethodByMethodInfo joinPointInfo)
+   {
+      Assert.fail("This advice should never be executed");
+   }
+   
+   /* THROWING11 ADVICE */
+   
+   public void throwing11(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Thrown Throwable thrown, @Args Object[] args)
+   {
+      throwing11 = "MethodByMethodInfo,Throwable,Object[]";
+   }
+   
+   public void throwing11(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Thrown Throwable thrown)
+   {
+      throwing11 = "MethodByMethodInfo,Throwable";
+   }
+   
+   public void throwing11(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Thrown Throwable thrown,
+         @Arg boolean arg)
+   {
+      throwing11="OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,Throwable,boolean";
+   }
+   
+   public void throwing11(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Thrown Throwable thrown,
+         @Arg boolean arg)
+   {
+      throwing11="OverloadedAdvicePOJO,SuperClass,Throwable,boolean";
+   }
+   
+   public void throwing11(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Thrown Throwable thrown,
+         @Arg boolean arg)
+   {
+      throwing11="Object,OverloadedAdvicePOJOCaller,Throwable,boolean";
+   }
+   
+   public void throwing11(@Target Object target, @Caller SuperClass caller,
+         @Thrown Throwable thrown, @Arg boolean arg)
+   {
+      throwing11="Object,SuperClass,Throwable,boolean";
+   }
+   
+   public void throwing11(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Thrown Throwable thrown,
+         @Args Object[] args)
+   {
+      throwing11="OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,Throwable,Object[]";
+   }
+   
+   public void throwing11(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Thrown Throwable thrown,
+         @Args Object[] args)
+   {
+      throwing11="OverloadedAdvicePOJO,SuperClass,Throwable,Object[]";
+   }
+   
+   public void throwing11(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Thrown Throwable thrown,
+         @Args Object[] args)
+   {
+      throwing11="Object,OverloadedAdvicePOJOCaller,Throwable,Object[]";
+   }
+   
+   public void throwing11(@Target Object target, @Caller SuperClass caller,
+         @Thrown Throwable thrown, @Args Object[] args)
+   {
+      throwing11="Object,SuperClass,Throwable,Object[]";
+   }
+   
+   public void throwing11(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Thrown Throwable thrown)
+   {
+      throwing11="OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,Throwable";
+   }
+   
+   public void throwing11(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Thrown Throwable thrown)
+   {
+      throwing11="OverloadedAdvicePOJO,SuperClass,Throwable";
+   }
+   
+   public void throwing11(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Thrown Throwable thrown)
+   {
+      throwing11="Object,OverloadedAdvicePOJOCaller,Throwable";
+   }
+   
+   public void throwing11(@Target Object target, @Caller SuperClass caller,
+         @Thrown Throwable thrown)
+   {
+      throwing11="Object,SuperClass,Throwable";
+   }
+   
+   public void throwing11(@Target OverloadedAdvicePOJO target,
+         @Thrown Throwable thrown, @Arg boolean arg)
+   {
+      throwing11="OverloadedAdvicePOJO,Throwable,boolean";
+   }
+   
+   public void throwing11(@Target Object target, @Thrown Throwable thrown,
+         @Arg boolean arg)
+   {
+      throwing11="Object,Throwable,boolean";
+   }
+   
+   public void throwing11(@Target OverloadedAdvicePOJO target,
+         @Thrown Throwable thrown, @Args Object[] args)
+   {
+      throwing11="OverloadedAdvicePOJO,Throwable,Object[]";
+   }
+   
+   public void throwing11(@Target Object target, @Thrown Throwable thrown,
+         @Args Object[] args)
+   {
+      throwing11="Object,Throwable,Object[]";
+   }
+   
+   public void throwing11(@Target OverloadedAdvicePOJO target,
+         @Thrown Throwable thrown)
+   {
+      throwing11="OverloadedAdvicePOJO,Throwable";
+   }
+   
+   public void throwing11(@Target Object target, @Thrown Throwable thrown)
+   {
+      throwing11="Object,Throwable";
+   }
+   
+   public void throwing11(@Caller OverloadedAdvicePOJOCaller caller,
+         @Thrown Throwable thrown, @Arg boolean arg)
+   {
+      throwing11="OverloadedAdvicePOJOCaller,Throwable,boolean";
+   }
+   
+   public void throwing11(@Caller SuperClass caller, @Thrown Throwable thrown,
+         @Arg boolean arg)
+   {
+      throwing11 = "SuperClass,Throwable,boolean";
+   }
+   
+   public void throwing11(@Caller OverloadedAdvicePOJOCaller caller,
+         @Thrown Throwable thrown, @Args Object[] args)
+   {
+      throwing11 = "OverloadedAdvicePOJOCaller,Throwable,Object[]";
+   }
+   
+   public void throwing11(@Caller SuperClass caller, @Thrown Throwable thrown,
+         @Args Object[] args)
+   {
+      throwing11 = "SuperClass,Throwable,Object[]";
+   }
+   
+   public void throwing11(@Caller OverloadedAdvicePOJOCaller caller,
+         @Thrown Throwable thrown)
+   {
+      throwing11 = "OverloadedAdvicePOJOCaller,Throwable";
+   }
+   
+   public void throwing11(@Caller SuperClass caller, @Thrown Throwable thrown)
+   {
+      throwing11 = "SuperClass,Throwable";
+   }
+   
+   public void throwing11(@Thrown Throwable thrown, @Arg boolean arg)
+   {
+      throwing11 = "Throwable,boolean";
+   }
+   
+   public void throwing11(@JoinPoint MethodByMethodInfo joinPointInfo)
+   {
+      Assert.fail("This advice should never be executed");
+   }
+   
+   /* THROWING12 ADVICE */
+   
+   public void throwing12(@JoinPoint MethodByMethodInfo joinPointInfo,
+         @Thrown Throwable thrown)
+   {
+      throwing12 = "MethodByMethodInfo,Throwable";
+   }
+   
+   public void throwing12(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Thrown Throwable thrown,
+         @Arg boolean arg)
+   {
+      throwing12="OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,Throwable,boolean";
+   }
+   
+   public void throwing12(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Thrown Throwable thrown,
+         @Arg boolean arg)
+   {
+      throwing12="OverloadedAdvicePOJO,SuperClass,Throwable,boolean";
+   }
+   
+   public void throwing12(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Thrown Throwable thrown,
+         @Arg boolean arg)
+   {
+      throwing12="Object,OverloadedAdvicePOJOCaller,Throwable,boolean";
+   }
+   
+   public void throwing12(@Target Object target, @Caller SuperClass caller,
+         @Thrown Throwable thrown, @Arg boolean arg)
+   {
+      throwing12="Object,SuperClass,Throwable,boolean";
+   }
+   
+   public void throwing12(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Thrown Throwable thrown,
+         @Args Object[] args)
+   {
+      throwing12="OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,Throwable,Object[]";
+   }
+   
+   public void throwing12(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Thrown Throwable thrown,
+         @Args Object[] args)
+   {
+      throwing12="OverloadedAdvicePOJO,SuperClass,Throwable,Object[]";
+   }
+   
+   public void throwing12(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Thrown Throwable thrown,
+         @Args Object[] args)
+   {
+      throwing12="Object,OverloadedAdvicePOJOCaller,Throwable,Object[]";
+   }
+   
+   public void throwing12(@Target Object target, @Caller SuperClass caller,
+         @Thrown Throwable thrown, @Args Object[] args)
+   {
+      throwing12="Object,SuperClass,Throwable,Object[]";
+   }
+   
+   public void throwing12(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Thrown Throwable thrown)
+   {
+      throwing12="OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,Throwable";
+   }
+   
+   public void throwing12(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Thrown Throwable thrown)
+   {
+      throwing12="OverloadedAdvicePOJO,SuperClass,Throwable";
+   }
+   
+   public void throwing12(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Thrown Throwable thrown)
+   {
+      throwing12="Object,OverloadedAdvicePOJOCaller,Throwable";
+   }
+   
+   public void throwing12(@Target Object target, @Caller SuperClass caller,
+         @Thrown Throwable thrown)
+   {
+      throwing12="Object,SuperClass,Throwable";
+   }
+   
+   public void throwing12(@Target OverloadedAdvicePOJO target,
+         @Thrown Throwable thrown, @Arg boolean arg)
+   {
+      throwing12="OverloadedAdvicePOJO,Throwable,boolean";
+   }
+   
+   public void throwing12(@Target Object target, @Thrown Throwable thrown,
+         @Arg boolean arg)
+   {
+      throwing12="Object,Throwable,boolean";
+   }
+   
+   public void throwing12(@Target OverloadedAdvicePOJO target,
+         @Thrown Throwable thrown, @Args Object[] args)
+   {
+      throwing12="OverloadedAdvicePOJO,Throwable,Object[]";
+   }
+   
+   public void throwing12(@Target Object target, @Thrown Throwable thrown,
+         @Args Object[] args)
+   {
+      throwing12="Object,Throwable,Object[]";
+   }
+   
+   public void throwing12(@Target OverloadedAdvicePOJO target,
+         @Thrown Throwable thrown)
+   {
+      throwing12="OverloadedAdvicePOJO,Throwable";
+   }
+   
+   public void throwing12(@Target Object target, @Thrown Throwable thrown)
+   {
+      throwing12="Object,Throwable";
+   }
+   
+   public void throwing12(@Caller OverloadedAdvicePOJOCaller caller,
+         @Thrown Throwable thrown, @Arg boolean arg)
+   {
+      throwing12="OverloadedAdvicePOJOCaller,Throwable,boolean";
+   }
+   
+   public void throwing12(@Caller SuperClass caller, @Thrown Throwable thrown,
+         @Arg boolean arg)
+   {
+      throwing12 = "SuperClass,Throwable,boolean";
+   }
+   
+   public void throwing12(@Caller OverloadedAdvicePOJOCaller caller,
+         @Thrown Throwable thrown, @Args Object[] args)
+   {
+      throwing12 = "OverloadedAdvicePOJOCaller,Throwable,Object[]";
+   }
+   
+   public void throwing12(@Caller SuperClass caller, @Thrown Throwable thrown,
+         @Args Object[] args)
+   {
+      throwing12 = "SuperClass,Throwable,Object[]";
+   }
+   
+   public void throwing12(@Caller OverloadedAdvicePOJOCaller caller,
+         @Thrown Throwable thrown)
+   {
+      throwing12 = "OverloadedAdvicePOJOCaller,Throwable";
+   }
+   
+   public void throwing12(@Caller SuperClass caller, @Thrown Throwable thrown)
+   {
+      throwing12 = "SuperClass,Throwable";
+   }
+   
+   public void throwing12(@Thrown Throwable thrown, @Arg boolean arg)
+   {
+      throwing12 = "Throwable,boolean";
+   }
+   
+   public void throwing12(@JoinPoint MethodByMethodInfo joinPointInfo)
+   {
+      Assert.fail("This advice should never be executed");
+   }
+   
+   /* THROWING13 ADVICE */
+   
+   public void throwing13(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Thrown Throwable thrown,
+         @Arg boolean arg)
+   {
+      throwing13="OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,Throwable,boolean";
+   }
+   
+   public void throwing13(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Thrown Throwable thrown,
+         @Arg boolean arg)
+   {
+      throwing13="OverloadedAdvicePOJO,SuperClass,Throwable,boolean";
+   }
+   
+   public void throwing13(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Thrown Throwable thrown,
+         @Arg boolean arg)
+   {
+      throwing13="Object,OverloadedAdvicePOJOCaller,Throwable,boolean";
+   }
+   
+   public void throwing13(@Target Object target, @Caller SuperClass caller,
+         @Thrown Throwable thrown, @Arg boolean arg)
+   {
+      throwing13="Object,SuperClass,Throwable,boolean";
+   }
+   
+   public void throwing13(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Thrown Throwable thrown,
+         @Args Object[] args)
+   {
+      throwing13="OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,Throwable,Object[]";
+   }
+   
+   public void throwing13(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Thrown Throwable thrown,
+         @Args Object[] args)
+   {
+      throwing13="OverloadedAdvicePOJO,SuperClass,Throwable,Object[]";
+   }
+   
+   public void throwing13(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Thrown Throwable thrown,
+         @Args Object[] args)
+   {
+      throwing13="Object,OverloadedAdvicePOJOCaller,Throwable,Object[]";
+   }
+   
+   public void throwing13(@Target Object target, @Caller SuperClass caller,
+         @Thrown Throwable thrown, @Args Object[] args)
+   {
+      throwing13="Object,SuperClass,Throwable,Object[]";
+   }
+   
+   public void throwing13(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Thrown Throwable thrown)
+   {
+      throwing13="OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,Throwable";
+   }
+   
+   public void throwing13(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Thrown Throwable thrown)
+   {
+      throwing13="OverloadedAdvicePOJO,SuperClass,Throwable";
+   }
+   
+   public void throwing13(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Thrown Throwable thrown)
+   {
+      throwing13="Object,OverloadedAdvicePOJOCaller,Throwable";
+   }
+   
+   public void throwing13(@Target Object target, @Caller SuperClass caller,
+         @Thrown Throwable thrown)
+   {
+      throwing13="Object,SuperClass,Throwable";
+   }
+   
+   public void throwing13(@Target OverloadedAdvicePOJO target,
+         @Thrown Throwable thrown, @Arg boolean arg)
+   {
+      throwing13="OverloadedAdvicePOJO,Throwable,boolean";
+   }
+   
+   public void throwing13(@Target Object target, @Thrown Throwable thrown,
+         @Arg boolean arg)
+   {
+      throwing13="Object,Throwable,boolean";
+   }
+   
+   public void throwing13(@Target OverloadedAdvicePOJO target,
+         @Thrown Throwable thrown, @Args Object[] args)
+   {
+      throwing13="OverloadedAdvicePOJO,Throwable,Object[]";
+   }
+   
+   public void throwing13(@Target Object target, @Thrown Throwable thrown,
+         @Args Object[] args)
+   {
+      throwing13="Object,Throwable,Object[]";
+   }
+   
+   public void throwing13(@Target OverloadedAdvicePOJO target,
+         @Thrown Throwable thrown)
+   {
+      throwing13="OverloadedAdvicePOJO,Throwable";
+   }
+   
+   public void throwing13(@Target Object target, @Thrown Throwable thrown)
+   {
+      throwing13="Object,Throwable";
+   }
+   
+   public void throwing13(@Caller OverloadedAdvicePOJOCaller caller,
+         @Thrown Throwable thrown, @Arg boolean arg)
+   {
+      throwing13="OverloadedAdvicePOJOCaller,Throwable,boolean";
+   }
+   
+   public void throwing13(@Caller SuperClass caller, @Thrown Throwable thrown,
+         @Arg boolean arg)
+   {
+      throwing13 = "SuperClass,Throwable,boolean";
+   }
+   
+   public void throwing13(@Caller OverloadedAdvicePOJOCaller caller,
+         @Thrown Throwable thrown, @Args Object[] args)
+   {
+      throwing13 = "OverloadedAdvicePOJOCaller,Throwable,Object[]";
+   }
+   
+   public void throwing13(@Caller SuperClass caller, @Thrown Throwable thrown,
+         @Args Object[] args)
+   {
+      throwing13 = "SuperClass,Throwable,Object[]";
+   }
+   
+   public void throwing13(@Caller OverloadedAdvicePOJOCaller caller,
+         @Thrown Throwable thrown)
+   {
+      throwing13 = "OverloadedAdvicePOJOCaller,Throwable";
+   }
+   
+   public void throwing13(@Caller SuperClass caller, @Thrown Throwable thrown)
+   {
+      throwing13 = "SuperClass,Throwable";
+   }
+   
+   public void throwing13(@Thrown Throwable thrown, @Arg boolean arg)
+   {
+      throwing13 = "Throwable,boolean";
+   }
+   
+   public void throwing13(@JoinPoint MethodByMethodInfo joinPointInfo)
+   {
+      Assert.fail("This advice should never be executed");
+   }
+   
+   /* THROWING14 ADVICE */
+   
+   public void throwing14(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Thrown Throwable thrown,
+         @Arg boolean arg)
+   {
+      throwing14="OverloadedAdvicePOJO,SuperClass,Throwable,boolean";
+   }
+   
+   public void throwing14(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Thrown Throwable thrown,
+         @Arg boolean arg)
+   {
+      throwing14="Object,OverloadedAdvicePOJOCaller,Throwable,boolean";
+   }
+   
+   public void throwing14(@Target Object target, @Caller SuperClass caller,
+         @Thrown Throwable thrown, @Arg boolean arg)
+   {
+      throwing14="Object,SuperClass,Throwable,boolean";
+   }
+   
+   public void throwing14(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Thrown Throwable thrown,
+         @Args Object[] args)
+   {
+      throwing14="OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,Throwable,Object[]";
+   }
+   
+   public void throwing14(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Thrown Throwable thrown,
+         @Args Object[] args)
+   {
+      throwing14="OverloadedAdvicePOJO,SuperClass,Throwable,Object[]";
+   }
+   
+   public void throwing14(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Thrown Throwable thrown,
+         @Args Object[] args)
+   {
+      throwing14="Object,OverloadedAdvicePOJOCaller,Throwable,Object[]";
+   }
+   
+   public void throwing14(@Target Object target, @Caller SuperClass caller,
+         @Thrown Throwable thrown, @Args Object[] args)
+   {
+      throwing14="Object,SuperClass,Throwable,Object[]";
+   }
+   
+   public void throwing14(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Thrown Throwable thrown)
+   {
+      throwing14="OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,Throwable";
+   }
+   
+   public void throwing14(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Thrown Throwable thrown)
+   {
+      throwing14="OverloadedAdvicePOJO,SuperClass,Throwable";
+   }
+   
+   public void throwing14(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Thrown Throwable thrown)
+   {
+      throwing14="Object,OverloadedAdvicePOJOCaller,Throwable";
+   }
+   
+   public void throwing14(@Target Object target, @Caller SuperClass caller,
+         @Thrown Throwable thrown)
+   {
+      throwing14="Object,SuperClass,Throwable";
+   }
+   
+   public void throwing14(@Target OverloadedAdvicePOJO target,
+         @Thrown Throwable thrown, @Arg boolean arg)
+   {
+      throwing14="OverloadedAdvicePOJO,Throwable,boolean";
+   }
+   
+   public void throwing14(@Target Object target, @Thrown Throwable thrown,
+         @Arg boolean arg)
+   {
+      throwing14="Object,Throwable,boolean";
+   }
+   
+   public void throwing14(@Target OverloadedAdvicePOJO target,
+         @Thrown Throwable thrown, @Args Object[] args)
+   {
+      throwing14="OverloadedAdvicePOJO,Throwable,Object[]";
+   }
+   
+   public void throwing14(@Target Object target, @Thrown Throwable thrown,
+         @Args Object[] args)
+   {
+      throwing14="Object,Throwable,Object[]";
+   }
+   
+   public void throwing14(@Target OverloadedAdvicePOJO target,
+         @Thrown Throwable thrown)
+   {
+      throwing14="OverloadedAdvicePOJO,Throwable";
+   }
+   
+   public void throwing14(@Target Object target, @Thrown Throwable thrown)
+   {
+      throwing14="Object,Throwable";
+   }
+   
+   public void throwing14(@Caller OverloadedAdvicePOJOCaller caller,
+         @Thrown Throwable thrown, @Arg boolean arg)
+   {
+      throwing14="OverloadedAdvicePOJOCaller,Throwable,boolean";
+   }
+   
+   public void throwing14(@Caller SuperClass caller, @Thrown Throwable thrown,
+         @Arg boolean arg)
+   {
+      throwing14 = "SuperClass,Throwable,boolean";
+   }
+   
+   public void throwing14(@Caller OverloadedAdvicePOJOCaller caller,
+         @Thrown Throwable thrown, @Args Object[] args)
+   {
+      throwing14 = "OverloadedAdvicePOJOCaller,Throwable,Object[]";
+   }
+   
+   public void throwing14(@Caller SuperClass caller, @Thrown Throwable thrown,
+         @Args Object[] args)
+   {
+      throwing14 = "SuperClass,Throwable,Object[]";
+   }
+   
+   public void throwing14(@Caller OverloadedAdvicePOJOCaller caller,
+         @Thrown Throwable thrown)
+   {
+      throwing14 = "OverloadedAdvicePOJOCaller,Throwable";
+   }
+   
+   public void throwing14(@Caller SuperClass caller, @Thrown Throwable thrown)
+   {
+      throwing14 = "SuperClass,Throwable";
+   }
+   
+   public void throwing14(@Thrown Throwable thrown, @Arg boolean arg)
+   {
+      throwing14 = "Throwable,boolean";
+   }
+   
+   public void throwing14(@JoinPoint MethodByMethodInfo joinPointInfo)
+   {
+      Assert.fail("This advice should never be executed");
+   }
+   
+   /* THROWING15 ADVICE */
+   
+   public void throwing15(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Thrown Throwable thrown,
+         @Arg boolean arg)
+   {
+      throwing15="Object,OverloadedAdvicePOJOCaller,Throwable,boolean";
+   }
+   
+   public void throwing15(@Target Object target, @Caller SuperClass caller,
+         @Thrown Throwable thrown, @Arg boolean arg)
+   {
+      throwing15="Object,SuperClass,Throwable,boolean";
+   }
+   
+   public void throwing15(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Thrown Throwable thrown,
+         @Args Object[] args)
+   {
+      throwing15="OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,Throwable,Object[]";
+   }
+   
+   public void throwing15(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Thrown Throwable thrown,
+         @Args Object[] args)
+   {
+      throwing15="OverloadedAdvicePOJO,SuperClass,Throwable,Object[]";
+   }
+   
+   public void throwing15(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Thrown Throwable thrown,
+         @Args Object[] args)
+   {
+      throwing15="Object,OverloadedAdvicePOJOCaller,Throwable,Object[]";
+   }
+   
+   public void throwing15(@Target Object target, @Caller SuperClass caller,
+         @Thrown Throwable thrown, @Args Object[] args)
+   {
+      throwing15="Object,SuperClass,Throwable,Object[]";
+   }
+   
+   public void throwing15(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Thrown Throwable thrown)
+   {
+      throwing15="OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,Throwable";
+   }
+   
+   public void throwing15(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Thrown Throwable thrown)
+   {
+      throwing15="OverloadedAdvicePOJO,SuperClass,Throwable";
+   }
+   
+   public void throwing15(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Thrown Throwable thrown)
+   {
+      throwing15="Object,OverloadedAdvicePOJOCaller,Throwable";
+   }
+   
+   public void throwing15(@Target Object target, @Caller SuperClass caller,
+         @Thrown Throwable thrown)
+   {
+      throwing15="Object,SuperClass,Throwable";
+   }
+   
+   public void throwing15(@Target OverloadedAdvicePOJO target,
+         @Thrown Throwable thrown, @Arg boolean arg)
+   {
+      throwing15="OverloadedAdvicePOJO,Throwable,boolean";
+   }
+   
+   public void throwing15(@Target Object target, @Thrown Throwable thrown,
+         @Arg boolean arg)
+   {
+      throwing15="Object,Throwable,boolean";
+   }
+   
+   public void throwing15(@Target OverloadedAdvicePOJO target,
+         @Thrown Throwable thrown, @Args Object[] args)
+   {
+      throwing15="OverloadedAdvicePOJO,Throwable,Object[]";
+   }
+   
+   public void throwing15(@Target Object target, @Thrown Throwable thrown,
+         @Args Object[] args)
+   {
+      throwing15="Object,Throwable,Object[]";
+   }
+   
+   public void throwing15(@Target OverloadedAdvicePOJO target,
+         @Thrown Throwable thrown)
+   {
+      throwing15="OverloadedAdvicePOJO,Throwable";
+   }
+   
+   public void throwing15(@Target Object target, @Thrown Throwable thrown)
+   {
+      throwing15="Object,Throwable";
+   }
+   
+   public void throwing15(@Caller OverloadedAdvicePOJOCaller caller,
+         @Thrown Throwable thrown, @Arg boolean arg)
+   {
+      throwing15="OverloadedAdvicePOJOCaller,Throwable,boolean";
+   }
+   
+   public void throwing15(@Caller SuperClass caller, @Thrown Throwable thrown,
+         @Arg boolean arg)
+   {
+      throwing15 = "SuperClass,Throwable,boolean";
+   }
+   
+   public void throwing15(@Caller OverloadedAdvicePOJOCaller caller,
+         @Thrown Throwable thrown, @Args Object[] args)
+   {
+      throwing15 = "OverloadedAdvicePOJOCaller,Throwable,Object[]";
+   }
+   
+   public void throwing15(@Caller SuperClass caller, @Thrown Throwable thrown,
+         @Args Object[] args)
+   {
+      throwing15 = "SuperClass,Throwable,Object[]";
+   }
+   
+   public void throwing15(@Caller OverloadedAdvicePOJOCaller caller,
+         @Thrown Throwable thrown)
+   {
+      throwing15 = "OverloadedAdvicePOJOCaller,Throwable";
+   }
+   
+   public void throwing15(@Caller SuperClass caller, @Thrown Throwable thrown)
+   {
+      throwing15 = "SuperClass,Throwable";
+   }
+   
+   public void throwing15(@Thrown Throwable thrown, @Arg boolean arg)
+   {
+      throwing15 = "Throwable,boolean";
+   }
+   
+   public void throwing15(@JoinPoint MethodByMethodInfo joinPointInfo)
+   {
+      Assert.fail("This advice should never be executed");
+   }
+   
+   /* THROWING16 ADVICE */
+   
+   public void throwing16(@Target Object target, @Caller SuperClass caller,
+         @Thrown Throwable thrown, @Arg boolean arg)
+   {
+      throwing16="Object,SuperClass,Throwable,boolean";
+   }
+   
+   public void throwing16(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Thrown Throwable thrown,
+         @Args Object[] args)
+   {
+      throwing16="OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,Throwable,Object[]";
+   }
+   
+   public void throwing16(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Thrown Throwable thrown,
+         @Args Object[] args)
+   {
+      throwing16="OverloadedAdvicePOJO,SuperClass,Throwable,Object[]";
+   }
+   
+   public void throwing16(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Thrown Throwable thrown,
+         @Args Object[] args)
+   {
+      throwing16="Object,OverloadedAdvicePOJOCaller,Throwable,Object[]";
+   }
+   
+   public void throwing16(@Target Object target, @Caller SuperClass caller,
+         @Thrown Throwable thrown, @Args Object[] args)
+   {
+      throwing16="Object,SuperClass,Throwable,Object[]";
+   }
+   
+   public void throwing16(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Thrown Throwable thrown)
+   {
+      throwing16="OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,Throwable";
+   }
+   
+   public void throwing16(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Thrown Throwable thrown)
+   {
+      throwing16="OverloadedAdvicePOJO,SuperClass,Throwable";
+   }
+   
+   public void throwing16(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Thrown Throwable thrown)
+   {
+      throwing16="Object,OverloadedAdvicePOJOCaller,Throwable";
+   }
+   
+   public void throwing16(@Target Object target, @Caller SuperClass caller,
+         @Thrown Throwable thrown)
+   {
+      throwing16="Object,SuperClass,Throwable";
+   }
+   
+   public void throwing16(@Target OverloadedAdvicePOJO target,
+         @Thrown Throwable thrown, @Arg boolean arg)
+   {
+      throwing16="OverloadedAdvicePOJO,Throwable,boolean";
+   }
+   
+   public void throwing16(@Target Object target, @Thrown Throwable thrown,
+         @Arg boolean arg)
+   {
+      throwing16="Object,Throwable,boolean";
+   }
+   
+   public void throwing16(@Target OverloadedAdvicePOJO target,
+         @Thrown Throwable thrown, @Args Object[] args)
+   {
+      throwing16="OverloadedAdvicePOJO,Throwable,Object[]";
+   }
+   
+   public void throwing16(@Target Object target, @Thrown Throwable thrown,
+         @Args Object[] args)
+   {
+      throwing16="Object,Throwable,Object[]";
+   }
+   
+   public void throwing16(@Target OverloadedAdvicePOJO target,
+         @Thrown Throwable thrown)
+   {
+      throwing16="OverloadedAdvicePOJO,Throwable";
+   }
+   
+   public void throwing16(@Target Object target, @Thrown Throwable thrown)
+   {
+      throwing16="Object,Throwable";
+   }
+   
+   public void throwing16(@Caller OverloadedAdvicePOJOCaller caller,
+         @Thrown Throwable thrown, @Arg boolean arg)
+   {
+      throwing16="OverloadedAdvicePOJOCaller,Throwable,boolean";
+   }
+   
+   public void throwing16(@Caller SuperClass caller, @Thrown Throwable thrown,
+         @Arg boolean arg)
+   {
+      throwing16 = "SuperClass,Throwable,boolean";
+   }
+   
+   public void throwing16(@Caller OverloadedAdvicePOJOCaller caller,
+         @Thrown Throwable thrown, @Args Object[] args)
+   {
+      throwing16 = "OverloadedAdvicePOJOCaller,Throwable,Object[]";
+   }
+   
+   public void throwing16(@Caller SuperClass caller, @Thrown Throwable thrown,
+         @Args Object[] args)
+   {
+      throwing16 = "SuperClass,Throwable,Object[]";
+   }
+   
+   public void throwing16(@Caller OverloadedAdvicePOJOCaller caller,
+         @Thrown Throwable thrown)
+   {
+      throwing16 = "OverloadedAdvicePOJOCaller,Throwable";
+   }
+   
+   public void throwing16(@Caller SuperClass caller, @Thrown Throwable thrown)
+   {
+      throwing16 = "SuperClass,Throwable";
+   }
+   
+   public void throwing16(@Thrown Throwable thrown, @Arg boolean arg)
+   {
+      throwing16 = "Throwable,boolean";
+   }
+   
+   public void throwing16(@JoinPoint MethodByMethodInfo joinPointInfo)
+   {
+      Assert.fail("This advice should never be executed");
+   }
+   
+   /* THROWING17 ADVICE */
+   
+   public void throwing17(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Thrown Throwable thrown,
+         @Args Object[] args)
+   {
+      throwing17="OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,Throwable,Object[]";
+   }
+   
+   public void throwing17(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Thrown Throwable thrown,
+         @Args Object[] args)
+   {
+      throwing17="OverloadedAdvicePOJO,SuperClass,Throwable,Object[]";
+   }
+   
+   public void throwing17(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Thrown Throwable thrown,
+         @Args Object[] args)
+   {
+      throwing17="Object,OverloadedAdvicePOJOCaller,Throwable,Object[]";
+   }
+   
+   public void throwing17(@Target Object target, @Caller SuperClass caller,
+         @Thrown Throwable thrown, @Args Object[] args)
+   {
+      throwing17="Object,SuperClass,Throwable,Object[]";
+   }
+   
+   public void throwing17(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Thrown Throwable thrown)
+   {
+      throwing17="OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,Throwable";
+   }
+   
+   public void throwing17(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Thrown Throwable thrown)
+   {
+      throwing17="OverloadedAdvicePOJO,SuperClass,Throwable";
+   }
+   
+   public void throwing17(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Thrown Throwable thrown)
+   {
+      throwing17="Object,OverloadedAdvicePOJOCaller,Throwable";
+   }
+   
+   public void throwing17(@Target Object target, @Caller SuperClass caller,
+         @Thrown Throwable thrown)
+   {
+      throwing17="Object,SuperClass,Throwable";
+   }
+   
+   public void throwing17(@Target OverloadedAdvicePOJO target,
+         @Thrown Throwable thrown, @Arg boolean arg)
+   {
+      throwing17="OverloadedAdvicePOJO,Throwable,boolean";
+   }
+   
+   public void throwing17(@Target Object target, @Thrown Throwable thrown,
+         @Arg boolean arg)
+   {
+      throwing17="Object,Throwable,boolean";
+   }
+   
+   public void throwing17(@Target OverloadedAdvicePOJO target,
+         @Thrown Throwable thrown, @Args Object[] args)
+   {
+      throwing17="OverloadedAdvicePOJO,Throwable,Object[]";
+   }
+   
+   public void throwing17(@Target Object target, @Thrown Throwable thrown,
+         @Args Object[] args)
+   {
+      throwing17="Object,Throwable,Object[]";
+   }
+   
+   public void throwing17(@Target OverloadedAdvicePOJO target,
+         @Thrown Throwable thrown)
+   {
+      throwing17="OverloadedAdvicePOJO,Throwable";
+   }
+   
+   public void throwing17(@Target Object target, @Thrown Throwable thrown)
+   {
+      throwing17="Object,Throwable";
+   }
+   
+   public void throwing17(@Caller OverloadedAdvicePOJOCaller caller,
+         @Thrown Throwable thrown, @Arg boolean arg)
+   {
+      throwing17="OverloadedAdvicePOJOCaller,Throwable,boolean";
+   }
+   
+   public void throwing17(@Caller SuperClass caller, @Thrown Throwable thrown,
+         @Arg boolean arg)
+   {
+      throwing17 = "SuperClass,Throwable,boolean";
+   }
+   
+   public void throwing17(@Caller OverloadedAdvicePOJOCaller caller,
+         @Thrown Throwable thrown, @Args Object[] args)
+   {
+      throwing17 = "OverloadedAdvicePOJOCaller,Throwable,Object[]";
+   }
+   
+   public void throwing17(@Caller SuperClass caller, @Thrown Throwable thrown,
+         @Args Object[] args)
+   {
+      throwing17 = "SuperClass,Throwable,Object[]";
+   }
+   
+   public void throwing17(@Caller OverloadedAdvicePOJOCaller caller,
+         @Thrown Throwable thrown)
+   {
+      throwing17 = "OverloadedAdvicePOJOCaller,Throwable";
+   }
+   
+   public void throwing17(@Caller SuperClass caller, @Thrown Throwable thrown)
+   {
+      throwing17 = "SuperClass,Throwable";
+   }
+   
+   public void throwing17(@Thrown Throwable thrown, @Arg boolean arg)
+   {
+      throwing17 = "Throwable,boolean";
+   }
+   
+   public void throwing17(@JoinPoint MethodByMethodInfo joinPointInfo)
+   {
+      Assert.fail("This advice should never be executed");
+   }
+   
+   /* THROWING18 ADVICE */
+   
+   public void throwing18(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Thrown Throwable thrown, @Args Object[] args)
+   {
+      throwing18="OverloadedAdvicePOJO,SuperClass,Throwable,Object[]";
+   }
+   
+   public void throwing18(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Thrown Throwable thrown,
+         @Args Object[] args)
+   {
+      throwing18="Object,OverloadedAdvicePOJOCaller,Throwable,Object[]";
+   }
+   
+   public void throwing18(@Target Object target, @Caller SuperClass caller,
+         @Thrown Throwable thrown, @Args Object[] args)
+   {
+      throwing18="Object,SuperClass,Throwable,Object[]";
+   }
+   
+   public void throwing18(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Thrown Throwable thrown)
+   {
+      throwing18="OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,Throwable";
+   }
+   
+   public void throwing18(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Thrown Throwable thrown)
+   {
+      throwing18="OverloadedAdvicePOJO,SuperClass,Throwable";
+   }
+   
+   public void throwing18(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Thrown Throwable thrown)
+   {
+      throwing18="Object,OverloadedAdvicePOJOCaller,Throwable";
+   }
+   
+   public void throwing18(@Target Object target, @Caller SuperClass caller,
+         @Thrown Throwable thrown)
+   {
+      throwing18="Object,SuperClass,Throwable";
+   }
+   
+   public void throwing18(@Target OverloadedAdvicePOJO target,
+         @Thrown Throwable thrown, @Arg boolean arg)
+   {
+      throwing18="OverloadedAdvicePOJO,Throwable,boolean";
+   }
+   
+   public void throwing18(@Target Object target, @Thrown Throwable thrown,
+         @Arg boolean arg)
+   {
+      throwing18="Object,Throwable,boolean";
+   }
+   
+   public void throwing18(@Target OverloadedAdvicePOJO target,
+         @Thrown Throwable thrown, @Args Object[] args)
+   {
+      throwing18="OverloadedAdvicePOJO,Throwable,Object[]";
+   }
+   
+   public void throwing18(@Target Object target, @Thrown Throwable thrown,
+         @Args Object[] args)
+   {
+      throwing18="Object,Throwable,Object[]";
+   }
+   
+   public void throwing18(@Target OverloadedAdvicePOJO target,
+         @Thrown Throwable thrown)
+   {
+      throwing18="OverloadedAdvicePOJO,Throwable";
+   }
+   
+   public void throwing18(@Target Object target, @Thrown Throwable thrown)
+   {
+      throwing18="Object,Throwable";
+   }
+   
+   public void throwing18(@Caller OverloadedAdvicePOJOCaller caller,
+         @Thrown Throwable thrown, @Arg boolean arg)
+   {
+      throwing18="OverloadedAdvicePOJOCaller,Throwable,boolean";
+   }
+   
+   public void throwing18(@Caller SuperClass caller, @Thrown Throwable thrown,
+         @Arg boolean arg)
+   {
+      throwing18 = "SuperClass,Throwable,boolean";
+   }
+   
+   public void throwing18(@Caller OverloadedAdvicePOJOCaller caller,
+         @Thrown Throwable thrown, @Args Object[] args)
+   {
+      throwing18 = "OverloadedAdvicePOJOCaller,Throwable,Object[]";
+   }
+   
+   public void throwing18(@Caller SuperClass caller, @Thrown Throwable thrown,
+         @Args Object[] args)
+   {
+      throwing18 = "SuperClass,Throwable,Object[]";
+   }
+   
+   public void throwing18(@Caller OverloadedAdvicePOJOCaller caller,
+         @Thrown Throwable thrown)
+   {
+      throwing18 = "OverloadedAdvicePOJOCaller,Throwable";
+   }
+   
+   public void throwing18(@Caller SuperClass caller, @Thrown Throwable thrown)
+   {
+      throwing18 = "SuperClass,Throwable";
+   }
+   
+   public void throwing18(@Thrown Throwable thrown, @Arg boolean arg)
+   {
+      throwing18 = "Throwable,boolean";
+   }
+   
+   public void throwing18(@JoinPoint MethodByMethodInfo joinPointInfo)
+   {
+      Assert.fail("This advice should never be executed");
+   }
+   
+   /* THROWING19 ADVICE */
+   
+   public void throwing19(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Thrown Throwable thrown,
+         @Args Object[] args)
+   {
+      throwing19="Object,OverloadedAdvicePOJOCaller,Throwable,Object[]";
+   }
+   
+   public void throwing19(@Target Object target, @Caller SuperClass caller,
+         @Thrown Throwable thrown, @Args Object[] args)
+   {
+      throwing19="Object,SuperClass,Throwable,Object[]";
+   }
+   
+   public void throwing19(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Thrown Throwable thrown)
+   {
+      throwing19="OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,Throwable";
+   }
+   
+   public void throwing19(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Thrown Throwable thrown)
+   {
+      throwing19="OverloadedAdvicePOJO,SuperClass,Throwable";
+   }
+   
+   public void throwing19(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Thrown Throwable thrown)
+   {
+      throwing19="Object,OverloadedAdvicePOJOCaller,Throwable";
+   }
+   
+   public void throwing19(@Target Object target, @Caller SuperClass caller,
+         @Thrown Throwable thrown)
+   {
+      throwing19="Object,SuperClass,Throwable";
+   }
+   
+   public void throwing19(@Target OverloadedAdvicePOJO target,
+         @Thrown Throwable thrown, @Arg boolean arg)
+   {
+      throwing19="OverloadedAdvicePOJO,Throwable,boolean";
+   }
+   
+   public void throwing19(@Target Object target, @Thrown Throwable thrown,
+         @Arg boolean arg)
+   {
+      throwing19="Object,Throwable,boolean";
+   }
+   
+   public void throwing19(@Target OverloadedAdvicePOJO target,
+         @Thrown Throwable thrown, @Args Object[] args)
+   {
+      throwing19="OverloadedAdvicePOJO,Throwable,Object[]";
+   }
+   
+   public void throwing19(@Target Object target, @Thrown Throwable thrown,
+         @Args Object[] args)
+   {
+      throwing19="Object,Throwable,Object[]";
+   }
+   
+   public void throwing19(@Target OverloadedAdvicePOJO target,
+         @Thrown Throwable thrown)
+   {
+      throwing19="OverloadedAdvicePOJO,Throwable";
+   }
+   
+   public void throwing19(@Target Object target, @Thrown Throwable thrown)
+   {
+      throwing19="Object,Throwable";
+   }
+   
+   public void throwing19(@Caller OverloadedAdvicePOJOCaller caller,
+         @Thrown Throwable thrown, @Arg boolean arg)
+   {
+      throwing19="OverloadedAdvicePOJOCaller,Throwable,boolean";
+   }
+   
+   public void throwing19(@Caller SuperClass caller, @Thrown Throwable thrown,
+         @Arg boolean arg)
+   {
+      throwing19 = "SuperClass,Throwable,boolean";
+   }
+   
+   public void throwing19(@Caller OverloadedAdvicePOJOCaller caller,
+         @Thrown Throwable thrown, @Args Object[] args)
+   {
+      throwing19 = "OverloadedAdvicePOJOCaller,Throwable,Object[]";
+   }
+   
+   public void throwing19(@Caller SuperClass caller, @Thrown Throwable thrown,
+         @Args Object[] args)
+   {
+      throwing19 = "SuperClass,Throwable,Object[]";
+   }
+   
+   public void throwing19(@Caller OverloadedAdvicePOJOCaller caller,
+         @Thrown Throwable thrown)
+   {
+      throwing19 = "OverloadedAdvicePOJOCaller,Throwable";
+   }
+   
+   public void throwing19(@Caller SuperClass caller, @Thrown Throwable thrown)
+   {
+      throwing19 = "SuperClass,Throwable";
+   }
+   
+   public void throwing19(@Thrown Throwable thrown, @Arg boolean arg)
+   {
+      throwing19 = "Throwable,boolean";
+   }
+   
+   public void throwing19(@JoinPoint MethodByMethodInfo joinPointInfo)
+   {
+      Assert.fail("This advice should never be executed");
+   }
+   
+   /* THROWING20 ADVICE */
+   
+   public void throwing20(@Target Object target, @Caller SuperClass caller,
+         @Thrown Throwable thrown, @Args Object[] args)
+   {
+      throwing20="Object,SuperClass,Throwable,Object[]";
+   }
+   
+   public void throwing20(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Thrown Throwable thrown)
+   {
+      throwing20="OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,Throwable";
+   }
+   
+   public void throwing20(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Thrown Throwable thrown)
+   {
+      throwing20="OverloadedAdvicePOJO,SuperClass,Throwable";
+   }
+   
+   public void throwing20(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Thrown Throwable thrown)
+   {
+      throwing20="Object,OverloadedAdvicePOJOCaller,Throwable";
+   }
+   
+   public void throwing20(@Target Object target, @Caller SuperClass caller,
+         @Thrown Throwable thrown)
+   {
+      throwing20="Object,SuperClass,Throwable";
+   }
+   
+   public void throwing20(@Target OverloadedAdvicePOJO target,
+         @Thrown Throwable thrown, @Arg boolean arg)
+   {
+      throwing20="OverloadedAdvicePOJO,Throwable,boolean";
+   }
+   
+   public void throwing20(@Target Object target, @Thrown Throwable thrown,
+         @Arg boolean arg)
+   {
+      throwing20="Object,Throwable,boolean";
+   }
+   
+   public void throwing20(@Target OverloadedAdvicePOJO target,
+         @Thrown Throwable thrown, @Args Object[] args)
+   {
+      throwing20="OverloadedAdvicePOJO,Throwable,Object[]";
+   }
+   
+   public void throwing20(@Target Object target, @Thrown Throwable thrown,
+         @Args Object[] args)
+   {
+      throwing20="Object,Throwable,Object[]";
+   }
+   
+   public void throwing20(@Target OverloadedAdvicePOJO target,
+         @Thrown Throwable thrown)
+   {
+      throwing20="OverloadedAdvicePOJO,Throwable";
+   }
+   
+   public void throwing20(@Target Object target, @Thrown Throwable thrown)
+   {
+      throwing20="Object,Throwable";
+   }
+   
+   public void throwing20(@Caller OverloadedAdvicePOJOCaller caller,
+         @Thrown Throwable thrown, @Arg boolean arg)
+   {
+      throwing20="OverloadedAdvicePOJOCaller,Throwable,boolean";
+   }
+   
+   public void throwing20(@Caller SuperClass caller, @Thrown Throwable thrown,
+         @Arg boolean arg)
+   {
+      throwing20 = "SuperClass,Throwable,boolean";
+   }
+   
+   public void throwing20(@Caller OverloadedAdvicePOJOCaller caller,
+         @Thrown Throwable thrown, @Args Object[] args)
+   {
+      throwing20 = "OverloadedAdvicePOJOCaller,Throwable,Object[]";
+   }
+   
+   public void throwing20(@Caller SuperClass caller, @Thrown Throwable thrown,
+         @Args Object[] args)
+   {
+      throwing20 = "SuperClass,Throwable,Object[]";
+   }
+   
+   public void throwing20(@Caller OverloadedAdvicePOJOCaller caller,
+         @Thrown Throwable thrown)
+   {
+      throwing20 = "OverloadedAdvicePOJOCaller,Throwable";
+   }
+   
+   public void throwing20(@Caller SuperClass caller, @Thrown Throwable thrown)
+   {
+      throwing20 = "SuperClass,Throwable";
+   }
+   
+   public void throwing20(@Thrown Throwable thrown, @Arg boolean arg)
+   {
+      throwing20 = "Throwable,boolean";
+   }
+   
+   public void throwing20(@JoinPoint MethodByMethodInfo joinPointInfo)
+   {
+      Assert.fail("This advice should never be executed");
+   }
+   
+   /* THROWING21 ADVICE */
+   
+   public void throwing21(@Target OverloadedAdvicePOJO target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Thrown Throwable thrown)
+   {
+      throwing21="OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,Throwable";
+   }
+   
+   public void throwing21(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Thrown Throwable thrown)
+   {
+      throwing21="OverloadedAdvicePOJO,SuperClass,Throwable";
+   }
+   
+   public void throwing21(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Thrown Throwable thrown)
+   {
+      throwing21="Object,OverloadedAdvicePOJOCaller,Throwable";
+   }
+   
+   public void throwing21(@Target Object target, @Caller SuperClass caller,
+         @Thrown Throwable thrown)
+   {
+      throwing21="Object,SuperClass,Throwable";
+   }
+   
+   public void throwing21(@Target OverloadedAdvicePOJO target,
+         @Thrown Throwable thrown, @Arg boolean arg)
+   {
+      throwing21="OverloadedAdvicePOJO,Throwable,boolean";
+   }
+   
+   public void throwing21(@Target Object target, @Thrown Throwable thrown,
+         @Arg boolean arg)
+   {
+      throwing21="Object,Throwable,boolean";
+   }
+   
+   public void throwing21(@Target OverloadedAdvicePOJO target,
+         @Thrown Throwable thrown, @Args Object[] args)
+   {
+      throwing21="OverloadedAdvicePOJO,Throwable,Object[]";
+   }
+   
+   public void throwing21(@Target Object target, @Thrown Throwable thrown,
+         @Args Object[] args)
+   {
+      throwing21="Object,Throwable,Object[]";
+   }
+   
+   public void throwing21(@Target OverloadedAdvicePOJO target,
+         @Thrown Throwable thrown)
+   {
+      throwing21="OverloadedAdvicePOJO,Throwable";
+   }
+   
+   public void throwing21(@Target Object target, @Thrown Throwable thrown)
+   {
+      throwing21="Object,Throwable";
+   }
+   
+   public void throwing21(@Caller OverloadedAdvicePOJOCaller caller,
+         @Thrown Throwable thrown, @Arg boolean arg)
+   {
+      throwing21="OverloadedAdvicePOJOCaller,Throwable,boolean";
+   }
+   
+   public void throwing21(@Caller SuperClass caller, @Thrown Throwable thrown,
+         @Arg boolean arg)
+   {
+      throwing21 = "SuperClass,Throwable,boolean";
+   }
+   
+   public void throwing21(@Caller OverloadedAdvicePOJOCaller caller,
+         @Thrown Throwable thrown, @Args Object[] args)
+   {
+      throwing21 = "OverloadedAdvicePOJOCaller,Throwable,Object[]";
+   }
+   
+   public void throwing21(@Caller SuperClass caller, @Thrown Throwable thrown,
+         @Args Object[] args)
+   {
+      throwing21 = "SuperClass,Throwable,Object[]";
+   }
+   
+   public void throwing21(@Caller OverloadedAdvicePOJOCaller caller,
+         @Thrown Throwable thrown)
+   {
+      throwing21 = "OverloadedAdvicePOJOCaller,Throwable";
+   }
+   
+   public void throwing21(@Caller SuperClass caller, @Thrown Throwable thrown)
+   {
+      throwing21 = "SuperClass,Throwable";
+   }
+   
+   public void throwing21(@Thrown Throwable thrown, @Arg boolean arg)
+   {
+      throwing21 = "Throwable,boolean";
+   }
+   
+   public void throwing21(@JoinPoint MethodByMethodInfo joinPointInfo)
+   {
+      Assert.fail("This advice should never be executed");
+   }
+   
+   /* THROWING22 ADVICE */
+   
+   public void throwing22(@Target OverloadedAdvicePOJO target,
+         @Caller SuperClass caller, @Thrown Throwable thrown)
+   {
+      throwing22="OverloadedAdvicePOJO,SuperClass,Throwable";
+   }
+   
+   public void throwing22(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Thrown Throwable thrown)
+   {
+      throwing22="Object,OverloadedAdvicePOJOCaller,Throwable";
+   }
+   
+   public void throwing22(@Target Object target, @Caller SuperClass caller,
+         @Thrown Throwable thrown)
+   {
+      throwing22="Object,SuperClass,Throwable";
+   }
+   
+   public void throwing22(@Target OverloadedAdvicePOJO target,
+         @Thrown Throwable thrown, @Arg boolean arg)
+   {
+      throwing22="OverloadedAdvicePOJO,Throwable,boolean";
+   }
+   
+   public void throwing22(@Target Object target, @Thrown Throwable thrown,
+         @Arg boolean arg)
+   {
+      throwing22="Object,Throwable,boolean";
+   }
+   
+   public void throwing22(@Target OverloadedAdvicePOJO target,
+         @Thrown Throwable thrown, @Args Object[] args)
+   {
+      throwing22="OverloadedAdvicePOJO,Throwable,Object[]";
+   }
+   
+   public void throwing22(@Target Object target, @Thrown Throwable thrown,
+         @Args Object[] args)
+   {
+      throwing22="Object,Throwable,Object[]";
+   }
+   
+   public void throwing22(@Target OverloadedAdvicePOJO target,
+         @Thrown Throwable thrown)
+   {
+      throwing22="OverloadedAdvicePOJO,Throwable";
+   }
+   
+   public void throwing22(@Target Object target, @Thrown Throwable thrown)
+   {
+      throwing22="Object,Throwable";
+   }
+   
+   public void throwing22(@Caller OverloadedAdvicePOJOCaller caller,
+         @Thrown Throwable thrown, @Arg boolean arg)
+   {
+      throwing22="OverloadedAdvicePOJOCaller,Throwable,boolean";
+   }
+   
+   public void throwing22(@Caller SuperClass caller, @Thrown Throwable thrown,
+         @Arg boolean arg)
+   {
+      throwing22 = "SuperClass,Throwable,boolean";
+   }
+   
+   public void throwing22(@Caller OverloadedAdvicePOJOCaller caller,
+         @Thrown Throwable thrown, @Args Object[] args)
+   {
+      throwing22 = "OverloadedAdvicePOJOCaller,Throwable,Object[]";
+   }
+   
+   public void throwing22(@Caller SuperClass caller, @Thrown Throwable thrown,
+         @Args Object[] args)
+   {
+      throwing22 = "SuperClass,Throwable,Object[]";
+   }
+   
+   public void throwing22(@Caller OverloadedAdvicePOJOCaller caller,
+         @Thrown Throwable thrown)
+   {
+      throwing22 = "OverloadedAdvicePOJOCaller,Throwable";
+   }
+   
+   public void throwing22(@Caller SuperClass caller, @Thrown Throwable thrown)
+   {
+      throwing22 = "SuperClass,Throwable";
+   }
+   
+   public void throwing22(@Thrown Throwable thrown, @Arg boolean arg)
+   {
+      throwing22 = "Throwable,boolean";
+   }
+   
+   public void throwing22(@JoinPoint MethodByMethodInfo joinPointInfo)
+   {
+      Assert.fail("This advice should never be executed");
+   }
+   
+   /* THROWING23 ADVICE */
+   
+   public void throwing23(@Target Object target,
+         @Caller OverloadedAdvicePOJOCaller caller, @Thrown Throwable thrown)
+   {
+      throwing23="Object,OverloadedAdvicePOJOCaller,Throwable";
+   }
+   
+   public void throwing23(@Target Object target, @Caller SuperClass caller,
+         @Thrown Throwable thrown)
+   {
+      throwing23="Object,SuperClass,Throwable";
+   }
+   
+   public void throwing23(@Target OverloadedAdvicePOJO target,
+         @Thrown Throwable thrown, @Arg boolean arg)
+   {
+      throwing23="OverloadedAdvicePOJO,Throwable,boolean";
+   }
+   
+   public void throwing23(@Target Object target, @Thrown Throwable thrown,
+         @Arg boolean arg)
+   {
+      throwing23="Object,Throwable,boolean";
+   }
+   
+   public void throwing23(@Target OverloadedAdvicePOJO target,
+         @Thrown Throwable thrown, @Args Object[] args)
+   {
+      throwing23="OverloadedAdvicePOJO,Throwable,Object[]";
+   }
+   
+   public void throwing23(@Target Object target, @Thrown Throwable thrown,
+         @Args Object[] args)
+   {
+      throwing23="Object,Throwable,Object[]";
+   }
+   
+   public void throwing23(@Target OverloadedAdvicePOJO target,
+         @Thrown Throwable thrown)
+   {
+      throwing23="OverloadedAdvicePOJO,Throwable";
+   }
+   
+   public void throwing23(@Target Object target, @Thrown Throwable thrown)
+   {
+      throwing23="Object,Throwable";
+   }
+   
+   public void throwing23(@Caller OverloadedAdvicePOJOCaller caller,
+         @Thrown Throwable thrown, @Arg boolean arg)
+   {
+      throwing23="OverloadedAdvicePOJOCaller,Throwable,boolean";
+   }
+   
+   public void throwing23(@Caller SuperClass caller, @Thrown Throwable thrown,
+         @Arg boolean arg)
+   {
+      throwing23 = "SuperClass,Throwable,boolean";
+   }
+   
+   public void throwing23(@Caller OverloadedAdvicePOJOCaller caller,
+         @Thrown Throwable thrown, @Args Object[] args)
+   {
+      throwing23 = "OverloadedAdvicePOJOCaller,Throwable,Object[]";
+   }
+   
+   public void throwing23(@Caller SuperClass caller, @Thrown Throwable thrown,
+         @Args Object[] args)
+   {
+      throwing23 = "SuperClass,Throwable,Object[]";
+   }
+   
+   public void throwing23(@Caller OverloadedAdvicePOJOCaller caller,
+         @Thrown Throwable thrown)
+   {
+      throwing23 = "OverloadedAdvicePOJOCaller,Throwable";
+   }
+   
+   public void throwing23(@Caller SuperClass caller, @Thrown Throwable thrown)
+   {
+      throwing23 = "SuperClass,Throwable";
+   }
+   
+   public void throwing23(@Thrown Throwable thrown, @Arg boolean arg)
+   {
+      throwing23 = "Throwable,boolean";
+   }
+   
+   public void throwing23(@JoinPoint MethodByMethodInfo joinPointInfo)
+   {
+      Assert.fail("This advice should never be executed");
+   }
+   
+   /* THROWING24 ADVICE */
+   
+   public void throwing24(@Target Object target, @Caller SuperClass caller,
+         @Thrown Throwable thrown)
+   {
+      throwing24="Object,SuperClass,Throwable";
+   }
+   
+   public void throwing24(@Target OverloadedAdvicePOJO target,
+         @Thrown Throwable thrown, @Arg boolean arg)
+   {
+      throwing24="OverloadedAdvicePOJO,Throwable,boolean";
+   }
+   
+   public void throwing24(@Target Object target, @Thrown Throwable thrown,
+         @Arg boolean arg)
+   {
+      throwing24="Object,Throwable,boolean";
+   }
+   
+   public void throwing24(@Target OverloadedAdvicePOJO target,
+         @Thrown Throwable thrown, @Args Object[] args)
+   {
+      throwing24="OverloadedAdvicePOJO,Throwable,Object[]";
+   }
+   
+   public void throwing24(@Target Object target, @Thrown Throwable thrown,
+         @Args Object[] args)
+   {
+      throwing24="Object,Throwable,Object[]";
+   }
+   
+   public void throwing24(@Target OverloadedAdvicePOJO target,
+         @Thrown Throwable thrown)
+   {
+      throwing24="OverloadedAdvicePOJO,Throwable";
+   }
+   
+   public void throwing24(@Target Object target, @Thrown Throwable thrown)
+   {
+      throwing24="Object,Throwable";
+   }
+   
+   public void throwing24(@Caller OverloadedAdvicePOJOCaller caller,
+         @Thrown Throwable thrown, @Arg boolean arg)
+   {
+      throwing24="OverloadedAdvicePOJOCaller,Throwable,boolean";
+   }
+   
+   public void throwing24(@Caller SuperClass caller, @Thrown Throwable thrown,
+         @Arg boolean arg)
+   {
+      throwing24 = "SuperClass,Throwable,boolean";
+   }
+   
+   public void throwing24(@Caller OverloadedAdvicePOJOCaller caller,
+         @Thrown Throwable thrown, @Args Object[] args)
+   {
+      throwing24 = "OverloadedAdvicePOJOCaller,Throwable,Object[]";
+   }
+   
+   public void throwing24(@Caller SuperClass caller, @Thrown Throwable thrown,
+         @Args Object[] args)
+   {
+      throwing24 = "SuperClass,Throwable,Object[]";
+   }
+   
+   public void throwing24(@Caller OverloadedAdvicePOJOCaller caller,
+         @Thrown Throwable thrown)
+   {
+      throwing24 = "OverloadedAdvicePOJOCaller,Throwable";
+   }
+   
+   public void throwing24(@Caller SuperClass caller, @Thrown Throwable thrown)
+   {
+      throwing24 = "SuperClass,Throwable";
+   }
+   
+   public void throwing24(@Thrown Throwable thrown, @Arg boolean arg)
+   {
+      throwing24 = "Throwable,boolean";
+   }
+   
+   public void throwing24(@JoinPoint MethodByMethodInfo joinPointInfo)
+   {
+      Assert.fail("This advice should never be executed");
+   }
+   
+   /* THROWING25 ADVICE */
+   
+   public void throwing25(@Target OverloadedAdvicePOJO target,
+         @Thrown Throwable thrown, @Arg boolean arg)
+   {
+      throwing25="OverloadedAdvicePOJO,Throwable,boolean";
+   }
+   
+   public void throwing25(@Target Object target, @Thrown Throwable thrown,
+         @Arg boolean arg)
+   {
+      throwing25="Object,Throwable,boolean";
+   }
+   
+   public void throwing25(@Target OverloadedAdvicePOJO target,
+         @Thrown Throwable thrown, @Args Object[] args)
+   {
+      throwing25="OverloadedAdvicePOJO,Throwable,Object[]";
+   }
+   
+   public void throwing25(@Target Object target, @Thrown Throwable thrown,
+         @Args Object[] args)
+   {
+      throwing25="Object,Throwable,Object[]";
+   }
+   
+   public void throwing25(@Target OverloadedAdvicePOJO target,
+         @Thrown Throwable thrown)
+   {
+      throwing25="OverloadedAdvicePOJO,Throwable";
+   }
+   
+   public void throwing25(@Target Object target, @Thrown Throwable thrown)
+   {
+      throwing25="Object,Throwable";
+   }
+   
+   public void throwing25(@Caller OverloadedAdvicePOJOCaller caller,
+         @Thrown Throwable thrown, @Arg boolean arg)
+   {
+      throwing25="OverloadedAdvicePOJOCaller,Throwable,boolean";
+   }
+   
+   public void throwing25(@Caller SuperClass caller, @Thrown Throwable thrown,
+         @Arg boolean arg)
+   {
+      throwing25 = "SuperClass,Throwable,boolean";
+   }
+   
+   public void throwing25(@Caller OverloadedAdvicePOJOCaller caller,
+         @Thrown Throwable thrown, @Args Object[] args)
+   {
+      throwing25 = "OverloadedAdvicePOJOCaller,Throwable,Object[]";
+   }
+   
+   public void throwing25(@Caller SuperClass caller, @Thrown Throwable thrown,
+         @Args Object[] args)
+   {
+      throwing25 = "SuperClass,Throwable,Object[]";
+   }
+   
+   public void throwing25(@Caller OverloadedAdvicePOJOCaller caller,
+         @Thrown Throwable thrown)
+   {
+      throwing25 = "OverloadedAdvicePOJOCaller,Throwable";
+   }
+   
+   public void throwing25(@Caller SuperClass caller, @Thrown Throwable thrown)
+   {
+      throwing25 = "SuperClass,Throwable";
+   }
+   
+   public void throwing25(@Thrown Throwable thrown, @Arg boolean arg)
+   {
+      throwing25 = "Throwable,boolean";
+   }
+   
+   public void throwing25(@JoinPoint MethodByMethodInfo joinPointInfo)
+   {
+      Assert.fail("This advice should never be executed");
+   }
+   
+   /* THROWING26 ADVICE */
+   
+   public void throwing26(@Target Object target, @Thrown Throwable thrown,
+         @Arg boolean arg)
+   {
+      throwing26="Object,Throwable,boolean";
+   }
+   
+   public void throwing26(@Target OverloadedAdvicePOJO target,
+         @Thrown Throwable thrown, @Args Object[] args)
+   {
+      throwing26="OverloadedAdvicePOJO,Throwable,Object[]";
+   }
+   
+   public void throwing26(@Target Object target, @Thrown Throwable thrown,
+         @Args Object[] args)
+   {
+      throwing26="Object,Throwable,Object[]";
+   }
+   
+   public void throwing26(@Target OverloadedAdvicePOJO target,
+         @Thrown Throwable thrown)
+   {
+      throwing26="OverloadedAdvicePOJO,Throwable";
+   }
+   
+   public void throwing26(@Target Object target, @Thrown Throwable thrown)
+   {
+      throwing26="Object,Throwable";
+   }
+   
+   public void throwing26(@Caller OverloadedAdvicePOJOCaller caller,
+         @Thrown Throwable thrown, @Arg boolean arg)
+   {
+      throwing26="OverloadedAdvicePOJOCaller,Throwable,boolean";
+   }
+   
+   public void throwing26(@Caller SuperClass caller, @Thrown Throwable thrown,
+         @Arg boolean arg)
+   {
+      throwing26 = "SuperClass,Throwable,boolean";
+   }
+   
+   public void throwing26(@Caller OverloadedAdvicePOJOCaller caller,
+         @Thrown Throwable thrown, @Args Object[] args)
+   {
+      throwing26 = "OverloadedAdvicePOJOCaller,Throwable,Object[]";
+   }
+   
+   public void throwing26(@Caller SuperClass caller, @Thrown Throwable thrown,
+         @Args Object[] args)
+   {
+      throwing26 = "SuperClass,Throwable,Object[]";
+   }
+   
+   public void throwing26(@Caller OverloadedAdvicePOJOCaller caller,
+         @Thrown Throwable thrown)
+   {
+      throwing26 = "OverloadedAdvicePOJOCaller,Throwable";
+   }
+   
+   public void throwing26(@Caller SuperClass caller, @Thrown Throwable thrown)
+   {
+      throwing26 = "SuperClass,Throwable";
+   }
+   
+   public void throwing26(@Thrown Throwable thrown, @Arg boolean arg)
+   {
+      throwing26 = "Throwable,boolean";
+   }
+   
+   public void throwing26(@JoinPoint MethodByMethodInfo joinPointInfo)
+   {
+      Assert.fail("This advice should never be executed");
+   }
+   
+   /* THROWING27 ADVICE */
+   
+   public void throwing27(@Target OverloadedAdvicePOJO target,
+         @Thrown Throwable thrown, @Args Object[] args)
+   {
+      throwing27="OverloadedAdvicePOJO,Throwable,Object[]";
+   }
+   
+   public void throwing27(@Target Object target, @Thrown Throwable thrown,
+         @Args Object[] args)
+   {
+      throwing27="Object,Throwable,Object[]";
+   }
+   
+   public void throwing27(@Target OverloadedAdvicePOJO target,
+         @Thrown Throwable thrown)
+   {
+      throwing27="OverloadedAdvicePOJO,Throwable";
+   }
+   
+   public void throwing27(@Target Object target, @Thrown Throwable thrown)
+   {
+      throwing27="Object,Throwable";
+   }
+   
+   public void throwing27(@Caller OverloadedAdvicePOJOCaller caller,
+         @Thrown Throwable thrown, @Arg boolean arg)
+   {
+      throwing27="OverloadedAdvicePOJOCaller,Throwable,boolean";
+   }
+   
+   public void throwing27(@Caller SuperClass caller, @Thrown Throwable thrown,
+         @Arg boolean arg)
+   {
+      throwing27 = "SuperClass,Throwable,boolean";
+   }
+   
+   public void throwing27(@Caller OverloadedAdvicePOJOCaller caller,
+         @Thrown Throwable thrown, @Args Object[] args)
+   {
+      throwing27 = "OverloadedAdvicePOJOCaller,Throwable,Object[]";
+   }
+   
+   public void throwing27(@Caller SuperClass caller, @Thrown Throwable thrown,
+         @Args Object[] args)
+   {
+      throwing27 = "SuperClass,Throwable,Object[]";
+   }
+   
+   public void throwing27(@Caller OverloadedAdvicePOJOCaller caller,
+         @Thrown Throwable thrown)
+   {
+      throwing27 = "OverloadedAdvicePOJOCaller,Throwable";
+   }
+   
+   public void throwing27(@Caller SuperClass caller, @Thrown Throwable thrown)
+   {
+      throwing27 = "SuperClass,Throwable";
+   }
+   
+   public void throwing27(@Thrown Throwable thrown, @Arg boolean arg)
+   {
+      throwing27 = "Throwable,boolean";
+   }
+   
+   public void throwing27(@JoinPoint MethodByMethodInfo joinPointInfo)
+   {
+      Assert.fail("This advice should never be executed");
+   }
+   
+   /* THROWING28 ADVICE */
+   
+   public void throwing28(@Target Object target, @Thrown Throwable thrown,
+         @Args Object[] args)
+   {
+      throwing28="Object,Throwable,Object[]";
+   }
+   
+   public void throwing28(@Target OverloadedAdvicePOJO target,
+         @Thrown Throwable thrown)
+   {
+      throwing28="OverloadedAdvicePOJO,Throwable";
+   }
+   
+   public void throwing28(@Target Object target, @Thrown Throwable thrown)
+   {
+      throwing28="Object,Throwable";
+   }
+   
+   public void throwing28(@Caller OverloadedAdvicePOJOCaller caller,
+         @Thrown Throwable thrown, @Arg boolean arg)
+   {
+      throwing28="OverloadedAdvicePOJOCaller,Throwable,boolean";
+   }
+   
+   public void throwing28(@Caller SuperClass caller, @Thrown Throwable thrown,
+         @Arg boolean arg)
+   {
+      throwing28 = "SuperClass,Throwable,boolean";
+   }
+   
+   public void throwing28(@Caller OverloadedAdvicePOJOCaller caller,
+         @Thrown Throwable thrown, @Args Object[] args)
+   {
+      throwing28 = "OverloadedAdvicePOJOCaller,Throwable,Object[]";
+   }
+   
+   public void throwing28(@Caller SuperClass caller, @Thrown Throwable thrown,
+         @Args Object[] args)
+   {
+      throwing28 = "SuperClass,Throwable,Object[]";
+   }
+   
+   public void throwing28(@Caller OverloadedAdvicePOJOCaller caller,
+         @Thrown Throwable thrown)
+   {
+      throwing28 = "OverloadedAdvicePOJOCaller,Throwable";
+   }
+   
+   public void throwing28(@Caller SuperClass caller, @Thrown Throwable thrown)
+   {
+      throwing28 = "SuperClass,Throwable";
+   }
+   
+   public void throwing28(@Thrown Throwable thrown, @Arg boolean arg)
+   {
+      throwing28 = "Throwable,boolean";
+   }
+   
+   public void throwing28(@JoinPoint MethodByMethodInfo joinPointInfo)
+   {
+      Assert.fail("This advice should never be executed");
+   }
+   
+   /* THROWING29 ADVICE */
+   
+   public void throwing29(@Target OverloadedAdvicePOJO target,
+         @Thrown Throwable thrown)
+   {
+      throwing29="OverloadedAdvicePOJO,Throwable";
+   }
+   
+   public void throwing29(@Target Object target, @Thrown Throwable thrown)
+   {
+      throwing29="Object,Throwable";
+   }
+   
+   public void throwing29(@Caller OverloadedAdvicePOJOCaller caller,
+         @Thrown Throwable thrown, @Arg boolean arg)
+   {
+      throwing29="OverloadedAdvicePOJOCaller,Throwable,boolean";
+   }
+   
+   public void throwing29(@Caller SuperClass caller, @Thrown Throwable thrown,
+         @Arg boolean arg)
+   {
+      throwing29 = "SuperClass,Throwable,boolean";
+   }
+   
+   public void throwing29(@Caller OverloadedAdvicePOJOCaller caller,
+         @Thrown Throwable thrown, @Args Object[] args)
+   {
+      throwing29 = "OverloadedAdvicePOJOCaller,Throwable,Object[]";
+   }
+   
+   public void throwing29(@Caller SuperClass caller, @Thrown Throwable thrown,
+         @Args Object[] args)
+   {
+      throwing29 = "SuperClass,Throwable,Object[]";
+   }
+   
+   public void throwing29(@Caller OverloadedAdvicePOJOCaller caller,
+         @Thrown Throwable thrown)
+   {
+      throwing29 = "OverloadedAdvicePOJOCaller,Throwable";
+   }
+   
+   public void throwing29(@Caller SuperClass caller, @Thrown Throwable thrown)
+   {
+      throwing29 = "SuperClass,Throwable";
+   }
+   
+   public void throwing29(@Thrown Throwable thrown, @Arg boolean arg)
+   {
+      throwing29 = "Throwable,boolean";
+   }
+   
+   public void throwing29(@JoinPoint MethodByMethodInfo joinPointInfo)
+   {
+      Assert.fail("This advice should never be executed");
+   }
+   
+   /* THROWING30 ADVICE */
+   
+   public void throwing30(@Target Object target, @Thrown Throwable thrown)
+   {
+      throwing30="Object,Throwable";
+   }
+   
+   public void throwing30(@Caller OverloadedAdvicePOJOCaller caller,
+         @Thrown Throwable thrown, @Arg boolean arg)
+   {
+      throwing30="OverloadedAdvicePOJOCaller,Throwable,boolean";
+   }
+   
+   public void throwing30(@Caller SuperClass caller, @Thrown Throwable thrown,
+         @Arg boolean arg)
+   {
+      throwing30 = "SuperClass,Throwable,boolean";
+   }
+   
+   public void throwing30(@Caller OverloadedAdvicePOJOCaller caller,
+         @Thrown Throwable thrown, @Args Object[] args)
+   {
+      throwing30 = "OverloadedAdvicePOJOCaller,Throwable,Object[]";
+   }
+   
+   public void throwing30(@Caller SuperClass caller, @Thrown Throwable thrown,
+         @Args Object[] args)
+   {
+      throwing30 = "SuperClass,Throwable,Object[]";
+   }
+   
+   public void throwing30(@Caller OverloadedAdvicePOJOCaller caller,
+         @Thrown Throwable thrown)
+   {
+      throwing30 = "OverloadedAdvicePOJOCaller,Throwable";
+   }
+   
+   public void throwing30(@Caller SuperClass caller, @Thrown Throwable thrown)
+   {
+      throwing30 = "SuperClass,Throwable";
+   }
+   
+   public void throwing30(@Thrown Throwable thrown, @Arg boolean arg)
+   {
+      throwing30 = "Throwable,boolean";
+   }
+   
+   public void throwing30(@JoinPoint MethodByMethodInfo joinPointInfo)
+   {
+      Assert.fail("This advice should never be executed");
+   }
+   
+   /* THROWING31 ADVICE */
+   
+   public void throwing31(@Caller OverloadedAdvicePOJOCaller caller,
+         @Thrown Throwable thrown, @Arg boolean arg)
+   {
+      throwing31="OverloadedAdvicePOJOCaller,Throwable,boolean";
+   }
+   
+   public void throwing31(@Caller SuperClass caller, @Thrown Throwable thrown,
+         @Arg boolean arg)
+   {
+      throwing31 = "SuperClass,Throwable,boolean";
+   }
+   
+   public void throwing31(@Caller OverloadedAdvicePOJOCaller caller,
+         @Thrown Throwable thrown, @Args Object[] args)
+   {
+      throwing31 = "OverloadedAdvicePOJOCaller,Throwable,Object[]";
+   }
+   
+   public void throwing31(@Caller SuperClass caller, @Thrown Throwable thrown,
+         @Args Object[] args)
+   {
+      throwing31 = "SuperClass,Throwable,Object[]";
+   }
+   
+   public void throwing31(@Caller OverloadedAdvicePOJOCaller caller,
+         @Thrown Throwable thrown)
+   {
+      throwing31 = "OverloadedAdvicePOJOCaller,Throwable";
+   }
+   
+   public void throwing31(@Caller SuperClass caller, @Thrown Throwable thrown)
+   {
+      throwing31 = "SuperClass,Throwable";
+   }
+   
+   public void throwing31(@Thrown Throwable thrown, @Arg boolean arg)
+   {
+      throwing31 = "Throwable,boolean";
+   }
+   
+   public void throwing31(@JoinPoint MethodByMethodInfo joinPointInfo)
+   {
+      Assert.fail("This advice should never be executed");
+   }
+   
+   /* THROWING32 ADVICE */
+   
+   public void throwing32(@Caller SuperClass caller, @Thrown Throwable thrown,
+         @Arg boolean arg)
+   {
+      throwing32 = "SuperClass,Throwable,boolean";
+   }
+   
+   public void throwing32(@Caller OverloadedAdvicePOJOCaller caller,
+         @Thrown Throwable thrown, @Args Object[] args)
+   {
+      throwing32 = "OverloadedAdvicePOJOCaller,Throwable,Object[]";
+   }
+   
+   public void throwing32(@Caller SuperClass caller, @Thrown Throwable thrown,
+         @Args Object[] args)
+   {
+      throwing32 = "SuperClass,Throwable,Object[]";
+   }
+   
+   public void throwing32(@Caller OverloadedAdvicePOJOCaller caller,
+         @Thrown Throwable thrown)
+   {
+      throwing32 = "OverloadedAdvicePOJOCaller,Throwable";
+   }
+   
+   public void throwing32(@Caller SuperClass caller, @Thrown Throwable thrown)
+   {
+      throwing32 = "SuperClass,Throwable";
+   }
+   
+   public void throwing32(@Thrown Throwable thrown, @Arg boolean arg)
+   {
+      throwing32 = "Throwable,boolean";
+   }
+   
+   public void throwing32(@JoinPoint MethodByMethodInfo joinPointInfo)
+   {
+      Assert.fail("This advice should never be executed");
+   }
+   
+   /* THROWING33 ADVICE */
+   
+   public void throwing33(@Caller OverloadedAdvicePOJOCaller caller,
+         @Thrown Throwable thrown, @Args Object[] args)
+   {
+      throwing33 = "OverloadedAdvicePOJOCaller,Throwable,Object[]";
+   }
+   
+   public void throwing33(@Caller SuperClass caller, @Thrown Throwable thrown,
+         @Args Object[] args)
+   {
+      throwing33 = "SuperClass,Throwable,Object[]";
+   }
+   
+   public void throwing33(@Caller OverloadedAdvicePOJOCaller caller,
+         @Thrown Throwable thrown)
+   {
+      throwing33 = "OverloadedAdvicePOJOCaller,Throwable";
+   }
+   
+   public void throwing33(@Caller SuperClass caller, @Thrown Throwable thrown)
+   {
+      throwing33 = "SuperClass,Throwable";
+   }
+   
+   public void throwing33(@Thrown Throwable thrown, @Arg boolean arg)
+   {
+      throwing33 = "Throwable,boolean";
+   }
+   
+   public void throwing33(@JoinPoint MethodByMethodInfo joinPointInfo)
+   {
+      Assert.fail("This advice should never be executed");
+   }
+   
+   /* THROWING34 ADVICE */
+   
+   public void throwing34(@Caller SuperClass caller, @Thrown Throwable thrown,
+         @Args Object[] args)
+   {
+      throwing34 = "SuperClass,Throwable,Object[]";
+   }
+   
+   public void throwing34(@Caller OverloadedAdvicePOJOCaller caller,
+         @Thrown Throwable thrown)
+   {
+      throwing34 = "OverloadedAdvicePOJOCaller,Throwable";
+   }
+   
+   public void throwing34(@Caller SuperClass caller, @Thrown Throwable thrown)
+   {
+      throwing34 = "SuperClass,Throwable";
+   }
+   
+   public void throwing34(@Thrown Throwable thrown, @Arg boolean arg)
+   {
+      throwing34 = "Throwable,boolean";
+   }
+   
+   public void throwing34(@JoinPoint MethodByMethodInfo joinPointInfo)
+   {
+      Assert.fail("This advice should never be executed");
+   }
+   
+   /* THROWING35 ADVICE */
+   
+   public void throwing35(@Caller OverloadedAdvicePOJOCaller caller,
+         @Thrown Throwable thrown)
+   {
+      throwing35 = "OverloadedAdvicePOJOCaller,Throwable";
+   }
+   
+   public void throwing35(@Caller SuperClass caller, @Thrown Throwable thrown)
+   {
+      throwing35 = "SuperClass,Throwable";
+   }
+   
+   public void throwing35(@Thrown Throwable thrown, @Arg boolean arg)
+   {
+      throwing35 = "Throwable,boolean";
+   }
+   
+   public void throwing35(@JoinPoint MethodByMethodInfo joinPointInfo)
+   {
+      Assert.fail("This advice should never be executed");
+   }
+   
+   /* THROWING36 ADVICE */
+   
+   public void throwing36(@Caller SuperClass caller, @Thrown Throwable thrown)
+   {
+      throwing36 = "SuperClass,Throwable";
+   }
+   
+   public void throwing36(@Thrown Throwable thrown, @Arg boolean arg)
+   {
+      throwing36 = "Throwable,boolean";
+   }
+   
+   public void throwing36(@JoinPoint MethodByMethodInfo joinPointInfo)
+   {
+      Assert.fail("This advice should never be executed");
+   }
+   
+   /* THROWING37 ADVICE */
+   
+   public void throwing37(@Thrown Throwable thrown, @Arg boolean arg)
+   {
+      throwing37 = "Throwable,boolean";
+   }
+   
+   public void throwing37(@JoinPoint MethodByMethodInfo joinPointInfo)
+   {
+      Assert.fail("This advice should never be executed");
+   }
+}
\ No newline at end of file




More information about the jboss-cvs-commits mailing list