From ce801a083791f978fb69fc7cb362109b688a98c1 Mon Sep 17 00:00:00 2001 From: ehilsdal Date: Thu, 28 Aug 2003 23:46:06 +0000 Subject: mostly final edits --- docs/teaching/exercises/answers/Answer3d.java | 30 +++++++++++++++++++++++++++ docs/teaching/exercises/answers/Answer3e.java | 30 +++++++++++++++++++++++++++ 2 files changed, 60 insertions(+) create mode 100755 docs/teaching/exercises/answers/Answer3d.java create mode 100755 docs/teaching/exercises/answers/Answer3e.java (limited to 'docs/teaching/exercises/answers') diff --git a/docs/teaching/exercises/answers/Answer3d.java b/docs/teaching/exercises/answers/Answer3d.java new file mode 100755 index 000000000..6a3238b5f --- /dev/null +++ b/docs/teaching/exercises/answers/Answer3d.java @@ -0,0 +1,30 @@ +/* ******************************************************************* + * Copyright (c) 2002 Palo Alto Research Center, Incorporated (PARC). + * All rights reserved. + * This program and the accompanying materials are made available + * under the terms of the Common Public License v1.0 + * which accompanies this distribution and is available at + * http://www.eclipse.org/legal/cpl-v10.html + * + * Contributors: + * PARC initial implementation + * ******************************************************************/ + +package answers; + +import support.Log; + +import figures.*; + +aspect Answer3d { + + boolean Point.inGroup = false; + + before(Point p): execution(void Group.add(FigureElement)) && args(p) { + if (p.inGroup) { + throw new IllegalStateException(); + } else { + p.inGroup = true; + } + } +} diff --git a/docs/teaching/exercises/answers/Answer3e.java b/docs/teaching/exercises/answers/Answer3e.java new file mode 100755 index 000000000..8e0018df8 --- /dev/null +++ b/docs/teaching/exercises/answers/Answer3e.java @@ -0,0 +1,30 @@ +/* ******************************************************************* + * Copyright (c) 2002 Palo Alto Research Center, Incorporated (PARC). + * All rights reserved. + * This program and the accompanying materials are made available + * under the terms of the Common Public License v1.0 + * which accompanies this distribution and is available at + * http://www.eclipse.org/legal/cpl-v10.html + * + * Contributors: + * PARC initial implementation + * ******************************************************************/ + +package answers; + +import support.Log; + +import figures.*; + +aspect Answer3e { + + Group Point.containingGroup = null; + + before(Group g, Point p): execution(void Group.add(FigureElement)) && this(g) && args(p) { + if (p.containingGroup != null) { + throw new IllegalStateException(p.containingGroup.toString()); + } else { + p.containingGroup = g; + } + } +} -- cgit v1.2.3