/*
 * "Grundkurs Programmieren in Java - Band 2 (2. Auflage, 2006)I"
 * 2003-2006, Carl Hanser Verlag
 * Loesungsvorschlag zu Aufgabe ? (Version 2.0)
 * (c) 2003-2006 D. Ratz, J. Scheffler, D. Seese, J. Wiesenberger
 *
 */

import java.io.*;
import java.net.*;
class EuroThread extends Thread {
  Socket c;          // Socket für den Clients
  BufferedReader in; // Eingabe-Strom zum Client
  PrintWriter out;   // Ausgabe-Strom zum Client

  // Einen Konstruktor für den EuroThread deklarieren
  EuroThread(Socket sock) {
    System.out.println("Neuer Client wird bearbeitet.");
    // Den Client-Socket in der Instanzvariablen speichern
    c = sock; 
    // Try-Catch-Block beginnen
    try {
      // Den Eingabe-Strom zum Client erzeugen
      in  = new BufferedReader(new InputStreamReader(c.getInputStream()));
      // Den Ausgabe-Strom zum Client erzeugen
      out = new PrintWriter(c.getOutputStream(), true);
    } 
    catch (IOException e) { }
  }

  public void run() {
    try {
      
      String zeile;
      double wert;
      boolean toEuroDesired, nochmal;
      
      nochmal = true;
      
      // Protokoll für die Unterhaltung
      
      while (nochmal) {
        out.println("Welche Waehrung wollen Sie eingeben (DM oder EUR)?");
        zeile = in.readLine();
        if (zeile == null) break;
        toEuroDesired = zeile.toUpperCase().startsWith("DM");
        
        out.println("Welchen Wert wollen Sie umrechnen?");      
        zeile = in.readLine();
        if (zeile == null) break;
        wert = Double.parseDouble(zeile);

        if (toEuroDesired) {
          wert = EuroConverter.convertToEuro (wert, EuroConverter.DEM);
          out.println("Wert in EUR: " + wert);      
        }
        else {
          wert = EuroConverter.convertFromEuro (wert, EuroConverter.DEM);
          out.println("Wert in DM: " + wert);      
        }
        
        out.println();      
        out.println("Darf's noch eine Umrechnung sein?");      
        zeile = in.readLine();
        if (zeile == null) break;
        nochmal = zeile.startsWith("j") || zeile.startsWith("J");
      }
    } 
    catch (IOException ign) { } 
  }
}

