wesen.robot
Class ObjectVector

java.lang.Object
  |
  +--java.util.AbstractCollection
        |
        +--java.util.AbstractList
              |
              +--java.util.Vector
                    |
                    +--wesen.robot.ObjectVector

public class ObjectVector
extends Vector
implements AnimationVector

Diese Klasse implementiert das AnimationVector Interface und verwaltet alle Objekte der Simulationswelt. Des Simulator kommuniziert nur dem Objekt dieser Klasse, d.h. zu den Robotern usw. hat dieser keine Referenz.

Author:
Wesen-Team
Version: 1.0

Field Summary
 (package private) final static longserialVersionUID
          Ueberschreiben der serialisierungs-ID, damit werden InvalidClassException ausgeschlossen.

Fields inherited from class java.util.Vector
elementData, elementCount, capacityIncrement

Fields inherited from class java.util.AbstractList
modCount

Constructor Summary
ObjectVector()
          Der Konstruktor wird nicht direkt angesprochen

Method Summary
 voidaddObject(int x, int y, String fileName)
          Hinzufuegen eines Objektes.
 voidcheckObjectDir(String dir)
          Damit der Simulator mit JWS bzw.
 intcountNumberOfRoboters()
          Method declaration
 synchronized voiddrawIt(Graphics2D g2)
          Zeichnet alle beteiligten Objekte.
 StringgetActorSuffix()
          Rueckgabe der Dateiendung "properties" fuer Aktoren.
 booleangetClipboard(Simulator simulator, Umgebung umgebung)
          Ein Objekt wird aus dem Clipboard in die Umgebung eingefuegt, dabei wird eine freie Postionen ausgehend von (0,0) gesucht.
 StringgetDirOfRobotData()
          Dateiverzeichnis welches die XML- und Propertie-Dateien enthaelt.
 intgetMark()
          Rueckgabe des markierten Objektes.
 DimensiongetMaxOccupiedYX()
          Sucht den Punktes der am weitesten von der Koordinate (0,0) durch ein Objekte belegt ist.
 AnimationObjectgetObjectAtPoint(int iX, int iY)
          Method declaration
 intgetObjectAtPointID(int iX, int iY)
          Sucht ob der gegebene Punkt durch ein Objekt (Roboter bzw.
 intgetObjectDiameter(int workId)
          Rueckgabe der Durchmessers des entsprechenden Objektes.
 StringgetRobotSuffix()
          Rueckgabe der Dateiendung "xml" fuer Roboter-Beschreibung
 StringgetToolTipOfObjectAtPoint(int iX, int iY)
          Method declaration
 synchronized voidinitRoboter()
          Erster Simulationscyklus
 synchronized voidmoveRoboter()
          Hier werden die Roboter neu platziert.
 voidreadWorld(ObjectInputStream ois)
          Einlesen der serialisierten Objekte.
 voidregisterObserver(Observer observer)
          Method declaration
 voidremoveAllElements(Simulator simulator)
          Loescht alle Elemente des Vectores.
 voidremoveOneElement(Simulator simulator, int workId)
          Loescht eine einzelnes Element im Vector.
 voidresetPosition()
          Objekte in Ausgangspostion bringen.
 voidsaveWorld(ObjectOutputStream oos)
          Speichern der Welt.
 voidsetAlphaGrad(double dGrad, int markId)
          Winkel fuer das Objekt setzen.
 booleansetClipboard()
          Objekt ins Clipboard setzen.
 voidsetFreeIDNumber(AnimationObject ao)
          Erstelle eine eindeutige ID fuer das Objekte.
 voidsetMark(Simulator simulator, int workId, boolean isMarkOn)
          Markierung fuer ein Objekt setzen bzw.
 voidsetPos(int workId, int iX, int iY)
          Setzt das Objekt (Aktor bzw.
 voidstartBeanEditor(int iX, int iY, Umgebung umgebung)
          Method declaration

Methods inherited from class java.util.Vector
copyInto, trimToSize, ensureCapacity, setSize, capacity, size, isEmpty, elements, contains, indexOf, indexOf, lastIndexOf, lastIndexOf, elementAt, firstElement, lastElement, setElementAt, removeElementAt, insertElementAt, addElement, removeElement, removeAllElements, clone, toArray, toArray, get, set, add, remove, add, remove, clear, containsAll, addAll, removeAll, retainAll, addAll, equals, hashCode, toString, subList, removeRange

Methods inherited from class java.util.AbstractList
iterator, listIterator, listIterator

Methods inherited from class java.lang.Object
getClass, notify, notifyAll, wait, wait, wait, finalize

Field Detail

serialVersionUID

final static long serialVersionUID
Ueberschreiben der serialisierungs-ID, damit werden InvalidClassException ausgeschlossen. Besser waere alle nicht fuer die Serialsierung benutzten Variablen als transient zu deklarieren, dann wuerde bei einer Aenderung der nicht relevanten Variablen dieses Problem nicht auftreten.
Constructor Detail

ObjectVector

public ObjectVector()
Der Konstruktor wird nicht direkt angesprochen
Method Detail

addObject

public void addObject(int x, int y, String fileName)
Hinzufuegen eines Objektes.

checkObjectDir

public void checkObjectDir(String dir)
Damit der Simulator mit JWS bzw. mit Jar-Dateien gebraucht werden kann. Müssen die in JAR-Dateien gehaltenen XML- und Property-Dateien exportiert werden. Die XML werden unter DIR_OBJECT gespeichert. Nur Dateien dir
Parameters:
dir - Das Ziel-Verzeichnis der XML bzw. Property-Dateien
See Also:

countNumberOfRoboters

public int countNumberOfRoboters()
Method declaration
Returns:
See Also:

drawIt

public synchronized void drawIt(Graphics2D g2)
Zeichnet alle beteiligten Objekte. Jedes Objekt muss sich selber zeichnen koennen.

getActorSuffix

public String getActorSuffix()
Rueckgabe der Dateiendung "properties" fuer Aktoren.

getClipboard

public boolean getClipboard(Simulator simulator, Umgebung umgebung)
Ein Objekt wird aus dem Clipboard in die Umgebung eingefuegt, dabei wird eine freie Postionen ausgehend von (0,0) gesucht. Die Suche nach einer Luecke erfolgt zuerst in der X-Richtung dann in der Y-Richtung, d.h. Zeilenweise wird abgetastet.

getDirOfRobotData

public String getDirOfRobotData()
Dateiverzeichnis welches die XML- und Propertie-Dateien enthaelt. Diese Dateien beschreiben das Verhalten der Objekte. Wobei fuer die Roboter XML verwendet wird.

getMark

public int getMark()
Rueckgabe des markierten Objektes.

getMaxOccupiedYX

public Dimension getMaxOccupiedYX()
Sucht den Punktes der am weitesten von der Koordinate (0,0) durch ein Objekte belegt ist.

getObjectAtPoint

public AnimationObject getObjectAtPoint(int iX, int iY)
Method declaration
Parameters:
iX
iY
Returns:
See Also:

getObjectAtPointID

public int getObjectAtPointID(int iX, int iY)
Sucht ob der gegebene Punkt durch ein Objekt (Roboter bzw. Aktor) besetzt ist.

getObjectDiameter

public int getObjectDiameter(int workId)
Rueckgabe der Durchmessers des entsprechenden Objektes.

getRobotSuffix

public String getRobotSuffix()
Rueckgabe der Dateiendung "xml" fuer Roboter-Beschreibung

getToolTipOfObjectAtPoint

public String getToolTipOfObjectAtPoint(int iX, int iY)
Method declaration
Parameters:
iX
iY
Returns:
See Also:

initRoboter

public synchronized void initRoboter()
Erster Simulationscyklus

moveRoboter

public synchronized void moveRoboter()
Hier werden die Roboter neu platziert. In naechsten Bild werden diese so angzeigt.

readWorld

public void readWorld(ObjectInputStream ois)
throws java.io.IOException
Einlesen der serialisierten Objekte.

registerObserver

public void registerObserver(Observer observer)
Method declaration
Parameters:
observer
See Also:

removeAllElements

public void removeAllElements(Simulator simulator)
Loescht alle Elemente des Vectores.

removeOneElement

public void removeOneElement(Simulator simulator, int workId)
Loescht eine einzelnes Element im Vector.

resetPosition

public void resetPosition()
Objekte in Ausgangspostion bringen.

saveWorld

public void saveWorld(ObjectOutputStream oos)
throws java.io.IOException
Speichern der Welt. Jedes Objekt speichert sich selbst und seine abhaengige Objekte.

setAlphaGrad

public void setAlphaGrad(double dGrad, int markId)
Winkel fuer das Objekt setzen.

setClipboard

public boolean setClipboard()
Objekt ins Clipboard setzen.

setFreeIDNumber

public void setFreeIDNumber(AnimationObject ao)
Erstelle eine eindeutige ID fuer das Objekte. Dabei ist das erste Zeichen die Art des Objektes und die folgenden Zeichen eine inkrementiert Zahl. Das erste Zeichen und die inkrementierte Zahl identifizieren das Objekt eindeutig.
Parameters:
ao - Das Objekt fuer welches die ID erweitert werden muss. Beim Eintritt besteht die ID nur aus einem Zeichen welche die Art bezeichnet.

setMark

public void setMark(Simulator simulator, int workId, boolean isMarkOn)
Markierung fuer ein Objekt setzen bzw. entfernen. Gleichzeitig kann nur ein Objekt markiert sein.

setPos

public void setPos(int workId, int iX, int iY)
Setzt das Objekt (Aktor bzw. Roboter) entsprechend seiner x und y Position

startBeanEditor

public void startBeanEditor(int iX, int iY, Umgebung umgebung)
Method declaration
Parameters:
iX
iY
umgebung
See Also:

Association Links

to Class java.lang.String

Verzeichnis der Roboter und Aktoren Dateien, diese beschreiben die Eigenschaften eines Roboters bzw. Aktoren

to Class java.lang.String

Filenamensuffix fuer die Beschreibung der Roboter

to Class java.lang.String

Datei welche in dieser Datei aufgelistet sind werden moeglicherweise aus der JAR-Datei gelesen und in das Benutzerverzeichnis gespeichert.

to Class java.lang.String

Filenamensuffix fuer die Beschreibung der Aktoren

to Class wesen.util.NewObservable

to Class wesen.robot.AnimationObject

Enthaelt moeglicherweise eine Objekt. Diese Objekt kann Eingefuegt werden.

Supplier Cardinality 0..1
Supplier Qualifier besetzt Clipboard

to Class wesen.robot.AnimationObject

Client Cardinality 1
Supplier Role hat
Supplier Cardinality *

Dependency Links

to Class Diagram wesen.simulator