package rac;
import listFW.*;
/**
* Defines the interface for a restricted access container.
*/
public interface IRAContainer {
/**
* Empty the container.
* NOTE: This implies a state change.
* This behavior can be achieved by repeatedly removing elements from this IRAContainer.
* It is specified here as a convenience to the client.
*/
public void clear();
/**
* Return TRUE if the container is empty; otherwise, return
* FALSE.
*/
public boolean isEmpty();
/**
* Return TRUE if the container is full; otherwise, return
* FALSE.
*/
public boolean isFull();
/**
* Return an immutable list of all elements in the container.
* @param fact for manufacturing an IList.
*/
public IList elements(IListFactory fact);
/**
* Remove the next item from the container and return it.
* NOTE: This implies a state change.
* @throw an Exception if this IRAContainer is empty.
*/
public Object get();
/**
* Add an item to the container.
* NOTE: This implies a state change.
* @param input the Object to be added to this IRAContainer.
* @throw an Exception if this IRAContainer is full.
*/
public void put(Object input);
/**
* Return the next element in this IRAContainer withour removing it.
* @throw an Exception if this IRAContainer is empty.
*/
public Object peek();
}