/**
 * This isn't meant to be a do it yourself tutorial, this is an example that 
 * a TA can do with you in a help or orientation session to show you how to: 
 * 1 write method stubs
 * 2 test the program in parts
 * 3 write a driver to test your program
 * 
 * this will save your time because it makes it much easier to know where exactly
 * the error is in your program 
 * in most cases debugging takes longest when you don't know where the error is
 * coding this way will probably cut your time in half for each project.
**/

/**
* Receives comparables and stores them in a set
* Accepts only String and Integer Comparables
**/
public interface Sample {

	/**
	* size() 
	* @return the number of elements in the structure
	**/
	int size();

	/** 
	* add(Comparable c)
	* adds a Comparable to the set
	* @param Comparable c that will be added to the set
	* @returns true if the object was added successfully, false if not 
	* @throws IllegalArgumentException if c is null, or if c is not a Integer or String Comparable
	**/
	boolean add(Comparable c);

	/**
	* clear()
	* empties the array of Comparables
	**/
	void clear();

	/**
	* contains(Comparable c)
	* tells whether or not c is in the set already
	* @param Comparable c to be checked
	* @return true if a Comparable equal to c is in the set, false if not
	* @throws IllegalArgumentExcpeption if c is null, or if c is not a Integer or String Comparable
	**/
	boolean contains(Comparable c);

	/**
	* getStrings()
	* @return all of the String Comparables as an array with no spaces at the end
	* @return null if there are no String Comparables in the set
	* @throws IllegalStateException if the set is empty
	**/
	String[] getStrings();

	/**
	* getIntegers()
	* @return all of the Integer Comparables as an array with no spaces at the end
	* @return null if there are no Integer Comparables in the set
	* @throws IllegalStateException if the set is empty
	**/
	Integer[] getIntegers();
}