diff options
author | wisberg <wisberg> | 2002-12-16 23:28:22 +0000 |
---|---|---|
committer | wisberg <wisberg> | 2002-12-16 23:28:22 +0000 |
commit | 6338556123543cf33fc42ee6f3af4e5768805adc (patch) | |
tree | 6e9b0e661fba1a0d1932b5c085bded83ea15130e /docs/dist/doc/examples/observer/SubjectObserverProtocol.java | |
parent | ab18cfd453a41c8b728e8485809ef87c218ecf72 (diff) | |
download | aspectj-6338556123543cf33fc42ee6f3af4e5768805adc.tar.gz aspectj-6338556123543cf33fc42ee6f3af4e5768805adc.zip |
moved examples under doc per Erik
Diffstat (limited to 'docs/dist/doc/examples/observer/SubjectObserverProtocol.java')
-rw-r--r-- | docs/dist/doc/examples/observer/SubjectObserverProtocol.java | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/docs/dist/doc/examples/observer/SubjectObserverProtocol.java b/docs/dist/doc/examples/observer/SubjectObserverProtocol.java new file mode 100644 index 000000000..73f730e09 --- /dev/null +++ b/docs/dist/doc/examples/observer/SubjectObserverProtocol.java @@ -0,0 +1,47 @@ +/* + +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. + +SubjectObserverProtocol.java + +*/ + +package observer; + +import java.util.Vector; + +abstract aspect SubjectObserverProtocol { + + abstract pointcut stateChanges(Subject s); + + after(Subject s): stateChanges(s) { + for (int i = 0; i < s.getObservers().size(); i++) { + ((Observer)s.getObservers().elementAt(i)).update(); + } + } + + private Vector Subject.observers = new Vector(); + public void Subject.addObserver(Observer obs) { + observers.addElement(obs); + obs.setSubject(this); + } + public void Subject.removeObserver(Observer obs) { + observers.removeElement(obs); + obs.setSubject(null); + } + public Vector Subject.getObservers() { return observers; } + + private Subject Observer.subject = null; + public void Observer.setSubject(Subject s) { subject = s; } + public Subject Observer.getSubject() { return subject; } + +} + |