|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectde.jsystems.framework.common.Item
Ein Item ist ein Eintrag in einem Model. Das Item sollte nur Attribute besitzen
sowie entsprechende get-/set-Methoden. Diese werden für die einzelnen Views
ausgewertet, damit die Einträge automatisch in der View angezeigt werden koennen.
Des weiteren sollten abgeleitete Klassen immer zwei Konstruktoren zu Verfuegung
stellen, wobei einer Parameterlos ist und der andere einen String als Parameter
erwartet. Diese Konstruktoren sollten dann auch einen entsprechenden super()-Aufruf
enthalten, mit dem die Parameter weiter gegeben werden. Damit ist sichergestellt,
das die Methoden
createNewItem()
und
createNewItem(String)
im BusinessModel
korrekt
funktionieren. Die Attribute sollten registriert werden, damit die View die
Eingabefelder entsprechend schalten bzw. Mußfelder auf Eingabe prüfen kann.
Mußfelder werden nur auf Existenz abgefragt. Ob die Eingabe selbst richtig
ist, muß in der View entsprechend geprüft werden (z. B. ueber den
ViewItemValidator
). Damit alles richtig
funktioniert, sollten also alle Mußfelder sowie nicht editierbare Felder und
nicht sichtbare Felder registriert werden. Wenn ein Feld mehr als eine
Eigenschaft hat(z.B. sichtbar aber nicht editierbar) müssen beim registrieren
die entsprechenden Attribute verknüpft werden. Dazu sind in der Klasse schon
entsprechende Konstanten definiert, womit man sich das selbstverknuepfen
sparen kann. Bei den Eigenschaftsfeldern der Klasse handelt es sich um Objekte
vom Typ BitSet
. Das erlaubt sehr komfortable Abbildungen
der Eigenschaften.
Die Eigenschaften eines Attributes beziehen sich nur auf die Art der Anzeige
in einer View. Die Funktionalität der get/set-Methoden wird dadurch nicht
geändert. Ein in der Anzeige nicht Editierbares Feld kann durch den Aufruf
der entsprechenden set-Methode also sehr wohl geändert werden. Nicht
registrierte Attribute haben automatisch die folgenden Eigenschaften:
Jedes Item hat auch eine eindeutige ID. Diese wird mit einer Hilfsklasse erzeugt. Diese ID kann von aussen nicht gesetzt, sondern nur gelesen werden. Diese ID wird von den Models benötigt, um ein Item eindeutig zu identifizieren, z.B. beim löschen oder ersetzen. Alternativ kann die ID auch beim erzeugen des Items übergeben werden. Dann muß aber dafür gesorgt werden, das diese ID eindeutig ist, da es sonst beim abspeichern in einem Model Probleme geben kann.
Die Id eines Items ist das einzige Attribut, das in der Methode
equals(Object)
verglichen wird.
Alle Attribute eines Item sollten immer das Interface Serializable
implementieren, damit Items auch gespeichert werden koennen. Ausserdem setzt
die Methode deepCopy()
das voraus.
Field Summary | |
static BitSet |
DISABLE
Attribute mit dieser Eigenschaft können in einer View nicht Editiert werden. |
static BitSet |
DISABLE_MUSSFELD
Attribute mit dieser Eigenschaft sind Mußfelder die in einer View nicht Editiert werden können. |
static BitSet |
INVISIBLE
Attribute mit dieser Eigenschaft sind in einer View nicht sichtbar. |
static BitSet |
INVISIBLE_MUSSFELD
Attribute mit dieser Eigenschaft sind Mußfelder die in einer View nicht sichtbar sind. |
static BitSet |
MUSSFELD
Attribute mit dieser Eigenschaft sind Mußfelder. |
static BitSet |
STANDARD
Eigenschaften die jedes Attribut hat, auch wenn es nicht registriert wird. |
Constructor Summary | |
Item()
Erzeugt ein neues Item. |
|
Item(String itemID)
Erzeugt ein neues Item. |
|
Item(String itemID,
String name)
Erzeugt ein neues Item. |
Method Summary | |
Item |
deepCopy()
Diese Methode erzeugt eine Kopie des Items. |
boolean |
equals(Object obj)
Diese Methode vergleicht die ItemID von diesem Objekt mit der ItemID des übergebenen Objektes. |
String |
getItemID()
Gibt die ID dieses Items zurück. |
String |
getName()
Gibt den Namen des Items zurück. |
boolean |
isAttributeEditable(String attribName)
Ermittelt zu einem Attribut ob es editierbar ist oder nicht. |
boolean |
isAttributeMussfeld(String attribName)
Ermittelt zu einem Attribut ob es ein Mussfeld ist oder nicht. |
boolean |
isAttributeVisible(String attribName)
Ermittelt zu einem Attribut ob es sichtbar ist oder nicht. |
void |
registerAttribute(String attribName,
BitSet property)
Registriert ein Attribut des Items. |
void |
setName(String name)
Setzt den Namen für dieses Item. |
String |
toString()
Gibt den Namen des Items zurück. |
Methods inherited from class java.lang.Object |
clone, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Field Detail |
public static final BitSet STANDARD
public static final BitSet DISABLE
public static final BitSet INVISIBLE
public static final BitSet MUSSFELD
public static final BitSet DISABLE_MUSSFELD
public static final BitSet INVISIBLE_MUSSFELD
Constructor Detail |
public Item()
public Item(String itemID)
NULL
oder ein Leerstring uebergeben,
so wird eine IllegalArgumentException
ausgeloest.
itemID
- Die eindeutige ID für das Item.public Item(String itemID, String name)
NULL
oder ein Leerstring uebergeben,
so wird eine IllegalArgumentException
ausgeloest.
itemID
- Die eindeutige ID für das Item.name
- Der name des Items.Method Detail |
public void setName(String name)
name
- Der Name des Items.public String getName()
public String getItemID()
public void registerAttribute(String attribName, BitSet property)
attribName
- Der Name des Attributes. Dieser entspricht der zugehörigen
get/set-Methode ohne das get/set vornedran.
Gross/Kleinschreibung wird nicht unterschieden.property
- Die Eigenschaft für das zu registrierende Attribut.
Erlaubt sind hier nur die Werte:STANDARD
DISABLE
INVISIBLE
MUSSFELD
DISABLE_MUSSFELD
INVISIBLE_MUSSFELD
public boolean isAttributeEditable(String attribName)
attribName
- Der Name des Attributes.
public boolean isAttributeMussfeld(String attribName)
attribName
- Der Name des Attributes.
public boolean isAttributeVisible(String attribName)
attribName
- Der Name des Attributes.
public boolean equals(Object obj)
Item
sein.
Wenn null
übergeben wird, oder ein Objekt, das nicht vom Typ
Item
ist, wird immer false
zurückgegeben.
obj
- Das Objekt, das mit diesem Objekt verglichen werden soll.
true
, wenn der übergebene Parameter vom Typ Item
ist und die gleiche ItemID enthält wie das Objekt, sonst false
.public String toString()
public Item deepCopy() throws DeepCopyException
Deshalb implementiert die Klasse Item auch nicht die Methode clone(), da so
keine echte Kopie angelegt werden koennte. Und im
ViewItemValidator
wird eine tiefe Kopie
benoetigt, um bei der Eingabepruefung nicht die Werte im eigentlichen Item
zu aenderen.
Die Methode deepCopy() setzt voraus, das alle Attribute im Item selbst serialisierbar sind. Darauf ist besonders in abgeleiteten Klassen zu achten, da ansonsten der Aufruf dieser Methode fehlschlaegt.
DeepCopyException
- wenn beim kopieren ein Fehler auftritt.Object.clone()
,
Cloneable
|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |