package vf;

@SuppressWarnings("unchecked")
public class Disko implements Unterhaltend, Comparable
{
  int anzahlPersonen;
  int quadratmeter;

  public int unterhaltungswert()
  {
  	return (int) (anzahlPersonen * Math.sqrt( quadratmeter )); 
  }

  /**
   * Vergleicht ein anderes Disko-Objekt mit unserem auf Grund des
   * Unterhaltungswerts.
   * 
   * @param   other  Die {@code Disko}, die sich mit uns vergleicht.
   *  
   * @return  Einen Wert kleiner null, wenn wir einen kleineren Unterhaltungswert haben
   *          als die andere Disko. 0, wenn beide gleich unterhaltend sind. Einen
   *          Wert größer null, wenn unsere Disko unterhaltender ist.
   * 
   * @throws  {@code IllegalArgumentException}, wenn das Argument keine Disko ist.
   *
   * @see     java.lang.Comparable
   */
  public int compareTo( Object other )
  {
    if ( other instanceof Disko )
      return this.unterhaltungswert() - ((Disko) other).unterhaltungswert();

    throw new IllegalArgumentException( "Kann mich nur mit Diskos vergleichen" );
  }
}
