aboutsummaryrefslogtreecommitdiffstats
path: root/docs/examples/tracing/version1/TraceMyClasses.java
diff options
context:
space:
mode:
Diffstat (limited to 'docs/examples/tracing/version1/TraceMyClasses.java')
-rw-r--r--docs/examples/tracing/version1/TraceMyClasses.java69
1 files changed, 69 insertions, 0 deletions
diff --git a/docs/examples/tracing/version1/TraceMyClasses.java b/docs/examples/tracing/version1/TraceMyClasses.java
new file mode 100644
index 000000000..736e96413
--- /dev/null
+++ b/docs/examples/tracing/version1/TraceMyClasses.java
@@ -0,0 +1,69 @@
+/*
+Copyright (c) Xerox Corporation 1998-2002. All rights reserved.
+
+Use and copying of this software and preparation of derivative works based
+upon this software are permitted. Any distribution of this software or
+derivative works must comply with all applicable United States export control
+laws.
+
+This software is made available AS IS, and Xerox Corporation makes no warranty
+about the software, its performance or its conformity to any specification.
+*/
+
+package tracing.version1;
+
+/**
+ *
+ * This class connects the tracing functions in the Trace class with
+ * the constructors and methods in the application classes.
+ *
+ */
+import tracing.TwoDShape;
+import tracing.Circle;
+import tracing.Square;
+import tracing.ExampleMain;
+
+aspect TraceMyClasses {
+ /**
+ * Application classes.
+ */
+ pointcut myClass(): within(TwoDShape) || within(Circle) || within(Square);
+ /**
+ * The constructors in those classes.
+ */
+ pointcut myConstructor(): myClass() && execution(new(..));
+ /**
+ * The methods of those classes.
+ */
+ pointcut myMethod(): myClass() && execution(* *(..));
+
+ /**
+ * Prints trace messages before and after executing constructors.
+ */
+ before (): myConstructor() {
+ Trace.traceEntry("" + thisJoinPointStaticPart.getSignature());
+ }
+ after(): myConstructor() {
+ Trace.traceExit("" + thisJoinPointStaticPart.getSignature());
+ }
+
+ /**
+ * Prints trace messages before and after executing methods.
+ */
+ before (): myMethod() {
+ Trace.traceEntry("" + thisJoinPointStaticPart.getSignature());
+ }
+ after(): myMethod() {
+ Trace.traceExit("" + thisJoinPointStaticPart.getSignature());
+ }
+
+ /**
+ * A main function for testing the trace aspect.
+ */
+ public static void main(String[] args) {
+ Trace.TRACELEVEL = 2;
+ Trace.initStream(System.err);
+ ExampleMain.main(args);
+ }
+}
+