diff options
Diffstat (limited to 'tests/ajde/examples/figures-cacm')
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); + } +} + |