schmitzm.data.property
Interface DynamicProperties

All Superinterfaces:
ObjectStructure, ObjectTraceable, Properties
All Known Implementing Classes:
PropertySet

public interface DynamicProperties
extends Properties, ObjectTraceable

Diese Interface sollten alle Objekte implementieren, die sich dynamisch aus einzelnen Eigenschaften (Properties) zusammensetzen. Die Methoden des Interface liefern sowohl den Zugriff auf die aktuellen Eigenschaften des Objekts, ermoeglichen aber auch das dynamische Hinzufuegen oder Entfernen von Eigenschaften.
Zu beachten ist, dass es der jeweiligen Implementierung ueberlassen ist, ob beim Entfernen einer Eigenschaft auch die komplette Eigenschaft (mittels Property.dispose()) geschlossen wird. Je nach Implementierung muss dies manuell geschehen. Deshalb liefern die remove-Methoden eine Referenz auf die entfernte Eigenschaft zurueck.

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

Method Summary
 void addProperty(Property prop)
          Fuegt dem Objekt eine Eigenschaft hinzu.
 Properties removeProperties(Properties prop)
          Entfernt Eigenschaften von dem Objekt.
 Property removeProperty(Property prop)
          Entfernt eine Eigenschaft von dem Objekt.
 Property removeProperty(String name)
          Entfernt eine Eigenschaft von dem Objekt.
 
Methods inherited from interface schmitzm.data.property.Properties
containsProperty, getProperties, getProperties, getProperty, getPropertyCount, getPropertyNames, getPropertyTypes
 
Methods inherited from interface schmitzm.data.ObjectStructure
containsMultipleValues, equalsInStructure, getAttrCount, getAttrTypes, getStructureName, isStructureNamed
 
Methods inherited from interface schmitzm.data.event.ObjectTraceable
addObjectListener, containsObjectListener, fireEvent, fireEvent, getObjectListener, removeObjectListener
 

Method Detail

addProperty

void addProperty(Property prop)
Fuegt dem Objekt eine Eigenschaft hinzu. Das Objekt sollte darauf achten, dass es noch keine Eigenschaft mit diesem Namen besitzt, damit die Eindeutigkeit des Names gewaehrleistet ist.

Parameters:
prop - Eigenschaft
Throws:
PropertyException - falls das Objekt bereits eine Eigenschaft mit dem Namen der neuen Eigenschaft besitzt

removeProperty

Property removeProperty(String name)
Entfernt eine Eigenschaft von dem Objekt.

Parameters:
name - Name der Eigenschaft
Returns:
Die entferne Eigenschaft oder null falls das Objekt keine Eigenschaft mit dem Namen besitzt

removeProperty

Property removeProperty(Property prop)
Entfernt eine Eigenschaft von dem Objekt. Falls das Objekt diese Eigenschaft nicht besitzt, passiert nichts.

Parameters:
prop - zu entfernende Eigenschaft
Returns:
Die entferne Eigenschaft oder null falls das Objekt die Eigenschaft nicht besitzt

removeProperties

Properties removeProperties(Properties prop)
Entfernt Eigenschaften von dem Objekt. Falls das Objekt eine dieser Eigenschaften nicht besitzt, passiert fuer die entsprechende Eigenschaft nichts.

Parameters:
prop - zu entfernende Eigenschaft
Returns:
Die entfernten Eigenschaften (kann eine leere Eigenschaftsmenge sein, wenn das Objekt keine der uebergebenen Eigenschaften besitzt.