schmitzm.data.property
Class ScalarProperty

java.lang.Object
  extended by schmitzm.data.event.AbstractObjectTraceable
      extended by schmitzm.data.property.Property
          extended by schmitzm.data.property.ValueProperty
              extended by schmitzm.data.property.ScalarProperty
All Implemented Interfaces:
ObjectTraceable, ObjectStructure, Accessible, Properties

public class ScalarProperty
extends ValueProperty

Diese Klasse stellt eine Eigenschaft dar, welche genau einen Wert (in Form eines Objekts) darstellt.
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.

Version:
1.0
Author:
Martin Schmitz (University of Bonn/Germany)
See Also:
ValueProperty.getReadAccess(Object), ValueProperty.getWriteAccess(Object)

Field Summary
protected  Object value
          Speichert die Auspraegung der Eigenschaft.
 
Fields inherited from class schmitzm.data.property.Property
name, type
 
Constructor Summary
ScalarProperty(String name, Class type)
          Erzeugt eine Eigenschaft.
ScalarProperty(String name, Class elementType, ValuePropertyAccessParameters params)
          Erzeugt eine Eigenschaft.
ScalarProperty(String name, Object value)
          Erzeugt eine Eigenschaft.
ScalarProperty(String name, Object value, ValuePropertyAccessParameters params)
          Erzeugt eine Eigenschaft.
ScalarProperty(String name, ValuePropertyType elementType)
          Erzeugt eine Eigenschaft.
ScalarProperty(String name, ValuePropertyType elementType, ValuePropertyAccessParameters params)
          Erzeugt eine Eigenschaft.
 
Method Summary
 ScalarProperty cloneStructure()
          Liefert eine neue, leerer ScalarProperty mit identischem Namen, Typ und gleichen Zugriffsparemetern.
 boolean containsMultipleValues()
          Liefert false, das eine skalare Eigenschaft immer nur aus einem Wert besteht.
 void dispose()
          Zerstoert die Property und den Property-Wert.
protected  Object getValue(int... coords)
          Liefert den aktuellen Wert der Eigenschaft.
protected  void setValue(Object value, int... coords)
          Setzt den Wert der Eigenschaft.
 
Methods inherited from class schmitzm.data.property.ValueProperty
applyAccess, disposeAllAccess, equalsInStructure, getAccessCount, getAccessCount, getAccessParameters, getAttrCount, getAttrTypes, getOneTimeReadAccess, getOneTimeWriteAccess, getPropertyType, getReadAccess, getStructureName, getWriteAccess, isStructureNamed, releaseAccess
 
Methods inherited from class schmitzm.data.property.Property
containsProperty, 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
 

Field Detail

value

protected Object value
Speichert die Auspraegung der Eigenschaft.

Constructor Detail

ScalarProperty

public ScalarProperty(String name,
                      ValuePropertyType elementType,
                      ValuePropertyAccessParameters params)
Erzeugt eine Eigenschaft.

Parameters:
name - Bezeichnung der Eigenschaft
elementType - Daten-Typ, den die Eigenschaft aufnehmen kann
params - Parameter fuer die Verwaltung des Zugriffsrechts
See Also:
ValuePropertyAccessParameters

ScalarProperty

public ScalarProperty(String name,
                      ValuePropertyType elementType)
Erzeugt eine Eigenschaft. Der Zugriff auf die Eigenschaft ist uneingeschraengt (beliebig viele Lese- und beliebig viele Schreibrechte).

Parameters:
name - Bezeichnung der Eigenschaft
elementType - Daten-Typ, den die Eigenschaft aufnehmen kann
See Also:
ValuePropertyAccessParameters.UNLIMITED_ACCESS

ScalarProperty

public ScalarProperty(String name,
                      Class elementType,
                      ValuePropertyAccessParameters params)
Erzeugt eine Eigenschaft. Als Typ kann auch ein Build-in-Type angegeben werden (z.B. int.class).

Parameters:
name - Bezeichnung der Eigenschaft
elementType - Daten-Typ, den die Eigenschaft aufnehmen kann
params - Parameter fuer die Verwaltung des Zugriffsrechts
See Also:
ValuePropertyAccessParameters

ScalarProperty

public ScalarProperty(String name,
                      Class type)
Erzeugt eine Eigenschaft. Als Typ kann auch ein Build-in-Type angegeben werden (z.B. int.class). Der Zugriff auf die Eigenschaft ist uneingeschraengt (beliebig viele Lese- und beliebig viele Schreibrechte).

Parameters:
name - Bezeichnung der Eigenschaft
type - Daten-Typ der Eigenschaft
See Also:
ValuePropertyAccessParameters.UNLIMITED_ACCESS

ScalarProperty

public ScalarProperty(String name,
                      Object value,
                      ValuePropertyAccessParameters params)
Erzeugt eine Eigenschaft. Der Datentyp ist implizit durch das Wert-Objekt gegeben. Kann auch fuer Build-in-Werte (int, char, ...) verwendet werden.

Parameters:
name - Bezeichnung der Eigenschaft
value - Initialer Wert der Eigenschaft
params - Parameter fuer die Verwaltung des Zugriffsrechts
See Also:
ValuePropertyAccessParameters

ScalarProperty

public ScalarProperty(String name,
                      Object value)
Erzeugt eine Eigenschaft. Der Datentyp ist implizit durch das Wert-Objekt gegeben. Kann auch fuer Build-in-Werte (int, char, ...) verwendet werden. Der Zugriff auf die Eigenschaft ist uneingeschraengt (beliebig viele Lese- und beliebig viele Schreibrechte).

Parameters:
name - Bezeichnung der Eigenschaft
value - Initialer Wert der Eigenschaft
See Also:
ValuePropertyAccessParameters.UNLIMITED_ACCESS
Method Detail

cloneStructure

public ScalarProperty cloneStructure()
Liefert eine neue, leerer ScalarProperty mit identischem Namen, Typ und gleichen Zugriffsparemetern.

Specified by:
cloneStructure in class Property

dispose

public void dispose()
Zerstoert die Property und den Property-Wert. Handelt es sich bei dem Wert der Property wiederum um eine Property, wird auch deren dispose()-Methode aufgerufen.

Overrides:
dispose in class Property

getValue

protected Object getValue(int... coords)
Liefert den aktuellen Wert der Eigenschaft. Kann (seit JDK1.5.0) auch genutzt werden, wenn es sich bei der Property um einen Build-in-Type handelt.
Da eine skalare Eigenschaft genau einen Wert enthaelt, duerfen keine coords-Parameter angegeben werden!!

Specified by:
getValue in class ValueProperty
Parameters:
coords - optionale Koordinaten
Throws:
UnsupportedOperationException - falls ein oder mehrere coords-Parameter angegeben werden

setValue

protected void setValue(Object value,
                        int... coords)
Setzt den Wert der Eigenschaft. Kann (seit JDK1.5.0) auch genutzt werden, wenn es sich bei der Property um einen Build-in-Type handelt.
Iniziiert ein ObjectChangeEvent fuer die Property. Da eine skalare Eigenschaft genau einen Wert enthaelt, duerfen keine coords-Parameter angegeben werden!!

Specified by:
setValue in class ValueProperty
Parameters:
value - neuer Wert fuer die Eigenschaft
coords - optionale Koordinaten
Throws:
UnsupportedOperationException - falls ein oder mehrere coords-Parameter angegeben werden
ClassCastException - falls das angegebene Objekt nicht zum Property-Typ passt

containsMultipleValues

public boolean containsMultipleValues()
Liefert false, das eine skalare Eigenschaft immer nur aus einem Wert besteht.