1 package edu.berkeley.fleet.api;
4 public abstract class BenkoBox {
8 /** the descriptive name of this benkobox (relative to its ship) */
9 public abstract String getName();
11 /** return the Ship to which this BenkoBox belongs */
12 public abstract Ship getShip();
14 /** the maximum number of instructions we can put in the BenkoBox instruction fifo,
15 * or Integer.MAX_VALUE if unbounded */
16 public abstract int getInstructionFifoLength();
18 /** returns true if this is an inbox */
19 public abstract boolean isInbox();
21 /** returns true if this is an outbox */
22 public abstract boolean isOutbox();
24 /** get all destinations associated with this BenkoBox; default implementation: just itself */
25 public abstract Iterable<Destination> getDestinations();
27 /** default implementation: the empty string */
28 public String getDestinationName() { return ""; }