schmitzm.data.property
Class ListPropertyWriteAccess

java.lang.Object
  extended by schmitzm.data.property.Access
      extended by schmitzm.data.property.PropertyReadAccess
          extended by schmitzm.data.property.PropertyWriteAccess
              extended by schmitzm.data.property.ListPropertyWriteAccess

public class ListPropertyWriteAccess
extends PropertyWriteAccess

Diese Klasse stellt ein Recht auf Schreibzugriff fuer eine ListProperty dar. Da Listen dynamisch aufgebaut sind, erweitert sie hierzu den PropertyWriteAccess um insert- und remove-Methoden.
Bemerkung:
Um auch den kompletten Lesezugriff zu ermoeglichen, werden zusaetzlich auch noch einmal alle (neuen) Methoden von ListPropertyReadAccess implementiert. Dies ist erforderlich, da diese Klasse von PropertyWriteAccess abgeleitet werden muss und doppelte Ableitung leider nicht moeglich ist.

Version:
1.0
Author:
Martin Schmitz (University of Bonn/Germany)

Field Summary
 
Fields inherited from class schmitzm.data.property.Access
accessTimes, disposed, maxAccessTimes, object, owner, UNLIMITED_ACCESSTIMES
 
Constructor Summary
ListPropertyWriteAccess(Accessible object, Object owner)
          Erzeugt ein neues Schreibzugriffsrecht fuer Listen.
ListPropertyWriteAccess(Accessible object, Object owner, int maxAccessTimes)
          Erzeugt ein neues Schreibzugriffsrecht fuer Listen.
 
Method Summary
 void addValue(Object value)
          Fuegt der Liste ein Element (am Ende) hinzu.
 boolean contains(Object value)
          Checkt, ob ein Objekt in der Liste vorhanden ist.
 int getCount()
          Liefert die aktuelle Anzahl an Elementen, die in der Liste gespeichert sind.
 int indexOf(Object value)
          Liefert den Listen-Index des ersten Vorkommens eines Elements.
 void insertValue(Object value, int index)
          Belegt ein Element der Liste.
 boolean isEmpty()
          Checkt, ob die Liste leer ist.
 void removeAll()
          Entfernt alle Objekte aus der Liste.
 void removeValue(int index)
          Entfernt ein Element aus der Liste.
 boolean removeValue(Object value)
          Entfernt alle Instanzen des angegebenen Objekts aus der Liste (sofern es vorhanden ist).
 
Methods inherited from class schmitzm.data.property.PropertyWriteAccess
setValue
 
Methods inherited from class schmitzm.data.property.PropertyReadAccess
getValue, getValueAsBoolean, getValueAsByte, getValueAsChar, getValueAsDouble, getValueAsFloat, getValueAsInt, getValueAsLong, getValueAsShort
 
Methods inherited from class schmitzm.data.property.Access
checkDisposed, dispose, equals, getAccessTimes, getMaxAccessTimes, getOwner, incAndCheckMaxAccessTimesReached, isDisposed, release
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ListPropertyWriteAccess

public ListPropertyWriteAccess(Accessible object,
                               Object owner)
Erzeugt ein neues Schreibzugriffsrecht fuer Listen. Die Anzahl an Zugriffen fuer den Besitzer ist unbegrenzt.

Parameters:
object - Instanz von ListProperty auf die sich das Recht bezieht
owner - Besitzer des Rechts
Throws:
AccessViolationException - falls das angegebene Objekt keine ListProperty ist
See Also:
ListProperty

ListPropertyWriteAccess

public ListPropertyWriteAccess(Accessible object,
                               Object owner,
                               int maxAccessTimes)
Erzeugt ein neues Schreibzugriffsrecht fuer Listen.

Parameters:
object - Instanz von ListProperty auf die sich das Recht bezieht
owner - Besitzer des Rechts
maxAccessTimes - Anzahl an (Methoden-)Zugriffen, die der Rechtebesitzer taetigen darf, bevor das Recht automatisch entzogen wird
Throws:
AccessViolationException - falls das angegebene Objekt keine ListProperty ist
See Also:
ListProperty
Method Detail

addValue

public void addValue(Object value)
Fuegt der Liste ein Element (am Ende) hinzu. 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 Liste.

Parameters:
value - neuer Wert fuer die Liste
Throws:
UnsupportedOperationException - falls nicht genau ein coords-Parameter angegeben wird
ClassCastException - falls das angegebene Objekt nicht zum Property-Typ passt
AccessViolationException - falls das Schreibrecht auf der Property nicht mehr gueltig ist

insertValue

public void insertValue(Object value,
                        int index)
Belegt ein Element der Liste. 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 Liste.

Parameters:
value - neuer Wert fuer das Listen-Element
index - Listen-Index fuer das neue Element (alle bestehenden Elemente ab (einschliesslich) dieser Position werden nach hinten verschoben)
Throws:
ClassCastException - falls das angegebene Objekt nicht zum Property-Typ passt
AccessViolationException - falls das Schreibrecht auf der Property nicht mehr gueltig ist

removeValue

public void removeValue(int index)
Entfernt ein Element aus der Liste.
Iniziiert ein ObjectChangeEvent fuer die Liste.

Parameters:
index - Listen-Index des zu loeschenden Elements
Throws:
AccessViolationException - falls das Schreibrecht auf der Property nicht mehr gueltig ist

removeValue

public boolean removeValue(Object value)
Entfernt alle Instanzen des angegebenen Objekts aus der Liste (sofern es vorhanden ist).
Iniziiert ein ObjectChangeEvent fuer die Liste.

Parameters:
value - das zu entfernende Objekt
Returns:
false falls dass Objekt nicht in der Liste vorhanden war
Throws:
AccessViolationException - falls das Schreibrecht auf der Property nicht mehr gueltig ist

removeAll

public void removeAll()
Entfernt alle Objekte aus der Liste.
Iniziiert ein ObjectChangeEvent fuer jedes geloeschte Element der Liste.

Throws:
AccessViolationException - falls das Schreibrecht auf der Property nicht mehr gueltig ist

getCount

public int getCount()
Liefert die aktuelle Anzahl an Elementen, die in der Liste gespeichert sind.
Identisch zu ListPropertyReadAccess.getCount().

Throws:
AccessViolationException - falls das Schreibrecht auf der Property nicht mehr gueltig ist

isEmpty

public boolean isEmpty()
Checkt, ob die Liste leer ist.
Identisch zu ListPropertyReadAccess.isEmpty().

Throws:
AccessViolationException - falls das Schreibrecht auf der Property nicht mehr gueltig ist

indexOf

public int indexOf(Object value)
Liefert den Listen-Index des ersten Vorkommens eines Elements.
Identisch zu ListPropertyReadAccess.indexOf(Object).

Parameters:
value - Listen-Element
Returns:
-1 falls das Element nicht in der Liste vorhanden ist.
Throws:
AccessViolationException - falls das Schreibrecht auf der Property nicht mehr gueltig ist

contains

public boolean contains(Object value)
Checkt, ob ein Objekt in der Liste vorhanden ist.
Identisch zu ListPropertyReadAccess.contains(Object).

Throws:
AccessViolationException - falls das Schreibrecht auf der Property nicht mehr gueltig ist