001: // $Id: EfficientExitExtension.java,v 1.2 2004/05/12 17:26:53 anicoara Exp $
002: // =====================================================================
003: //
004: // (history at end)
005: //
006:
007: package measurements.suites;
008:
009: // used packages
010: import ch.ethz.jvmai.*;
011: import ch.ethz.prose.DefaultAspect;
012: import ch.ethz.prose.crosscut.*;
013: import ch.ethz.prose.filter.*;
014:
015: /**
016: * Class EfficientExitExtension XXX
017: *
018: * @version $Revision: 1.2 $
019: * @author Andrei Popovici
020: */
021: public class EfficientExitExtension extends DefaultAspect {
022: public Crosscut trapMethods = new MethodCut() {
023: public void ANYMEHTOD() {
024: }
025:
026: public void joinPointAction(MethodEntryJoinPoint jpe) {
027: }
028:
029: public void joinPointAction(MethodExitJoinPoint jpe) {
030: }
031:
032: protected PointCutter pointCutter() {
033: return ((Executions.after()).AND((Within
034: .type("TestClassCalibration1")).OR(Within
035: .type("TestClass1"))).AND(Within
036: .packageTypes("measurements.suites")));
037: }
038: };
039:
040: public Crosscut trapGets = new GetCut() {
041: public void joinPointAction(FieldAccessJoinPoint jpe) {
042: }
043:
044: public void GET_ARGS() {
045: }
046:
047: protected PointCutter pointCutter() {
048: return (((Within.type("TestClass1")).OR(Within
049: .type("TestClass1"))).AND(Within
050: .packageTypes("measurements.suites")));
051: }
052: };
053:
054: public Crosscut trapSets = new SetCut() {
055: public void joinPointAction(FieldModificationJoinPoint jpe) {
056: }
057:
058: public void SET_ARGS() {
059: }
060:
061: protected PointCutter pointCutter() {
062: return (((Within.type("TestClass1")).OR(Within
063: .type("TestClass1"))).AND(Within
064: .packageTypes("measurements.suites")));
065: }
066: };
067: }
068:
069: //======================================================================
070: //
071: // $Log: EfficientExitExtension.java,v $
072: // Revision 1.2 2004/05/12 17:26:53 anicoara
073: // Adapt Junit tests to 3.8.1 version and the new package structure
074: //
075: // Revision 1.1.1.1 2003/07/02 15:30:45 apopovic
076: // Imported from ETH Zurich
077: //
078: // Revision 1.15 2003/05/05 14:03:02 popovici
079: // renaming from runes to prose
080: //
081: // Revision 1.14 2003/04/27 13:08:59 popovici
082: // Specializers renamed to PointCutter
083: //
084: // Revision 1.13 2003/04/17 15:14:53 popovici
085: // Extension->Aspect renaming
086: //
087: // Revision 1.12 2003/04/17 13:54:30 popovici
088: // Refactorization of 'ExecutionS' into 'Within' and 'Executions'.
089: // Method names refer now to 'types'
090: //
091: // Revision 1.11 2003/04/17 12:49:17 popovici
092: // Refactoring of the crosscut package
093: // ExceptionCut renamed to ThrowCut
094: // McutSignature is now SignaturePattern
095: //
096: // Revision 1.10 2003/04/17 08:46:58 popovici
097: // Important functionality additions
098: // - Cflow specializers
099: // - Restructuring of the MethodCut, SetCut, ThrowCut, and GetCut (they are much smaller)
100: // - Transactional capabilities
101: // - Total refactoring of Specializer evaluation, which permits fine-grained distinction
102: // between static and dynamic specializers.
103: // - Functionality pulled up in abstract classes
104: // - Uniformization of advice methods patterns and names
105: //
106: // Revision 1.9 2003/03/05 08:31:26 popovici
107: // Bug fix afeer import organization
108: //
109: // Revision 1.8 2003/03/04 18:36:00 popovici
110: // Organization of imprts
111: //
112: // Revision 1.7 2003/03/04 11:26:10 popovici
113: // Important refactorization step (march):
114: // - removal of 'JoinPointEvents'; JoinPoints now have the same function as events
115: // - reimplementation of the JVMAIDebuggerAspectInterface (better performance, coding conventions, removal of ProseVM
116: // structures
117: //
118: // Revision 1.6 2002/06/06 14:39:51 popovici
119: // Renamings: FunctionalCrosscut->MethodCut
120: // AllFields->SetCut
121: // SetCu.fieldModiticationAdvice -> SetCut.setAdvice
122: //
123: // Revision 1.5 2002/06/06 12:01:49 popovici
124: // fieldAccessAdvice removed from AllFields; tests and usage of AllFields's
125: // ability to intercept gets moved to 'GetCut'
126: // Minor bug fixes;
127: //
128: // Revision 1.4 2002/06/05 12:03:50 popovici
129: // thisJoinPoint() updated everywhere. The 'fieldModificationAdvice is now parameterless'; older implemnentations now
130: // use 'thisJoinPoint()'
131: //
132: // Revision 1.3 2002/06/04 12:36:09 popovici
133: // AllLocations occurences replaced with FunctionalCrosscut
134: //
135: // Revision 1.2 2002/05/22 11:00:34 popovici
136: // ClasseS replaced with DeclarationS
137: //
138: // Revision 1.1 2002/03/28 13:34:26 popovici
139: // Exit/Entry|Aspect and Exit/Entry|Aspect replace old ProseExtension & AspectJAspect files
140: //
141: // Revision 1.1 2002/03/12 09:50:14 popovici
142: // Initial version of the Benchmark measurements
143: //
|