From: adam Date: Wed, 28 Feb 2007 11:04:33 +0000 (+0100) Subject: experimental: make BenkoBox not extend Destination X-Git-Url: http://git.megacz.com/?a=commitdiff_plain;h=a97695eb156041b6ec6d1d938763964cef894e4d;p=fleet.git experimental: make BenkoBox not extend Destination --- diff --git a/src/edu/berkeley/fleet/api/BenkoBox.java b/src/edu/berkeley/fleet/api/BenkoBox.java index e9a8cc4..7f6cf8e 100644 --- a/src/edu/berkeley/fleet/api/BenkoBox.java +++ b/src/edu/berkeley/fleet/api/BenkoBox.java @@ -1,7 +1,7 @@ package edu.berkeley.fleet.api; import java.util.*; -public abstract class BenkoBox extends Destination { +public abstract class BenkoBox { public BenkoBox() { } @@ -22,11 +22,7 @@ public abstract class BenkoBox extends Destination { public abstract boolean isOutbox(); /** get all destinations associated with this BenkoBox; default implementation: just itself */ - public Iterable getDestinations() { - HashSet self = new HashSet(); - self.add(this); - return self; - } + public abstract Iterable getDestinations(); /** default implementation: the empty string */ public String getDestinationName() { return ""; } diff --git a/src/edu/berkeley/fleet/api/Destination.java b/src/edu/berkeley/fleet/api/Destination.java index c7a0686..c89ae92 100644 --- a/src/edu/berkeley/fleet/api/Destination.java +++ b/src/edu/berkeley/fleet/api/Destination.java @@ -1,16 +1,14 @@ package edu.berkeley.fleet.api; -public abstract class Destination { - - public Destination() { } +public interface Destination { /** return the Ship to which this BenkoBox belongs */ - public abstract Ship getShip(); + public Ship getShip(); /** * this returns the third component of the name; that is in * "ship.port.foo", it returns "foo", and in "ship.port" it * returns "" */ - public abstract String getDestinationName(); + public String getDestinationName(); } diff --git a/src/edu/berkeley/fleet/interpreter/InterpreterBenkoBox.java b/src/edu/berkeley/fleet/interpreter/InterpreterBenkoBox.java index 70fb7e2..f8525c8 100644 --- a/src/edu/berkeley/fleet/interpreter/InterpreterBenkoBox.java +++ b/src/edu/berkeley/fleet/interpreter/InterpreterBenkoBox.java @@ -47,7 +47,7 @@ public abstract class InterpreterBenkoBox extends BenkoBox implements Interprete private static int max_addr; - private class InterpreterBenkoBoxDestination extends Destination implements InterpreterDestination { + private class InterpreterBenkoBoxDestination implements InterpreterDestination { public String name; public long addr = max_addr++; public InterpreterBenkoBoxDestination(String name) { this.name = name; } diff --git a/src/edu/berkeley/fleet/interpreter/InterpreterDestination.java b/src/edu/berkeley/fleet/interpreter/InterpreterDestination.java index 445a8eb..bde33bc 100644 --- a/src/edu/berkeley/fleet/interpreter/InterpreterDestination.java +++ b/src/edu/berkeley/fleet/interpreter/InterpreterDestination.java @@ -2,7 +2,7 @@ package edu.berkeley.fleet.interpreter; import edu.berkeley.fleet.api.*; import java.util.*; -interface InterpreterDestination { +interface InterpreterDestination extends Destination { public long getDestAddr(); public void addDataFromFabric(Packet packet); public String getDestinationName(); diff --git a/src/edu/berkeley/fleet/slipway/SlipwayBenkoBox.java b/src/edu/berkeley/fleet/slipway/SlipwayBenkoBox.java index a43a659..fb6082d 100644 --- a/src/edu/berkeley/fleet/slipway/SlipwayBenkoBox.java +++ b/src/edu/berkeley/fleet/slipway/SlipwayBenkoBox.java @@ -59,7 +59,7 @@ public class SlipwayBenkoBox extends BenkoBox { ports = newports; } - public class VirtualPort extends Destination { + public class VirtualPort implements Destination { public String name; public VirtualPort(String name) { this.name = name; } public String getDestinationName() { return name; }