package jrummikub.model; import java.io.Serializable; import jrummikub.util.Pair; /** * Interface for the {@link StoneTray} model * * @param * Objects held by the IStoneTray */ public interface IStoneTray extends Iterable>, Cloneable, Serializable { /** * Adds object to the tray * * @param object * object to add to Hand * @param position * {@link Position} to put the object */ public void drop(E object, Position position); /** * Returns the position of an object that is already on the tray * * @param object * object whose position is requested * @return position of the object or null when the object is not on the tray */ public Position getPosition(E object); /** * Tries to pick up (remove) a given object * * @param object * object to pick up * @return true when the object was successfully removed */ public boolean pickUp(E object); /** * Create a clone of the StoneTray * * @return cloned StoneTray */ public IStoneTray clone(); /** * Return the number of objects on the tray * * @return number of objects */ public int getSize(); /** * Search for an object within the stone tray * * @param object * object to search for * @return object found in stone tray */ public boolean contains(E object); }