Class Operator


  • public final class Operator
    extends java.lang.Object
    Implementiert jedes Operatorsymbol als Entwurfsmuster Singleton. Jedes Operatorsymbol kann abhängig vom Kontext im Ausdruck eine andere Operation darstellen. Deshalb führt jeder Operator eine Liste von Handler die ihn behandeln können.
    • Method Summary

      Modifier and Type Method Description
      static boolean enthaelt​(java.lang.String symbol)
      ermiitelt, ob in der Menge der Operatoren ein Operator mit dem gegebenen Namen existiert..
      boolean equals​(java.lang.Object obj)  
      java.lang.Object execute​(java.lang.Object... werte)
      Wendet den Operator auf die Liste der Operanden an.
      java.lang.Object execute​(java.util.List<?> werte)
      Wendet den Operator auf die Menge der Operanden an.
      static Operator getOperator​(java.lang.String symbol)
      Gibt den Operator zu einem Symbol zurück.
      java.lang.String getSymbol()
      Gibt das Symbol des Operators zurück.
      int hashCode()  
      static void registerHandler​(Handler handler)
      Registriert einen Handler.
      java.lang.String toString()  
      • Methods inherited from class java.lang.Object

        clone, finalize, getClass, notify, notifyAll, wait, wait, wait
    • Method Detail

      • enthaelt

        public static boolean enthaelt​(java.lang.String symbol)
        ermiitelt, ob in der Menge der Operatoren ein Operator mit dem gegebenen Namen existiert..
        Parameters:
        symbol - Operationsymbol
        Returns:
        true, wenn der Operator existiert
      • getOperator

        public static Operator getOperator​(java.lang.String symbol)
        Gibt den Operator zu einem Symbol zurück. Der Operator wird neu erzeugt, wenn das Symbol noch unbekannt ist.
        Parameters:
        symbol - Operationsymbol
        Returns:
        Operator
      • registerHandler

        public static void registerHandler​(Handler handler)
        Registriert einen Handler. Der Handler wird in die jeweiligen Listen der von ihm unterstützten Operatoren eingetragen.
        Parameters:
        handler - Handler
      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class java.lang.Object
      • equals

        public boolean equals​(java.lang.Object obj)
        Overrides:
        equals in class java.lang.Object
      • execute

        public java.lang.Object execute​(java.util.List<?> werte)
        Wendet den Operator auf die Menge der Operanden an. Die Operanden werden von links nach rechts bzw. in der Reihenfolge der Iteration abgearbeitet. Wenn kein passender Handler gefunden wurde, wird eine InterpreterException geworfen.
        Parameters:
        werte - Menge von Operanden
        Returns:
        Ergebnis der Operation
      • execute

        public java.lang.Object execute​(java.lang.Object... werte)
        Wendet den Operator auf die Liste der Operanden an. Die Operanden werden von links nach rechts bzw. in der Reihenfolge der Iteration abgearbeitet. Wenn kein passender Handler für die Operation gefunden wird, wird eine InterpreterException geworfen.
        Parameters:
        werte - Menge von Operanden
        Returns:
        Ergebnis der Operation
      • getSymbol

        public java.lang.String getSymbol()
        Gibt das Symbol des Operators zurück.
        Returns:
        Operatorsymbol
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object