//Original Java code for European Example. //Please view in a non-proportional font such as Lucida Console. public class Message{ public string source; public String destination; public String contents; } public class Station{ public String stationID; public String type; public Message inBuffer, outBuffer; public void accept(){ outBuffer = inBuffer; send(); } public void send(){ GetNext().inBuffer = this.outBuffer; GetNext.accept(); } public void print(String s){ System.out.println(s); } protected Station GetNext(){...} protected PrintServer GetPrinter(){...} } public class NetworkTester extends Station{ public void testNetwork(){ Message m = new Message(); m.source = stationID; m.destination = stationID; m.contents = "NTNT"; outBuffer = m; send(); } public void accept(){ if(inBuffer.source == this) print(inBuffer.contents); else super.accept(); } } public class PrintServer extends Station{ public void accept(){ if(inBuffer.destination == this) print(inBuffer.contents); else super.accept(); } } public class WorkStation extends Station{ public void originate(){ Message m = new Message(); m.source = stationID; m.destination = GetPrinter().stationID; m.contents = "NTNT"; outBuffer = m; send(); } public void accept(){ if(inBuffer.source == this)print("ERR"); else super.accept(); } }