/**
 *
 * Programmieraufgabe P-4 (Pizza.java)
 *
 * @author Leonhard Fellermayr
 * @version 1.0
 */

/**
 *  Zur Formatierung der Ausgabe in Pizza.toString () wird der
 *  NumberFormatter verwendet.
 */

import java.text.NumberFormat;

/** Implementiert die Klasse Pizza gemŠ§ Aufgabenstellung. */

public class Pizza {
	
	/** Instanzvariablen
	 * 
	 *  @args EUR_FRACT_DIGITS GewŸnschte Anzahl Nachkommastellen fŸr Preis
	 *  @args sorte Die Pizzasorte
	 *  @args preisKlein Preis der kleinen AusfŸhrung
	 *  @args preisGross Preis der gro§en AusfŸhrung
	 *  @args formatter Instanz des Number-Formatter
	 */
	
	final int EUR_FRACT_DIGITS = 2;
	
	String sorte;
	double preisKlein, preisGross;
	NumberFormat formatter = NumberFormat.getNumberInstance();
	
	/** setSorte :: €ndert den Namen der Pizzasorte.
	 * 
	 *  @param neueSorte Neuer Name der Sorte
	 *  @return void
	 * 
	 * */
	
	public void setSorte (String neueSorte) {
		sorte = neueSorte;
	}

	/** setPreisKlein :: €ndert den Preis fŸr die kleine AusfŸhrung.
	 * 
	 *  @param preis Neuer Preis
	 *  @return void
	 * 
	 * */
	
	public void setPreisKlein (double preis) {
		preisKlein = preis;
	}

	/** setPreisGross :: €ndert den Preis fŸr die gro§e AusfŸhrung.
	 * 
	 *  @param preis Neuer Preis
	 *  @return void
	 * 
	 * */
	
	public void setPreisGross (double preis) {
		preisGross = preis;
	}
	
	/** getSorte :: Gibt den Namen der Pizzasorte zurŸck.
	 * 
	 *  @return Name der Pizzasorte
	 * 
	 * */
	
	public String getSorte () {
		return (sorte);
	}
	
	/** getPreisKlein :: Gibt den Preis fŸr die kleine AusfŸhrung zurŸck.
	 * 
	 *  @return Preis der kleinen AusfŸhrung
	 * 
	 * */
	
	public double getPreisKlein () {
		return (preisKlein);
	}

	/** getPreisGross :: Gibt den Preis fŸr die gro§e AusfŸhrung zurŸck.
	 * 
	 *  @return Preis der gro§en AusfŸhrung
	 * 
	 * */
	
	public double getPreisGross () {
		return (preisGross);
	}

	/** preiserhoehung :: Erhšht die Preise der Pizza um prozentsatz %.
	 * 
	 *  @param prozentsatz Preiserhšhung in %
	 *  @return void
	 * 
	 * */
	
	public void preiserhoehung (double prozentsatz) {
		setPreisGross (getPreisGross() * (1 + prozentsatz / 100.0));
		setPreisKlein (getPreisKlein() * (1 + prozentsatz / 100.0));
	}

	/** toString :: Liefert eine Kurzbeschreibung der Pizza als String.
	 * 
	 *  @return Kurzbeschreibung mit Sortenname und Preisen
	 * 
	 * */
	
	public String toString () {
		return ("Die \"Pizza " + getSorte() + "\" " +
				"kostet in der kleinen Variante " +
				formatter.format (getPreisKlein ()) + " EUR, in der gro§en " +
				formatter.format (getPreisGross ()) + " EUR!");
	}

	/** Konstruktor der Klasse Pizza
	 * 
	 *  Momentan nur verwendet, um die gewŸnschte Anzahl Nachkommastellen
	 *  festzulegen.
	 * 
	 * */
	
	public Pizza () {
		formatter.setMaximumFractionDigits (EUR_FRACT_DIGITS);
		formatter.setMinimumFractionDigits (EUR_FRACT_DIGITS);
	}
	
}
