Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## de.jsystems.framework.common
Class DynamicItem

    java.lang.Object
      de.jsystems.framework.common.Item
          de.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.

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD