mirror of
https://github.com/eclipse-aspectj/aspectj.git
synced 2024-08-15 02:13:50 +02:00
269 lines
13 KiB
Java
269 lines
13 KiB
Java
import symbols.Helper;
|
|
import org.aspectj.testing.Tester;
|
|
|
|
import org.aspectj.tools.ide.SymbolManager;
|
|
import org.aspectj.tools.ide.SourceLine;
|
|
import org.aspectj.tools.ide.Declaration;
|
|
|
|
import java.io.File;
|
|
|
|
public class GenericTest {
|
|
private static Helper h = new Helper();
|
|
|
|
public static void main(String[] args) {
|
|
Declaration classDec = h.getDecl("C.java", 3);
|
|
Declaration aspectDec = h.getDecl("A.java", 3);
|
|
|
|
Declaration fieldDecI = h.getDecl("C.java", 13);
|
|
Declaration fieldDecF = h.getDecl("C.java", 14);
|
|
|
|
//Declaration initDecS = h.getDecl("C.java", 22);
|
|
//Declaration initDec = h.getDecl("C.java", 26);
|
|
|
|
Declaration methodDecV = h.getDecl("C.java", 8);
|
|
Declaration methodDecVI = h.getDecl("C.java", 9);
|
|
Declaration methodDecVLF = h.getDecl("C.java",10);
|
|
Declaration methodDecISO = h.getDecl("C.java",11);
|
|
|
|
Declaration pointcutDecInstOf = h.getDecl("A.java", 6);
|
|
Declaration pointcutDecHasAsp = h.getDecl("A.java", 7);
|
|
Declaration pointcutDecWithin = h.getDecl("A.java", 10);
|
|
Declaration pointcutDecWithinAll = h.getDecl("A.java", 11);
|
|
Declaration pointcutDecWithinCode = h.getDecl("A.java", 12);
|
|
Declaration pointcutDecCFlow = h.getDecl("A.java", 15);
|
|
Declaration pointcutDecCFlowTop = h.getDecl("A.java", 16);
|
|
Declaration pointcutDecCalls = h.getDecl("A.java", 19);
|
|
Declaration pointcutDecRec = h.getDecl("A.java", 20);
|
|
Declaration pointcutDecExec = h.getDecl("A.java", 21);
|
|
Declaration pointcutDecCallsTo = h.getDecl("A.java", 22);
|
|
Declaration pointcutDecHandThr = h.getDecl("A.java", 25);
|
|
Declaration pointcutDecHandErr = h.getDecl("A.java", 26);
|
|
Declaration pointcutDecHandExc = h.getDecl("A.java", 27);
|
|
Declaration pointcutDecHandRt = h.getDecl("A.java", 28);
|
|
Declaration pointcutDecGets = h.getDecl("A.java", 31);
|
|
Declaration pointcutDecSets = h.getDecl("A.java", 32);
|
|
|
|
Declaration adviceDecBefore = h.getDecl("A.java", 35);
|
|
Declaration adviceDecAfter = h.getDecl("A.java", 36);
|
|
Declaration adviceDecAfterRet = h.getDecl("A.java", 37);
|
|
Declaration adviceDecAfterThr = h.getDecl("A.java", 38);
|
|
Declaration adviceDecAround = h.getDecl("A.java", 41);
|
|
Declaration adviceDecBeforeToString = h.getDecl("A.java", 47);
|
|
Declaration adviceDecBeforeNew = h.getDecl("A.java", 48);
|
|
|
|
|
|
Declaration fieldDecIntrD = h.getDecl("A.java", 44);
|
|
Declaration methodDecIntrV = h.getDecl("A.java", 45);
|
|
|
|
// check we've checking all decs in aspect A and class C
|
|
h.checkAllDecsOf(classDec,new Declaration[]{
|
|
fieldDecI,
|
|
fieldDecF,
|
|
//initDecS,
|
|
//initDec,
|
|
methodDecV,
|
|
methodDecVI,
|
|
methodDecVLF,
|
|
methodDecISO
|
|
});
|
|
h.checkAllDecsOf(aspectDec,new Declaration[]{
|
|
pointcutDecInstOf,
|
|
pointcutDecHasAsp,
|
|
pointcutDecWithin,
|
|
pointcutDecWithinAll,
|
|
pointcutDecWithinCode,
|
|
pointcutDecCFlow,
|
|
pointcutDecCFlowTop,
|
|
pointcutDecCalls,
|
|
pointcutDecRec,
|
|
pointcutDecExec,
|
|
pointcutDecCallsTo,
|
|
pointcutDecHandThr,
|
|
pointcutDecHandErr,
|
|
pointcutDecHandExc,
|
|
pointcutDecHandRt,
|
|
pointcutDecGets,
|
|
pointcutDecSets,
|
|
adviceDecBefore,
|
|
adviceDecAfter,
|
|
adviceDecAfterRet,
|
|
adviceDecAfterThr,
|
|
adviceDecAround,
|
|
adviceDecBeforeToString,
|
|
adviceDecBeforeNew,
|
|
fieldDecIntrD,
|
|
methodDecIntrV
|
|
});
|
|
|
|
if (!h.allDecsFound) return;
|
|
|
|
h.checkPos(classDec, 3, 1,24, 2, "C.java");
|
|
h.checkPos(aspectDec, 3, 1,49, 2, "A.java");
|
|
h.checkPos(fieldDecI, 13, 5,13,34, "C.java");
|
|
h.checkPos(fieldDecF, 14, 5,14,20, "C.java");
|
|
h.checkPos(methodDecV, 8, 5, 8, 21, "C.java");
|
|
h.checkPos(methodDecVI, 9, 5, 9, 34, "C.java");
|
|
h.checkPos(methodDecVLF,10, 5,10, 65, "C.java");
|
|
h.checkPos(methodDecISO,11, 5,11, 74, "C.java");
|
|
h.checkPos(pointcutDecInstOf, 6, 5, 6, 44, "A.java");
|
|
h.checkPos(pointcutDecHasAsp, 7, 5, 7, 42, "A.java");
|
|
h.checkPos(pointcutDecWithin, 10, 5, 10, 36, "A.java");
|
|
h.checkPos(pointcutDecWithinAll, 11, 5, 11, 42, "A.java");
|
|
h.checkPos(pointcutDecWithinCode,12, 5, 12, 55, "A.java");
|
|
h.checkPos(pointcutDecCFlow, 15, 5, 15, 47, "A.java");
|
|
h.checkPos(pointcutDecCFlowTop, 16, 5, 16, 53, "A.java");
|
|
h.checkPos(pointcutDecCalls, 19, 5, 19, 44, "A.java");
|
|
h.checkPos(pointcutDecRec, 20, 5, 20, 54, "A.java");
|
|
h.checkPos(pointcutDecExec, 21, 5, 21, 61, "A.java");
|
|
h.checkPos(pointcutDecCallsTo, 22, 5, 22, 59, "A.java");
|
|
h.checkPos(pointcutDecHandThr, 25, 5, 25, 60, "A.java");
|
|
h.checkPos(pointcutDecHandErr, 26, 5, 26, 56, "A.java");
|
|
h.checkPos(pointcutDecHandExc, 27, 5, 27, 60, "A.java");
|
|
h.checkPos(pointcutDecHandRt, 28, 5, 28, 66, "A.java");
|
|
h.checkPos(pointcutDecGets, 31, 5, 31, 40, "A.java");
|
|
h.checkPos(pointcutDecSets, 32, 5, 32, 40, "A.java");
|
|
h.checkPos(adviceDecBefore, 35, 5, 35, 41, "A.java");
|
|
h.checkPos(adviceDecAfter, 36, 5, 36, 40, "A.java");
|
|
h.checkPos(adviceDecAfterRet, 37, 5, 37, 59, "A.java");
|
|
h.checkPos(adviceDecAfterThr, 38, 5, 40, 6, "A.java");
|
|
h.checkPos(adviceDecAround, 41, 5, 41, 69, "A.java");
|
|
h.checkPos(fieldDecIntrD, 44, 5, 44, 35, "A.java");
|
|
h.checkPos(methodDecIntrV, 45, 5, 45, 47, "A.java");
|
|
|
|
h.checkKind(classDec, "class");
|
|
h.checkKind(aspectDec, "class");
|
|
h.checkKind(fieldDecI, "field");
|
|
h.checkKind(fieldDecF, "field");
|
|
h.checkKind(methodDecV, "method");
|
|
h.checkKind(methodDecVI, "method");
|
|
h.checkKind(methodDecVLF, "method");
|
|
h.checkKind(methodDecISO, "method");
|
|
h.checkKind(pointcutDecInstOf, "pointcut");
|
|
h.checkKind(pointcutDecHasAsp, "pointcut");
|
|
h.checkKind(pointcutDecWithin, "pointcut");
|
|
h.checkKind(pointcutDecWithinAll, "pointcut");
|
|
h.checkKind(pointcutDecWithinCode,"pointcut");
|
|
h.checkKind(pointcutDecCFlow, "pointcut");
|
|
h.checkKind(pointcutDecCFlowTop, "pointcut");
|
|
h.checkKind(pointcutDecCalls, "pointcut");
|
|
h.checkKind(pointcutDecRec, "pointcut");
|
|
h.checkKind(pointcutDecExec, "pointcut");
|
|
h.checkKind(pointcutDecCallsTo, "pointcut");
|
|
h.checkKind(pointcutDecHandThr, "pointcut");
|
|
h.checkKind(pointcutDecHandErr, "pointcut");
|
|
h.checkKind(pointcutDecHandExc, "pointcut");
|
|
h.checkKind(pointcutDecHandRt, "pointcut");
|
|
h.checkKind(pointcutDecGets, "pointcut");
|
|
h.checkKind(pointcutDecSets, "pointcut");
|
|
h.checkKind(adviceDecBefore, "advice");
|
|
h.checkKind(adviceDecAfter, "advice");
|
|
h.checkKind(adviceDecAfterRet, "advice");
|
|
h.checkKind(adviceDecAfterThr, "advice");
|
|
h.checkKind(adviceDecAround, "advice");
|
|
h.checkKind(fieldDecIntrD, "introduction");
|
|
h.checkKind(methodDecIntrV, "introduction");
|
|
|
|
h.checkFormalComment(classDec, "");
|
|
h.checkFormalComment(aspectDec, "");
|
|
h.checkFormalComment(fieldDecI, "");
|
|
h.checkFormalComment(fieldDecF, "");
|
|
h.checkFormalComment(methodDecV, "/**\n * multiline\n * comment\n */");
|
|
h.checkFormalComment(methodDecVI, "");
|
|
h.checkFormalComment(methodDecVLF, "");
|
|
h.checkFormalComment(methodDecISO, "");
|
|
h.checkFormalComment(pointcutDecInstOf, "/** objects */");
|
|
h.checkFormalComment(pointcutDecHasAsp, "");
|
|
h.checkFormalComment(pointcutDecWithin, "/** lexical extents */");
|
|
h.checkFormalComment(pointcutDecWithinAll, "");
|
|
h.checkFormalComment(pointcutDecWithinCode,"");
|
|
h.checkFormalComment(pointcutDecCFlow, "/** control flow */");
|
|
h.checkFormalComment(pointcutDecCFlowTop, "");
|
|
h.checkFormalComment(pointcutDecCalls, "/** methods and constructors */");
|
|
h.checkFormalComment(pointcutDecRec, "");
|
|
h.checkFormalComment(pointcutDecExec, "");
|
|
h.checkFormalComment(pointcutDecCallsTo, "");
|
|
h.checkFormalComment(pointcutDecHandThr, "/** exception handlers */");
|
|
h.checkFormalComment(pointcutDecHandErr, "");
|
|
h.checkFormalComment(pointcutDecHandExc, "");
|
|
h.checkFormalComment(pointcutDecHandRt, "");
|
|
h.checkFormalComment(pointcutDecGets, "/** fields */");
|
|
h.checkFormalComment(pointcutDecSets, "");
|
|
h.checkFormalComment(adviceDecBefore, "/** Advices */");
|
|
h.checkFormalComment(adviceDecAfter, "");
|
|
h.checkFormalComment(adviceDecAfterRet, "");
|
|
h.checkFormalComment(adviceDecAfterThr, "");
|
|
h.checkFormalComment(adviceDecAround, "");
|
|
h.checkFormalComment(fieldDecIntrD, "/** Introductions */");
|
|
h.checkFormalComment(methodDecIntrV, "");
|
|
|
|
h.checkModifiers(classDec, "public");
|
|
h.checkModifiers(aspectDec, "public strictfp");
|
|
h.checkModifiers(fieldDecI, "public static volatile");
|
|
h.checkModifiers(fieldDecF, "public");
|
|
h.checkModifiers(methodDecV, "");
|
|
h.checkModifiers(methodDecVI, "public");
|
|
h.checkModifiers(methodDecVLF, "synchronized public static");
|
|
h.checkModifiers(methodDecISO, "");
|
|
h.checkModifiers(pointcutDecInstOf, "");
|
|
h.checkModifiers(pointcutDecHasAsp, "");
|
|
h.checkModifiers(pointcutDecWithin, "");
|
|
h.checkModifiers(pointcutDecWithinAll, "");
|
|
h.checkModifiers(pointcutDecWithinCode,"");
|
|
h.checkModifiers(pointcutDecCFlow, "");
|
|
h.checkModifiers(pointcutDecCFlowTop, "");
|
|
h.checkModifiers(pointcutDecCalls, "");
|
|
h.checkModifiers(pointcutDecRec, "");
|
|
h.checkModifiers(pointcutDecExec, "");
|
|
h.checkModifiers(pointcutDecCallsTo, "");
|
|
h.checkModifiers(pointcutDecHandThr, "");
|
|
h.checkModifiers(pointcutDecHandErr, "");
|
|
h.checkModifiers(pointcutDecHandExc, "");
|
|
h.checkModifiers(pointcutDecHandRt, "");
|
|
h.checkModifiers(pointcutDecGets, "");
|
|
h.checkModifiers(pointcutDecSets, "");
|
|
h.checkModifiers(adviceDecBefore, "");
|
|
h.checkModifiers(adviceDecAfter, "");
|
|
h.checkModifiers(adviceDecAfterRet, "");
|
|
h.checkModifiers(adviceDecAfterThr, "");
|
|
h.checkModifiers(adviceDecAround, "");
|
|
h.checkModifiers(fieldDecIntrD, "public");
|
|
h.checkModifiers(methodDecIntrV, "private");
|
|
|
|
h.checkSignature(classDec, "C", "public class C");
|
|
h.checkSignature(aspectDec, "A", "public strictfp class A");
|
|
h.checkSignature(fieldDecI, "i", "public static volatile int i");
|
|
h.checkSignature(fieldDecF, "f", "public float f");
|
|
h.checkSignature(methodDecV, "MethV()", "void MethV()");
|
|
h.checkSignature(methodDecVI, "MethVI(int)", "public void MethVI(int i)");
|
|
h.checkSignature(methodDecVLF, "MethVLF(long, float)", "public static synchronized void MethVLF(long l, float f)");
|
|
h.checkSignature(methodDecISO, "MethISO(String, Object)", "int MethISO(java.lang.String s, java.lang.Object o)");
|
|
h.checkSignature(pointcutDecInstOf, "instanceof_C()", "");
|
|
h.checkSignature(pointcutDecHasAsp, "hasaspect_A()", "");
|
|
h.checkSignature(pointcutDecWithin, "within_C()", "");
|
|
h.checkSignature(pointcutDecWithinAll, "withinall_C()", "");
|
|
h.checkSignature(pointcutDecWithinCode,"withincode_C()", "");
|
|
h.checkSignature(pointcutDecCFlow, "cflow_C()", "");
|
|
h.checkSignature(pointcutDecCFlowTop, "cflowtop_C()", "");
|
|
h.checkSignature(pointcutDecCalls, "calls_C()", "");
|
|
h.checkSignature(pointcutDecRec, "receptions_C()", "");
|
|
h.checkSignature(pointcutDecExec, "executions_C()", "");
|
|
h.checkSignature(pointcutDecCallsTo, "callsto_C()", "");
|
|
h.checkSignature(pointcutDecHandThr, "handlers_Thr()", "");
|
|
h.checkSignature(pointcutDecHandErr, "handlers_Err()", "");
|
|
h.checkSignature(pointcutDecHandExc, "handlers_Exc()", "");
|
|
h.checkSignature(pointcutDecHandRt, "handlers_Rt()", "");
|
|
h.checkSignature(pointcutDecGets, "gets_f()", "");
|
|
h.checkSignature(pointcutDecSets, "sets_f()", "");
|
|
h.checkSignature(adviceDecBefore, "before()", "");
|
|
h.checkSignature(adviceDecAfter, "after()", "");
|
|
h.checkSignature(adviceDecAfterRet, "afterReturning()", "");
|
|
h.checkSignature(adviceDecAfterThr, "afterThrowing()", "");
|
|
h.checkSignature(adviceDecAround, "around()", "");
|
|
h.checkSignature(fieldDecIntrD, "C.intrD", "");
|
|
h.checkSignature(methodDecIntrV, "C.intrMethV()", "");
|
|
|
|
}
|
|
|
|
}
|
|
|