summaryrefslogtreecommitdiffstats
path: root/tests/ajde/examples/figures-cacm
diff options
context:
space:
mode:
Diffstat (limited to 'tests/ajde/examples/figures-cacm')
-rw-r--r--tests/ajde/examples/figures-cacm/Test_Figures_CACM.jpx26
-rw-r--r--tests/ajde/examples/figures-cacm/figures/Display.java9
-rw-r--r--tests/ajde/examples/figures-cacm/figures/DisplayUpdating.java15
-rw-r--r--tests/ajde/examples/figures-cacm/figures/FactoryEnforcement.java12
-rw-r--r--tests/ajde/examples/figures-cacm/figures/Figure.java23
-rw-r--r--tests/ajde/examples/figures-cacm/figures/FigureElement.java8
-rw-r--r--tests/ajde/examples/figures-cacm/figures/Line.java23
-rw-r--r--tests/ajde/examples/figures-cacm/figures/Main.java17
-rw-r--r--tests/ajde/examples/figures-cacm/figures/Point.java33
-rw-r--r--tests/ajde/examples/figures-cacm/figures/PointBoundsChecking.java13
-rw-r--r--tests/ajde/examples/figures-cacm/figures/SimpleTracing.java13
11 files changed, 192 insertions, 0 deletions
diff --git a/tests/ajde/examples/figures-cacm/Test_Figures_CACM.jpx b/tests/ajde/examples/figures-cacm/Test_Figures_CACM.jpx
new file mode 100644
index 000000000..a17994a55
--- /dev/null
+++ b/tests/ajde/examples/figures-cacm/Test_Figures_CACM.jpx
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--JBuilder XML Project-->
+<project>
+ <property category="runtime.0" name="RunnableType" value="com.borland.jbuilder.runtime.ApplicationRunner" />
+ <property category="runtime.0" name="application.class" value="figures.Main" />
+ <property category="sys" name="BackupPath" value="bak" />
+ <property category="sys" name="CheckStable" value="1" />
+ <property category="sys" name="Company" value="" />
+ <property category="sys" name="Copyright" value="Copyright (c) 2001" />
+ <property category="sys" name="Description" value="" />
+ <property category="sys" name="DocPath" value="." />
+ <property category="sys" name="ExcludeClassEnabled" value="0" />
+ <property category="sys" name="JDK" value="java 1.3.0_02" />
+ <property category="sys" name="LastTag" value="0" />
+ <property category="sys" name="Libraries" value="" />
+ <property category="sys" name="MakeStable" value="0" />
+ <property category="sys" name="OutPath" value="." />
+ <property category="sys" name="SourcePath" value="." />
+ <property category="sys" name="Title" value="" />
+ <property category="sys" name="Version" value="1.0" />
+ <property category="sys" name="WorkingDirectory" value="." />
+ <node type="Package" name="figures" />
+ <file path="Vanilla.lst" />
+</project>
+
diff --git a/tests/ajde/examples/figures-cacm/figures/Display.java b/tests/ajde/examples/figures-cacm/figures/Display.java
new file mode 100644
index 000000000..5857d719f
--- /dev/null
+++ b/tests/ajde/examples/figures-cacm/figures/Display.java
@@ -0,0 +1,9 @@
+
+package figures;
+
+class Display {
+
+ static void needsRepaint() { }
+
+}
+
diff --git a/tests/ajde/examples/figures-cacm/figures/DisplayUpdating.java b/tests/ajde/examples/figures-cacm/figures/DisplayUpdating.java
new file mode 100644
index 000000000..7feade6ee
--- /dev/null
+++ b/tests/ajde/examples/figures-cacm/figures/DisplayUpdating.java
@@ -0,0 +1,15 @@
+
+package figures;
+
+aspect DisplayUpdating {
+
+ pointcut moves(): call(void FigureElement.moveBy(int, int)) ||
+ call(void Point.setX(int)) ||
+ call(void Point.setY(int)) ||
+ call(void Line.setP1(Point)) ||
+ call(void Line.setP2(Point));
+
+ after(): moves() {
+ Display.needsRepaint();
+ }
+}
diff --git a/tests/ajde/examples/figures-cacm/figures/FactoryEnforcement.java b/tests/ajde/examples/figures-cacm/figures/FactoryEnforcement.java
new file mode 100644
index 000000000..a5ff5b5ec
--- /dev/null
+++ b/tests/ajde/examples/figures-cacm/figures/FactoryEnforcement.java
@@ -0,0 +1,12 @@
+
+package figures;
+
+aspect FactoryEnforcement {
+
+ pointcut illegalNewFigElt(): call(FigureElement+.new(..)) &&
+ !withincode(* Figure.make*(..));
+
+ declare error: illegalNewFigElt():
+ "Illegal figure element constructor call.";
+
+}
diff --git a/tests/ajde/examples/figures-cacm/figures/Figure.java b/tests/ajde/examples/figures-cacm/figures/Figure.java
new file mode 100644
index 000000000..0516e4d1e
--- /dev/null
+++ b/tests/ajde/examples/figures-cacm/figures/Figure.java
@@ -0,0 +1,23 @@
+
+package figures;
+
+import java.util.List;
+import java.util.LinkedList;
+
+
+class Figure {
+
+ List elements = new LinkedList();
+
+ Point makePoint(int x, int y) {
+ Point p = new Point(x, y);
+ elements.add(p);
+ return p;
+ }
+
+ Line makeLine(Point p1, Point p2) {
+ Line l = new Line(p1, p2);
+ elements.add(l);
+ return l;
+ }
+}
diff --git a/tests/ajde/examples/figures-cacm/figures/FigureElement.java b/tests/ajde/examples/figures-cacm/figures/FigureElement.java
new file mode 100644
index 000000000..591359e11
--- /dev/null
+++ b/tests/ajde/examples/figures-cacm/figures/FigureElement.java
@@ -0,0 +1,8 @@
+
+package figures;
+
+interface FigureElement {
+
+ public void moveBy(int dx, int dy);
+
+}
diff --git a/tests/ajde/examples/figures-cacm/figures/Line.java b/tests/ajde/examples/figures-cacm/figures/Line.java
new file mode 100644
index 000000000..3e8f6582d
--- /dev/null
+++ b/tests/ajde/examples/figures-cacm/figures/Line.java
@@ -0,0 +1,23 @@
+
+package figures;
+
+class Line {
+ private Point p1, p2;
+
+ Line(Point p1, Point p2) {
+ super();
+ this.p1 = p1;
+ this.p2 = p2;
+ }
+
+ Point getP1() { return p1; }
+ Point getP2() { return p2; }
+
+ void setP1(Point p1) { this.p1 = p1; }
+ void setP2(Point p2) { this.p2 = p2; }
+
+ void moveBy(int dx, int dy) {
+ getP1().moveBy(dx, dy);
+ getP2().moveBy(dx, dy);
+ }
+}
diff --git a/tests/ajde/examples/figures-cacm/figures/Main.java b/tests/ajde/examples/figures-cacm/figures/Main.java
new file mode 100644
index 000000000..b38e1fcdb
--- /dev/null
+++ b/tests/ajde/examples/figures-cacm/figures/Main.java
@@ -0,0 +1,17 @@
+
+package figures;
+
+class Main {
+
+ public static void main(String [] args) {
+ System.out.println("> starting figures. . . " + 0);
+// Figure fig = new Figure();
+ Point p1 = new Point(2, 2);
+ p1.setX(10);
+ p1.setX(20);
+ System.out.println("> p1.x: " + p1.getX());
+// Point p2 = fig.makePoint(4, 4);
+// System.out.println("> finished.");
+ }
+}
+
diff --git a/tests/ajde/examples/figures-cacm/figures/Point.java b/tests/ajde/examples/figures-cacm/figures/Point.java
new file mode 100644
index 000000000..322c23cca
--- /dev/null
+++ b/tests/ajde/examples/figures-cacm/figures/Point.java
@@ -0,0 +1,33 @@
+
+package figures;
+
+class Point {
+ private int x = 0, y = 0;
+
+ Point(int x, int y) {
+ super();
+ this.x = x;
+ this.y = y;
+ }
+
+ int getX() {
+ return x;
+ }
+
+ int getY() {
+ return y;
+ }
+
+ void setX(int x) {
+ this.x = x;
+ }
+
+ void setY(int y) {
+ this.y = y;
+ }
+
+ void moveBy(int dx, int dy) {
+ setX(getX() + dx);
+ setY(getY() + dy);
+ }
+}
diff --git a/tests/ajde/examples/figures-cacm/figures/PointBoundsChecking.java b/tests/ajde/examples/figures-cacm/figures/PointBoundsChecking.java
new file mode 100644
index 000000000..9338b26b7
--- /dev/null
+++ b/tests/ajde/examples/figures-cacm/figures/PointBoundsChecking.java
@@ -0,0 +1,13 @@
+
+package figures;
+
+aspect PointBoundsChecking {
+
+ pointcut tracePoints(): call(void Point.setX(int)) ||
+ call(void Point.setY(int));
+
+ before(): tracePoints() {
+ System.out.println("Entering:" + thisJoinPoint);
+ }
+}
+
diff --git a/tests/ajde/examples/figures-cacm/figures/SimpleTracing.java b/tests/ajde/examples/figures-cacm/figures/SimpleTracing.java
new file mode 100644
index 000000000..d65eb158a
--- /dev/null
+++ b/tests/ajde/examples/figures-cacm/figures/SimpleTracing.java
@@ -0,0 +1,13 @@
+
+package figures;
+
+aspect SimpleTracing {
+
+ pointcut tracePoints(): call(void Point.setX(int)) ||
+ call(void Point.setY(int));
+
+ before(): tracePoints() {
+ System.out.println("Entering:" + thisJoinPoint);
+ }
+}
+