// A class that represents a pizza.
// Barry Cornelius, 19 June 2000
import java.util. HashSet;
import java.util. Iterator;
import java.util. Set;
import java.util. StringTokenizer;
public class Pizza
{
   private Set iSet;
   public Pizza()
   {
      iSet = new HashSet();
   }
   public Pizza(final String pString)
   {
      this();
      final StringTokenizer tTokens = new StringTokenizer(pString, "-");
      while (tTokens.hasMoreTokens())
      {
         final String tToppingString = tTokens.nextToken();
         add(tToppingString);
      }
   }
   public void add(final String pString)
   {
      final Topping tTopping = Topping.getInstance(pString);
      if (tTopping!=null)
      {
         iSet.add(tTopping);
      }
   }
   public boolean equals(final Object pObject)
   {
      if ( pObject==null || getClass()!=pObject.getClass() )
      {
         return false;
      }
      return iSet.equals(((Pizza)pObject).iSet);
   }
   public int hashCode()
   {
      return iSet.hashCode();
   } //BJCHEREFIRST
   public String toString()
   {
      if (iSet.isEmpty())
      {
         return new String("");
      }
      else
      {
         final StringBuffer tStringBuffer = new StringBuffer();
         final Iterator tIterator = iSet.iterator();
         while (tIterator.hasNext())
         {
            final Topping tTopping = (Topping)tIterator.next();
            tStringBuffer.append("-" + tTopping);
         }
         tStringBuffer.deleteCharAt(0);
         return tStringBuffer.toString();
      }
   }
}
