/*
 * FunktionsManager.java	01.07.99
 *
 *
 * Beilage zum Buch "Software-Entwurf mit UML"
 * von J.Seemann & J. Wolff von Gudenberg,
 * Springer-Verlag, 1999
 * 
 */
 
import java.util.*;

/** Hilfsklasse f&uuml;r den Formelparser zur Verwaltung der Funktionen */

public class FunktionManager
{
   static Hashtable Funktionen = new Hashtable();

   /** eine Funktion registrieren */
	 static void anmelden(Funktion f)
   {
      if (Funktionen.put(f.getName(),f) != null)
      {
         // Fehler
      }
   }

   /** pr&uuml;ft, der &uuml;bergebene String ein g&uuml;ltiger Funktionsname ist */
   static boolean isFunktion(String s)
   {
      return Funktionen.containsKey(s.toUpperCase());
   }

	 /** liefert eine Referenz auf das dem String entsprechenden Funktionsobjekts */
   static Funktion getFunktion(String s)
   {
      return (Funktion)Funktionen.get(s.toUpperCase());
   }

	 // Konstruktor
   FunktionManager()
   {
      anmelden(new FKT_SIN());
      anmelden(new FKT_COS());
      anmelden(new FKT_TAN());
      anmelden(new FKT_EXP());
      anmelden(new FKT_LOG());
      anmelden(new FKT_SQRT());
      anmelden(new FKT_ABS());
   }
}