de.jsystems.framework.common
Class DynamicItem

java.lang.Object
  extended byde.jsystems.framework.common.Item
      extended byde.jsystems.framework.common.DynamicItem
All Implemented Interfaces:
Serializable

public abstract class DynamicItem
extends Item

Diese Klasse ist ein Item mit der Besonderheit, dass erst zur Laufzeit entschieden wird, welche Attribute das Item hat. Auch können zur Laufzeit bestehende Attribute gelöscht oder neue hinzugefuegt werden. Die einzigen Attribute, die immer da sind, ist die eindeutige ID (Item.getItemID()) des Items sowie der Name (Item.getName()) des Items. Zusaetzliche Attribute im DynamicItem werden nicht durch Groß-/Kleinschreibung unterschieden! Die Attribute 'Name' und 'name' sind also gleich und beim hinzufuegen dieser Attribute ueber die Methode addAttribute(String, Class) wuerde das zuletzt hinzugefuegte das zuerst hinzugefuegte ueberschreiben. Primitive Datentypen koennen hier nicht gespeichert werden. Hierfuer muss dann auf die entsprechenden Wrappertypen ausgewichen werden.

Zu beachten ist, das auch hier alle gespeicherten Attributwerte das Interface Serializable implementieren muessen, da ansonsten der Aufruf der Methode Item.deepCopy() fehlschlaegt.

Version:
1.0
Copyright by Jens Homm 2001 - 2003
Author:
Jens Homm JSYSTEMS
See Also:
Serialized Form

Field Summary
 
Fields inherited from class de.jsystems.framework.common.Item
DISABLE, DISABLE_MUSSFELD, INVISIBLE, INVISIBLE_MUSSFELD, MUSSFELD, STANDARD
 
Constructor Summary
DynamicItem()
          Erzeugt ein DynamicItem.
DynamicItem(String itemID)
          Erzeugt ein neues DynamicItem.
DynamicItem(String itemID, String name)
          Erzeugt ein neues DynamicItem mit der uebergebenen ID und dem uebergebenen Namen.
 
Method Summary
 void addAttribute(String name, Class typ)
          Fügt dem Item ein neues Attribut hinzu.
 boolean containsAttribut(String name)
          Prüft ob es das gewünschte Attribut in diesem Item gibt.
 int getAttributeCount()
          Gibt die Anzahl Attribute im Item zurück.
 Iterator getAttributeNames()
          Gibt einen Iterator mit allen Attributnamen zurück.
 Class getTyp(String name)
          Gibt den Typ des Attributes mit dem uebergebenen Namen zurück.
 Object getValue(String name)
          Gibt den Wert des Attributes mit dem uebergebenen Namen zurueck.
 void removeAttribute(String name)
          Löscht das angegebene Attribut aus dem Item.
 void setValue(String name, Object value)
          Setzt den Wert des Attributes mit dem uebergebenen Namen.
 
Methods inherited from class de.jsystems.framework.common.Item
deepCopy, equals, getItemID, getName, isAttributeEditable, isAttributeMussfeld, isAttributeVisible, registerAttribute, setName, toString
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

DynamicItem

public DynamicItem()
Erzeugt ein DynamicItem. Dieses enthaelt dabei einen leeren Namen und eine eindeutige ID.


DynamicItem

public DynamicItem(String itemID)
Erzeugt ein neues DynamicItem. Dieses enthaelt dabei einen leeren Namen und die uebergebene ID. Wird hier NULL oder ein Leerstring uebergeben, so wird eine IllegalArgumentException ausgeloest. Die uebergebene ID sollte eindeutig sein, da es sonst zu Problemen in den Models kommen kann, da diese immer nur mit der ID eines Items arbeiten zum finden oder loeschen.

Parameters:
itemID - Eine eindeutige ID fuer das Item.

DynamicItem

public DynamicItem(String itemID,
                   String name)
Erzeugt ein neues DynamicItem mit der uebergebenen ID und dem uebergebenen Namen. Wird fuer die ID NULL oder ein Leerstring uebergeben, so wird eine IllegalArgumentException ausgeloest. Die uebergebene ID sollte eindeutig sein, da es sonst zu Problemen in den Models kommen kann, da diese immer nur mit der ID eines Items arbeiten zum finden oder loeschen.

Parameters:
itemID - Eine eindeutige ID fuer das Item.
name - Ein Name fuer das Item.
Method Detail

addAttribute

public void addAttribute(String name,
                         Class typ)
Fügt dem Item ein neues Attribut hinzu. Falls unter diesem Namen schon ein Attribut existiert wird das alte gelöscht. Auch der Wert des alten Attributes wird gelöscht. Zwischen Groß-/Kleinschreibung wird nicht unterschieden.

Parameters:
name - Name des neuen Attributes.
typ - Klassentyp des Attributes.

removeAttribute

public void removeAttribute(String name)
Löscht das angegebene Attribut aus dem Item. Zwischen Groß-/Kleinschreibung wird nicht unterschieden.

Parameters:
name - Name des zu löschenden Attributes.

getAttributeNames

public Iterator getAttributeNames()
Gibt einen Iterator mit allen Attributnamen zurück. Über diese Namen können dann alle Werte zu diesen Attributen ausgelesen werden. Die Reihenfolge der Namen entspricht der Reihenfolge in der die Attribute hinzugefügt wurden.

Returns:
Ein Iterator mit allen Attributnamen.

getAttributeCount

public int getAttributeCount()
Gibt die Anzahl Attribute im Item zurück.

Returns:
Die Anzahl Attribute im Item.

getTyp

public Class getTyp(String name)
Gibt den Typ des Attributes mit dem uebergebenen Namen zurück. Zwischen Groß-/Kleinschreibung wird nicht unterschieden. Falls es das Attribut nicht gibt wird NULL zurückgegeben.

Parameters:
name - Name des Atributes.
Returns:
Typ des Attributes oder NULL.

getValue

public Object getValue(String name)
Gibt den Wert des Attributes mit dem uebergebenen Namen zurueck. Zwischen Groß-/Kleinschreibung wird nicht unterschieden. Falls es das Attribut nicht gibt oder der Wert des Attributes nicht gesetzt ist, wird NULL zurückgegeben.

Parameters:
name - Name des Attributes.
Returns:
Wert des Attributes oder NULL.

setValue

public void setValue(String name,
                     Object value)
              throws WrongValueTypeException
Setzt den Wert des Attributes mit dem uebergebenen Namen. Falls der übergebene Wert nicht zum Typ des Attributes passt wird eine WrongValueTypeException ausgelöst. Zwischen Groß-/Kleinschreibung wird nicht unterschieden. Wenn ein Leerstring übergeben wurde, und das Attribut nicht vom Typ String ist, wird das Attribut auf NULL gesetzt. Wenn NULL uebergeben wird, wird der Wert fuer das Attribut immer auf NULL gesetzt. Falls unter dem uebergebenen Namen kein Attribut angelegt wurde passiert nichts.

Parameters:
name - Name des Atributes.
value - Der neue Wert des Attributes.
Throws:
WrongValueTypeException - Wird ausgelöst wenn der Typ von value nicht zum Typ des Atributes passt.

containsAttribut

public boolean containsAttribut(String name)
Prüft ob es das gewünschte Attribut in diesem Item gibt. Wenn ja wird true zurückgegeben, ansonsten false.

Parameters:
name - Name des gesuchten Attributes.
Returns:
true, wenn es das Attribut gibt, ansonsten false.