|
|||||||||
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.PropertySet
public class PropertySet
Diese Klasse stellt eine Menge an Eigenschaften dar. Die einzelnen Properties
werden parallel in einer Hashtable
und einem
Vector
verwaltet. Die Hashtable dient dazu, die Properties
effizient ueber ihren Namen ansprechen zu koennen. Der Vector repraesentiert
eine Ordnung und wird deshalb verwendet, wenn alle Eigenschaften
angesprochen werden (z.B. getProperties()
oder getPropertyNames()
).
Zu beachten ist, dass beim Entfernen einer Eigenschaft aus der Menge
nicht die komplette Eigenschaft (mittels Property.dispose()
)
geschlossen wird! Dies bietet den Vorteil dass
eine Eigenschaft einfach von einer Menge in eine andere verschoben werden kann.
Soll eine Eigenschaft (und vor allem ihre Ressourcen) komplett freigegeben
werden, muss dies manuell geschehen. Hierfuer liefern die remove-Methoden eine
Referenz auf die entfernte Eigenschaft zurueck.
PropertySet
implementiert das Interface ObjectTraceable
,
so dass Aenderungen an der Menge durch Listener verfolgt werden koennen.
Es werden jedoch keine Aenderungen an den in der Menge enthaltenen
Eigenschaften propagiert, sondern nur Aenderungen an der Eigenschaftsmenge
selbst, also Hinzufuegen oder Entfernen einer Property. In beiden Faellen
wird ein ObjectChangeEvent
geworfen, wobei entweder
ObjectChangeEvent.getNewValue()
(beim Entfernen) oder ObjectChangeEvent.getOldValue()
(beim Hinzufuegen) null
liefert.
Property
Constructor Summary | |
---|---|
PropertySet()
Erzeugt eine leere Menge von Eigenschaften. |
|
PropertySet(PropertySet propSet)
Erzeugt eine leere Menge von Eigenschaften aus einer Vorlage. |
Method Summary | |
---|---|
void |
addProperty(Property prop)
Fuegt der Menge eine Eigenschaft hinzu. |
Object |
clone()
Erzeugt eine Kopie der Menge. |
boolean |
containsMultipleValues()
Liefert false , da eine Eigenschaftsmenge von jeder Eigenschaft
immer nur eine Instanz enthaelt. |
boolean |
containsProperty(String name)
Prueft, ob die Menge eine bestimmte Eigenschaft enthaelt. |
boolean |
equalsInStructure(Object object)
Vergleicht die Struktur der Property mit einer anderen auf Gleichheit. |
int |
getAttrCount()
Liefert die Anzah1 an Properties in der Menge. |
Enumeration<ObjectStructure> |
getAttrTypes()
Liefert eine Liste, die genau so viele Elemente enthaelt, wie die Eigenschaftsmenge Propertys hat. |
Property[] |
getProperties()
Liefert die Eigenschaften der Menge als Array. |
Properties |
getProperties(Class type)
Liefert alle Eigenschaften, die einem bestimmten Typ angehoeren. |
Property |
getProperty(String name)
Liefert eine bestimmte Eigenschaft der Menge. |
int |
getPropertyCount()
Liefert die Anzahl an Eigenschaften. |
String[] |
getPropertyNames()
Liefert die Namen aller Eigenschaften. |
PropertyType[] |
getPropertyTypes()
Liefert die Typen aller Eigenschaften. |
String |
getStructureName()
Liefert null . |
boolean |
isStructureNamed()
Liefert false . |
Properties |
removeProperties(Properties prop)
Entfernt Eigenschaften aus der Menge. |
Property |
removeProperty(Property prop)
Entfernt eine Eigenschaft aus der Menge. |
Property |
removeProperty(String name)
Entfernt eine Eigenschaft aus der Menge. |
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 |
---|
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Methods inherited from interface schmitzm.data.event.ObjectTraceable |
---|
addObjectListener, containsObjectListener, fireEvent, fireEvent, getObjectListener, removeObjectListener |
Constructor Detail |
---|
public PropertySet(PropertySet propSet)
propSet
- Vorlage fuer die Property-Mengepublic PropertySet()
Method Detail |
---|
public Object clone()
clone
in class Object
public int getPropertyCount()
getPropertyCount
in interface Properties
public Property[] getProperties()
getProperties
in interface Properties
public Properties getProperties(Class type)
Property
-Untertyp
angegeben werden (z.B. ListProperty
), als auch ein Objekt-Typ (Typ
den eine Property aufnehmen kann; z.B. int.class
).Properties
-Instanz liefert,
lassen sich recht einfach verschiedene Filter hintereinander anwenden:
Properties.getProperties(ListProperty.class).getProperties(int.class).getPropertyNames()
int
-Werte
aufnehmen koennen.
getProperties
in interface Properties
public String[] getPropertyNames()
getPropertyNames
in interface Properties
public PropertyType[] getPropertyTypes()
getPropertyTypes
in interface Properties
public Property getProperty(String name)
getProperty
in interface Properties
name
- Name der Eigenschaft
null
falls die Menge keine Eigenschaft dieses
Namens enthaeltpublic boolean containsProperty(String name)
containsProperty
in interface Properties
name
- Name der Eigenschaftpublic void addProperty(Property prop)
addProperty
in interface DynamicProperties
prop
- Eigenschaft
PropertyException
- falls bereits
eine Eigenschaft dieses Namens in der Menge vorhanden istpublic Property removeProperty(String name)
removeProperty
in interface DynamicProperties
name
- Name der Eigenschaft
null
, falls das
die Menge keine Eigenschaft mit dem Namen enthaeltpublic Property removeProperty(Property prop)
removeProperty
in interface DynamicProperties
prop
- zu entfernende Eigenschaft
null
falls das Objekt
die Eigenschaft nicht besitztpublic Properties removeProperties(Properties prop)
removeProperties
in interface DynamicProperties
prop
- zu entfernende Eigenschaft
public boolean isStructureNamed()
false
.
isStructureNamed
in interface ObjectStructure
public String getStructureName()
null
.
getStructureName
in interface ObjectStructure
null
falls die Struktur unbenannt istObjectStructure.isStructureNamed()
public int getAttrCount()
getAttrCount
in interface ObjectStructure
getPropertyCount()
public Enumeration<ObjectStructure> getAttrTypes()
ObjectStructure
.
getAttrTypes
in interface ObjectStructure
Class
oder
ObjectStructure
istpublic boolean equalsInStructure(Object object)
equalsInStructure
in interface ObjectStructure
object
- eine anderes ObjectStructure
-Objekt
false
falls das uebergebene Objekt keine
ObjectStructure
istValuePropertyType.equalsInStructure(Object)
public boolean containsMultipleValues()
false
, da eine Eigenschaftsmenge von jeder Eigenschaft
immer nur eine Instanz enthaelt.
containsMultipleValues
in interface ObjectStructure
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |