|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectschmitzm.data.event.AbstractObjectTraceable
schmitzm.data.property.Property
schmitzm.data.property.ValueProperty
public abstract class ValueProperty
Diese Klasse stellt eine Oberklasse fuer alle Eigenschaften dar, die
einen oder mehrere Wert speichern koennen.
Die Implementierung basiert auf Sun JDK 1.5.0 und nutzt optionale
Methoden-Parameter.
Hierdurch kann (wahlweise) fuer skalare Properties auf Parameter verzichtet
werden (z.B. getValue()
oder setValue(someObject)
).
Fuer 2-dim. Matrizen koennen derselben Methode 2 zusaetzliche Parameter
(oder ein 2-dim. Array) uebergeben werden, um die Position innerhalb der
Matrix zu spezifizieren (z.B. getValue(10,13)
oder
setValue(someObject,10,13)
).
Die jeweilige Sub-Klasse muss nur noch die Art der Speicherung (z.B. skalar,
Liste oder Matrix), sowie je eine setter- und getter-Methode implementieren.
Der Zugriff auf die Property kann durch Zugriffsrechte kontrolliert werden.
Ein Zugriff (lesend oder schreibend) ist nur ueber ein entsprechendes
Zugriffsrecht (Access
) moeglich. Standardmaessig ist unbegrenzter
Zugriff eingestellt. Durch Angabe von ValuePropertyAccessParameters
kann jedoch benutzerdefiniert festgelegt werden, wie viele Objekte gleichzeitig
Lese- und/oder Schreibzugriff erlangen duerfen.
getReadAccess(Object)
,
getWriteAccess(Object)
Field Summary |
---|
Fields inherited from class schmitzm.data.property.Property |
---|
name, type |
Constructor Summary | |
---|---|
ValueProperty(String name,
Class type)
Erzeugt eine Eigenschaft. |
|
ValueProperty(String name,
Class type,
ValuePropertyAccessParameters params)
Erzeugt eine Eigenschaft. |
|
ValueProperty(String name,
ObjectStructure sample)
Erzeugt eine Eigenschaft. |
|
ValueProperty(String name,
ObjectStructure sample,
ValuePropertyAccessParameters params)
Erzeugt eine Eigenschaft. |
|
ValueProperty(String name,
PropertyType type)
Erzeugt eine Eigenschaft. |
|
ValueProperty(String name,
PropertyType type,
ValuePropertyAccessParameters params)
Erzeugt eine Eigenschaft. |
Method Summary | |
---|---|
void |
applyAccess(Access access)
Wird aufgerufen, wenn ein Zugriffsrecht (Lesend oder Schreibend) angefordert wird. |
void |
disposeAllAccess()
Entzieht saemtlichen Zugriffsrechten, die aktuell fuer das Objekt verteilt sind, die Gueltigkeit. |
boolean |
equalsInStructure(Object object)
Vergleicht die Struktur der Property mit einer anderen auf Gleichheit. |
int |
getAccessCount()
Liefert die Gesamz-Anzahl an Zugriffsrechten, die aktuell fuer das Objekt verteilt sind. |
int |
getAccessCount(Class c)
Liefert die Anzahl an Zugriffsrechten einer bestimmten Art, die aktuell fuer das Objekt verteilt sind. |
ValuePropertyAccessParameters |
getAccessParameters()
Liefert die Parameter (max. |
int |
getAttrCount()
Liefert 1, da eine Property immer genau eine Eigenschaft darstellt. |
Enumeration |
getAttrTypes()
Liefert eine Liste, in der genau 1 Element enthalten ist. |
PropertyReadAccess |
getOneTimeReadAccess()
Liefert ein Leserecht auf die Property, welches nach einmaligem Zugriff automatisch ungueltig wird. |
PropertyWriteAccess |
getOneTimeWriteAccess()
Liefert ein Schreibrecht auf die Property, welches nach einmaligem Zugriff automatisch ungueltig wird. |
ValuePropertyType |
getPropertyType()
Liefert den Daten-Typ, der in der Eigenschaft gespeichert werden kann. |
PropertyReadAccess |
getReadAccess(Object owner)
Liefert ein Leserecht auf die Property. |
String |
getStructureName()
Liefert den Namen der Eigenschaft. |
protected abstract Object |
getValue(int... coords)
Liefert den/einen Wert der Eigenschaft. |
PropertyWriteAccess |
getWriteAccess(Object owner)
Liefert ein Schreibrecht auf die Property. |
boolean |
isStructureNamed()
Liefert true , da jede Property einen Namen besitzt. |
void |
releaseAccess(Access access)
Wird aufgerufen, wenn ein Zugriffsrecht (Lesend oder Schreibend) wieder zurueckgegeben wird. |
protected abstract void |
setValue(Object value,
int... coords)
Setzt den/einen Wert der Eigenschaft. |
Methods inherited from class schmitzm.data.property.Property |
---|
cloneStructure, containsProperty, dispose, getName, getProperties, getProperties, getProperty, getPropertyCount, getPropertyNames, getPropertyTypes, getType, hasAccess, hasAccess, isValid |
Methods inherited from class schmitzm.data.event.AbstractObjectTraceable |
---|
addObjectListener, containsObjectListener, createGeneralEvent, fireEvent, fireEvent, fireGeneralEvent, fireGeneralEvent, getObjectListener, isEventFiringEnabled, removeAllObjectListeners, removeObjectListener, setEventFiringEnabled |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Methods inherited from interface schmitzm.data.ObjectStructure |
---|
containsMultipleValues |
Constructor Detail |
---|
public ValueProperty(String name, PropertyType type, ValuePropertyAccessParameters params)
name
- Bezeichnung der Eigenschafttype
- Typ der Eigenschaftparams
- Parameter fuer die Verwaltung des ZugriffsrechtsValuePropertyAccessParameters
public ValueProperty(String name, PropertyType type)
name
- Bezeichnung der Eigenschafttype
- Typ der EigenschaftValuePropertyAccessParameters.UNLIMITED_ACCESS
public ValueProperty(String name, ObjectStructure sample, ValuePropertyAccessParameters params)
name
- Bezeichnung der Eigenschaftsample
- Bestimmt die Element-Struktur, die in der Eigenschaft
gespeichert werden kannparams
- Parameter fuer die Verwaltung des ZugriffsrechtsValuePropertyAccessParameters
public ValueProperty(String name, ObjectStructure sample)
name
- Bezeichnung der Eigenschaftsample
- Bestimmt die Element-Struktur, die in der Eigenschaft
gespeichert werden kannValuePropertyAccessParameters.UNLIMITED_ACCESS
public ValueProperty(String name, Class type, ValuePropertyAccessParameters params)
int.class
).
name
- Bezeichnung der Eigenschafttype
- Daten-Typ der Eigenschaftparams
- Parameter fuer die Verwaltung des ZugriffsrechtsValuePropertyAccessParameters
public ValueProperty(String name, Class type)
int.class
). Der Zugriff auf die Eigenschaft ist
uneingeschraengt (beliebig viele Lese- und beliebig viele Schreibrechte).
name
- Bezeichnung der Eigenschafttype
- Daten-Typ der EigenschaftValuePropertyAccessParameters.UNLIMITED_ACCESS
Method Detail |
---|
public ValuePropertyType getPropertyType()
getPropertyType
in class Property
public ValuePropertyAccessParameters getAccessParameters()
public void applyAccess(Access access)
applyAccess
in interface Accessible
access
- Zugriffsrecht welches erteilt werden soll
AccessViolationException
- falls
das angegebene Recht nicht zur Property passtgetAccessParameters()
public void releaseAccess(Access access)
releaseAccess
in interface Accessible
access
- Zugriffsrecht welches zurueckgegeben werden soll
AccessViolationException
- falls
das angegebene Recht nicht zur Property passtpublic void disposeAllAccess()
disposeAllAccess
in interface Accessible
public int getAccessCount(Class c)
getAccessCount
in interface Accessible
public int getAccessCount()
getAccessCount
in interface Accessible
public PropertyReadAccess getReadAccess(Object owner)
owner
- Objekt, welches das Recht beantragtapplyAccess(Access)
,
getAccessParameters()
public PropertyWriteAccess getWriteAccess(Object owner)
owner
- Objekt, welches das Recht beantragtapplyAccess(Access)
,
getAccessParameters()
public PropertyReadAccess getOneTimeReadAccess()
applyAccess(Access)
,
getAccessParameters()
public PropertyWriteAccess getOneTimeWriteAccess()
applyAccess(Access)
,
getAccessParameters()
protected abstract Object getValue(int... coords)
coords
spezifizieren (optional) die "Koordinaten", an denen
der Wert in der Eigenschaft zu finden ist.
Fuer skalare Eigenschaften darf/braucht diese Angabe nicht gemacht zu
werden. Fuer Listen und 1-dim. Matrizen (Arrays) darf nur ein Wert
angegeben werden. Fuer mehr-dimensionale Matrizen muessen entsprechend
der Dimension mehr Koordinaten angegeben werden (als einzelne Parameter oder
als ein Array). z.B. fuer 2-dim. Matrix:getValue(10,13)
oder getValue( new int[] {10,13} )
coords
- optionale Koordinatenprotected abstract void setValue(Object value, int... coords)
coords
spezifizieren (optional) die "Koordinaten", an denen
der Wert in der Eigenschaft zu finden ist.
Fuer skalare Eigenschaften darf/braucht diese Angabe nicht gemacht zu
werden. Fuer Listen und 1-dim. Matrizen (Arrays) darf nur ein Wert
angegeben werden. Fuer mehr-dimensionale Matrizen muessen entsprechend
der Dimension mehr Koordinaten angegeben werden (als einzelne Parameter oder
als ein Array). z.B. fuer 2-dim. Matrix:getValue(10,13)
oder getValue( new int[] {10,13} )
ObjectChangeEvent
fuer die Property.
value
- neuer Wert fuer die Eigenschaftcoords
- optionale Koordinaten
ClassCastException
- falls das angegebene Objekt nicht
zum Property-Typ passtpublic boolean isStructureNamed()
true
, da jede Property einen Namen besitzt.
isStructureNamed
in interface ObjectStructure
public String getStructureName()
getStructureName
in interface ObjectStructure
null
falls die Struktur unbenannt istProperty.getName()
public int getAttrCount()
getAttrCount
in interface ObjectStructure
public Enumeration getAttrTypes()
ObjectStructure
, falls die Property einen strukturierten
Inhalt hat, oder andernfalls eine Class
, die den "allgemeinen"
Eigenschaftstyp darstellt.
getAttrTypes
in interface ObjectStructure
Class
oder
ObjectStructure
istValuePropertyType.getTypeStructure()
,
PropertyType.getType()
public boolean equalsInStructure(Object object)
equalsInStructure
in interface ObjectStructure
object
- kann eine andere ValueProperty
sein oder ein
ValuePropertyType
ValuePropertyType.equalsInStructure(Object)
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |