From 47f3c1656f79d7e02c99268588aa08537b7748a5 Mon Sep 17 00:00:00 2001 From: megacz Date: Wed, 7 Jan 2009 19:08:40 -0800 Subject: [PATCH] minor reshuffling of InterpreterShip/InterpreterDock --- src/edu/berkeley/fleet/interpreter/Interpreter.java | 10 ++++------ src/edu/berkeley/fleet/interpreter/InterpreterDock.java | 1 + src/edu/berkeley/fleet/interpreter/InterpreterShip.java | 11 +++++------ 3 files changed, 10 insertions(+), 12 deletions(-) diff --git a/src/edu/berkeley/fleet/interpreter/Interpreter.java b/src/edu/berkeley/fleet/interpreter/Interpreter.java index d09b3d0..438855b 100644 --- a/src/edu/berkeley/fleet/interpreter/Interpreter.java +++ b/src/edu/berkeley/fleet/interpreter/Interpreter.java @@ -111,6 +111,10 @@ public class Interpreter extends FleetTwoFleet implements Parser.FleetWithDynami pw.println(""); pw.println("public class "+filename+" extends InterpreterShip {"); pw.println(""); + pw.println(" public "+filename+"(Interpreter fleet, String name, ShipDescription sd) {"); + pw.println(" super(fleet, sd);"); + pw.println(" }"); + pw.println(""); for(DockDescription b : sd) { String name = b.getName(); pw.print(" InterpreterDock box_"); @@ -118,12 +122,6 @@ public class Interpreter extends FleetTwoFleet implements Parser.FleetWithDynami pw.print(" = new InterpreterDock(this, shipDescription.getDockDescription(\""+name+"\"));"); } pw.println(""); - pw.println(" public "+filename+"(Interpreter fleet, String name, ShipDescription sd) {"); - pw.println(" super(fleet, sd);"); - for(DockDescription b : sd) - pw.println(" addDock(\""+b.getName()+"\", box_"+b.getName()+");"); - pw.println(" }"); - pw.println(""); pw.println(sd.getSection("fleeterpreter")); pw.println("}"); pw.flush(); diff --git a/src/edu/berkeley/fleet/interpreter/InterpreterDock.java b/src/edu/berkeley/fleet/interpreter/InterpreterDock.java index c8a9002..6e579a9 100644 --- a/src/edu/berkeley/fleet/interpreter/InterpreterDock.java +++ b/src/edu/berkeley/fleet/interpreter/InterpreterDock.java @@ -55,6 +55,7 @@ class InterpreterDock extends FleetTwoDock { InterpreterDock(InterpreterShip ship, DockDescription bbd) { super(ship, bbd); + ship.ports.put(bbd.getName(), this); } public Path getPath(Destination d, BitVector signal) { return new InterpreterPath(this, (InterpreterDestination)d, signal); } diff --git a/src/edu/berkeley/fleet/interpreter/InterpreterShip.java b/src/edu/berkeley/fleet/interpreter/InterpreterShip.java index 86a3101..80a38c6 100644 --- a/src/edu/berkeley/fleet/interpreter/InterpreterShip.java +++ b/src/edu/berkeley/fleet/interpreter/InterpreterShip.java @@ -7,13 +7,16 @@ import java.io.*; /** a ship, which belongs to a fleet and which may have many ports */ abstract class InterpreterShip extends FleetTwoShip { + LinkedHashMap ports = new LinkedHashMap(); + /** You should instantiate a bunch of Inboxes and Outboxes in your constructor */ public InterpreterShip(Interpreter fleet, ShipDescription sd) { super(fleet, sd); } - private HashMap ports = new HashMap(); - public Iterator iterator() { return (Iterator)(Object)ports.values().iterator(); } + public Iterator iterator() { + return (Iterator)(Object)ports.values().iterator(); + } /** * Override this method, check inboxes for the data you need, and @@ -27,10 +30,6 @@ abstract class InterpreterShip extends FleetTwoShip { service(); } - protected void addDock(String name, InterpreterDock port) { - ports.put(name, port); - } - public void reset() { for(InterpreterDock p : ports.values()) p.reset(); -- 1.7.10.4