// Circular.java
// (c) 1997 Kim Bruce
/** Interface for collection of objects in a circular arrangement. **/
public interface Circular
{
/**
* pre: this is non-empty
* post: moves current to successor position in arrangement
* */
public void next();
/**
* post: returns number of elts in object
* */
public int size();
/**
* pre: this is non-empty
* post: returns the current element
* */
public Object getCurrent();
/**
pre: this is non-empty
post: Current elt is deleted, if non-empty, successor of old current is new current elt
**/
public void removeCurrent();
/**
post: If this was empty, obj is inserted as only elt, owise added after current elt
Either way, obj is now current elt
**/
public void addAfterCurrent(Object obj);
/**
post: collection of objects is now empty
**/
public void clear();
}