remote
Class InputDeviceEngine

java.lang.Object
  |
  +--java.util.Observable
        |
        +--remote.InputDeviceEngine

class InputDeviceEngine
extends java.util.Observable


Intention: Rechenwerk der InputDevice. In Abhaengigkeit vom jeweiligen Zustand akzeptiert die InputDevice Zahlen oder Operationseingaben (enter, transfer, cancel, order). Hier werden temporaer, bei gestartetem Boersenc.-Betrieb -bedient durch die jeweiligen Angestellten (agent)-, die Orders (Bestellungen) gespeichert. Beim Aufstarten des Input Devices (state==0) wird der Agent einmalig initialisiert. Danach kann mit den Eingaben der Orders begonnen werden, welche -falls nicht 'cancel' gedrueckt wurde- bei erfolgreichem Abschluss in einem Vektor 'orderVector' gespeichert werden und darauf warten, bis der Agngestellt 'transfer' drueckt (temporaer->permanent). Somit werden alle offenen Bestellungen (im 'orderVector') an die Docking-Station uebergeben und der orderVector wird neu initialisiert, wie auch die InputDevice.
Responsabilities:


Field Summary
private  int agent
          speichert die OrderItems in einem Vector temporaer ab
private  Op op
           
private  java.util.Stack ops
          Stack fuer die Operanden.
private  Order order
          speichert alle Orders bis zum Transfer hier
private  java.util.Vector orderItemsVector
          einzelnes Order-Objekt
private  java.util.Vector orderVector
          Interner Zustand des InputDevices.
private  int state
          muss gespeichert werden, da nur einmal eingegeben
private static java.lang.String[] stateString
          Beinhaltet zu den Zustaenden die jeweilige textuelle Beschreibung
 
Fields inherited from class java.util.Observable
 
Constructor Summary
(package private) InputDeviceEngine()
          Post: Erzeugt und Initialisiert ein [InputDeviceEngine]-Objekt.
 
Method Summary
private  void addToOrderItems(java.lang.Object anOrderItemPart)
          Post: Fuegt dem orderItemsVector einen neuen OrderItemPart [Artikel, Quantitaet] hinzu.
private  void addToOrders(Order anOrder)
          Post: Fuegt dem orderVector ein neues Order-Objekt hinzu.
private  int agent()
          Post: Gibt die ID des Agenten zureuck.
private  void agent(int anAgentID)
          Post:Setzt den Agenten.
(package private)  void clear()
          Post: Reset der InputDeviceEngine.
private  float convertStringToFloat(java.lang.String valueAsString)
          Post: Hilfsmethode, um String-Objekte in primitiven Datentyp 'float' zu verwandeln.
private  int convertStringToInt(java.lang.String valueAsString)
          Post: Hilfsmethode, um String-Objekte in primitiven Datentyp 'int' zu verwandeln.
private  void createElement()
          Post: Erstellt ein neues Order-Objekt.
(package private)  void digit(java.lang.String aString)
          Post: Teilt der Engine mit, dass eine Zifferntaste gedrueckt wurde.
(package private)  void enter()
          Post: Enter-Taste wurde gedrueckt.
(package private)  void enterOrder()
          Post: enterOrder-Taste wurde gedrueckt.
private  void finishOrder()
          Post: Schliesst den aktuellen Order ab, indem dem orderItemsVector der neuen OrderItemPart [Quantitaet] hinzugefuegt und der orderVector gefuellt wird.
private  void initializeOrder()
          Post: Initialisiert ein neues Order-Objekt und setzt via dessen setter-Methoden die essentiellen Anfangs-Werte.
private  boolean isZeroValue()
          Post: Antwortet mit True, falls 0 Wert eingegeben wurde.
 void notifyObservers()
          Post: Benachrichtigt alle Observer, dass sich der Wert des Akkus geaendert hat und liefert den neuen Wert als Argument fuer die notifyObserver-Nachricht mit.
(package private)  Op op()
          Post: Antwortet mit dem aktuell gesetzten Operator.
(package private)  void op(Op anOp)
          Post: Setzt den Operator.
(package private)  java.util.Stack ops()
          Post: Antwortet mit dem gesamten Operandenstack.
(package private)  void ops(java.util.Stack aStack)
          Post: Setzt den Operandenstack auf [aStack].
private  Order order()
          Post: gibt das aktuelle Order-Objekt zurueck.
private  void order(Order anOrder)
          Post: Setzt das aktuelle Order-Objekt.
private  java.util.Vector orderItemsVector()
          Post: Gibt den orderItemsVector zurueck.
 int[] orderItemsVectorToArray()
          Post: Fuegt alle OrderItems der Reihe nach aus dem Vector in ein neues Array und antwortet mit diesem Array.
private  java.util.Vector orderVector()
          Post: Gibt den orderVector zurueck.
(package private)  void period()
          Post: Teilt der Engine mit, dass die Dezimalpunktaste gedrueckt wurde und fuehrt die notwendigen Aktionen und Zustandwechsel durch.
private  java.lang.String state()
          Post: Antwortet mit dem zum jeweiligen Status entsprechenden String in 'stateString'.
(package private)  void transfer()
          Post: Transfertaste wurde gedrueckt.
 
Methods inherited from class java.util.Observable
addObserver, clearChanged, countObservers, deleteObserver, deleteObservers, hasChanged, notifyObservers, setChanged
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

orderVector

private java.util.Vector orderVector
Interner Zustand des InputDevices. state = 0 -> Initialzustand, Eingabe der AgentID
state = 1 -> Vergabe des Zeitstempels fuer den Order, System
state = 2 -> Origin, Eingabe Vorkommastellen von Origin
state = 3 -> Origin, Eingabe Nachkommastellen (von Origin) Point eingegeben
state = 4 -> Origin, Eingabe Nachkommastellen von Origin
state = 5 -> OrderItems, Eingabe der ArtikelID
state = 6 -> OrderItems, Eingabe der Quantity
state = 7 -> Transfer durchgefuehrt


order

private Order order
speichert alle Orders bis zum Transfer hier


orderItemsVector

private java.util.Vector orderItemsVector
einzelnes Order-Objekt


agent

private int agent
speichert die OrderItems in einem Vector temporaer ab


state

private int state
muss gespeichert werden, da nur einmal eingegeben


ops

private java.util.Stack ops
Stack fuer die Operanden. Der oberste Wert im Operandenstack repraesentiert den Akku der InputDevice.


op

private Op op

stateString

private static final java.lang.String[] stateString
Beinhaltet zu den Zustaenden die jeweilige textuelle Beschreibung

Constructor Detail

InputDeviceEngine

InputDeviceEngine()
Post: Erzeugt und Initialisiert ein [InputDeviceEngine]-Objekt.
Prec: -

See Also:
Method Detail

ops

java.util.Stack ops()
Post: Antwortet mit dem gesamten Operandenstack. Op.top() repraesentiert den Akku der InputDevice.
Prec: -

See Also:
Stack

ops

void ops(java.util.Stack aStack)
Post: Setzt den Operandenstack auf [aStack]. Bitte beachten, die Methode setzt den _gesamten_ Stack und nicht nur das oberste Element.
Prec: -

Parameters:
aStack - Neu zu setzender Operandenstack.
See Also:

op

Op op()
Post: Antwortet mit dem aktuell gesetzten Operator.
Prec: -

See Also:

state

private java.lang.String state()
Post: Antwortet mit dem zum jeweiligen Status entsprechenden String in 'stateString'.
Prec: -

See Also:

op

void op(Op anOp)
Post: Setzt den Operator.
Prec: -

Parameters:
anOp - Neu zu setzender Operator.
See Also:

order

private Order order()
Post: gibt das aktuelle Order-Objekt zurueck.
Prec: -

See Also:

order

private void order(Order anOrder)
Post: Setzt das aktuelle Order-Objekt.
Prec: -

See Also:

orderVector

private java.util.Vector orderVector()
Post: Gibt den orderVector zurueck.
Prec: -

See Also:

orderItemsVector

private java.util.Vector orderItemsVector()
Post: Gibt den orderItemsVector zurueck.
Prec: -

See Also:

agent

private int agent()
Post: Gibt die ID des Agenten zureuck.
Prec: -

See Also:

agent

private void agent(int anAgentID)
Post:Setzt den Agenten.
Prec: -

See Also:

isZeroValue

private boolean isZeroValue()
Post: Antwortet mit True, falls 0 Wert eingegeben wurde.
Prec: -

See Also:

createElement

private void createElement()
Post: Erstellt ein neues Order-Objekt.
Prec: -

See Also:

addToOrders

private void addToOrders(Order anOrder)
Post: Fuegt dem orderVector ein neues Order-Objekt hinzu.
Prec: -

See Also:

addToOrderItems

private void addToOrderItems(java.lang.Object anOrderItemPart)
Post: Fuegt dem orderItemsVector einen neuen OrderItemPart [Artikel, Quantitaet] hinzu.
Prec: -

Parameters:
anOrderItemPart - Artikel oder dessen Menge (Quantitaet)
See Also:

finishOrder

private void finishOrder()
Post: Schliesst den aktuellen Order ab, indem dem orderItemsVector der neuen OrderItemPart [Quantitaet] hinzugefuegt und der orderVector gefuellt wird.
Prec: -

See Also:

initializeOrder

private void initializeOrder()
Post: Initialisiert ein neues Order-Objekt und setzt via dessen setter-Methoden die essentiellen Anfangs-Werte.
Prec: -

See Also:

orderItemsVectorToArray

public int[] orderItemsVectorToArray()
Post: Fuegt alle OrderItems der Reihe nach aus dem Vector in ein neues Array und antwortet mit diesem Array. Die aus dem Vector ausgelesenen Elemente muessen zuerst in den Typ des Arrays [int] konvertiert werden..
Prec: -

See Also:

notifyObservers

public void notifyObservers()
Post: Benachrichtigt alle Observer, dass sich der Wert des Akkus geaendert hat und liefert den neuen Wert als Argument fuer die notifyObserver-Nachricht mit.
Prec: -

Overrides:
notifyObservers in class java.util.Observable
See Also:

period

void period()
Post: Teilt der Engine mit, dass die Dezimalpunktaste gedrueckt wurde und fuehrt die notwendigen Aktionen und Zustandwechsel durch.
Prec: -

See Also:

digit

void digit(java.lang.String aString)
Post: Teilt der Engine mit, dass eine Zifferntaste gedrueckt wurde. Fuegt eine Ziffer zum aktuell im Akku befindlichen Wert hinzu und fuehrt die ggf. notwendigen Zustandswechsel durch.
Prec: -

See Also:

enter

void enter()
Post: Enter-Taste wurde gedrueckt. Berechnung durchfuehren und ggf. Zustandswechsel vornehmen.
Prec: -

See Also:

clear

void clear()
Post: Reset der InputDeviceEngine.
Prec: -

See Also:

transfer

void transfer()
Post: Transfertaste wurde gedrueckt. Abschliessende Berechnung durchfuehren durch Status-Sicherung des aktuellen Order-Objektes und schliesslich Transfer an DockingStation, indem alle gespeicherten Orders im ordersVector an Dockingstation uebergeben werden. OrderVector() neu initialisieren und State (7) setzen.
Prec: -

See Also:

enterOrder

void enterOrder()
Post: enterOrder-Taste wurde gedrueckt. Falls der Zustand dies aktzeptiert, wird Engine wieder initialisiert indem ein neues Order-Objekt erstellt wird.
Prec: -

See Also:

convertStringToInt

private int convertStringToInt(java.lang.String valueAsString)
Post: Hilfsmethode, um String-Objekte in primitiven Datentyp 'int' zu verwandeln.
Prec: -

Parameters:
valueAsString - String
See Also:
inspection.StringToObjectConverter.Convert()

convertStringToFloat

private float convertStringToFloat(java.lang.String valueAsString)
Post: Hilfsmethode, um String-Objekte in primitiven Datentyp 'float' zu verwandeln.
Prec: -

Parameters:
valueAsString - String, der zu einem float konvertiert werden soll
See Also:
inspection.StringToObjectConverter.Convert()