minor reshuffling of InterpreterShip/InterpreterDock
authormegacz <adam@megacz.com>
Thu, 8 Jan 2009 03:08:40 +0000 (19:08 -0800)
committermegacz <adam@megacz.com>
Thu, 8 Jan 2009 03:08:40 +0000 (19:08 -0800)
src/edu/berkeley/fleet/interpreter/Interpreter.java
src/edu/berkeley/fleet/interpreter/InterpreterDock.java
src/edu/berkeley/fleet/interpreter/InterpreterShip.java

index d09b3d0..438855b 100644 (file)
@@ -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();
index c8a9002..6e579a9 100644 (file)
@@ -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); }
index 86a3101..80a38c6 100644 (file)
@@ -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<String,InterpreterDock> ports = new LinkedHashMap<String,InterpreterDock>();
+
     /** You should instantiate a bunch of Inboxes and Outboxes in your constructor */
     public InterpreterShip(Interpreter fleet, ShipDescription sd) {
         super(fleet, sd);
     }
 
-    private HashMap<String,InterpreterDock> ports = new HashMap<String,InterpreterDock>();
-    public Iterator<Dock> iterator() { return (Iterator<Dock>)(Object)ports.values().iterator(); }
+    public Iterator<Dock> iterator() {
+        return (Iterator<Dock>)(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();