aboutsummaryrefslogtreecommitdiffstats
path: root/docs/examples/telecom/Connection.java
diff options
context:
space:
mode:
authorAlexander Kriegisch <Alexander@Kriegisch.name>2024-01-04 10:12:59 +0700
committerAlexander Kriegisch <Alexander@Kriegisch.name>2024-01-06 10:09:11 +0100
commit61ceb8a58ea72d4c07ff0b2f669d5f84b75700ec (patch)
tree857d468f6c8cc4d83370ed9d526e79f3abdb3f2a /docs/examples/telecom/Connection.java
parentf7962810eca3ddda75d64b85caab2449eeff480e (diff)
downloadaspectj-61ceb8a58ea72d4c07ff0b2f669d5f84b75700ec.tar.gz
aspectj-61ceb8a58ea72d4c07ff0b2f669d5f84b75700ec.zip
Move docs examples directory two levels up
Now, the location more closely resembles where it is on the website. Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
Diffstat (limited to 'docs/examples/telecom/Connection.java')
-rw-r--r--docs/examples/telecom/Connection.java87
1 files changed, 87 insertions, 0 deletions
diff --git a/docs/examples/telecom/Connection.java b/docs/examples/telecom/Connection.java
new file mode 100644
index 000000000..7d54ec843
--- /dev/null
+++ b/docs/examples/telecom/Connection.java
@@ -0,0 +1,87 @@
+/*
+
+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.
+
+|<--- this code is formatted to fit into 80 columns --->|
+|<--- this code is formatted to fit into 80 columns --->|
+|<--- this code is formatted to fit into 80 columns --->|
+
+*/
+package telecom;
+
+/**
+ * Connections are circuits between customers
+ * There are two kinds: local and long distance
+ * see subclasses at the end of this file.
+ */
+public abstract class Connection {
+
+ public static final int PENDING = 0;
+ public static final int COMPLETE = 1;
+ public static final int DROPPED = 2;
+
+ Customer caller, receiver;
+ private int state = PENDING;
+
+ /**
+ * Creatte a new Connection between a and b
+ */
+ Connection(Customer a, Customer b) {
+ this.caller = a;
+ this.receiver = b;
+ }
+
+ /**
+ * what is the state of the connection?
+ */
+ public int getState(){
+ return state;
+ }
+
+ /**
+ * get the customer who initiated this connection
+ */
+ public Customer getCaller() { return caller; }
+
+ /**
+ * get the customer who received this connection
+ */
+ public Customer getReceiver() { return receiver; }
+
+ /**
+ * Called when a call is picked up. This means the b side has picked up
+ * and the connection should now complete itself and start passing data.
+ */
+ void complete() {
+ state = COMPLETE;
+ System.out.println("connection completed");
+ }
+
+ /**
+ * Called when the connection is dropped from a call. Is intended to
+ * free up any resources the connection was consuming.
+ */
+ void drop() {
+ state = DROPPED;
+ System.out.println("connection dropped");
+ }
+
+ /**
+ * Is customer c connected by this connection?
+ */
+ public boolean connects(Customer c){
+ return (caller == c || receiver == c);
+ }
+
+}
+
+
+