org.jboss.util.property
Class PropertyMap

java.lang.Object
  extended byjava.util.Dictionary
      extended byjava.util.Hashtable
          extended byjava.util.Properties
              extended byorg.jboss.util.property.PropertyMap
All Implemented Interfaces:
java.lang.Cloneable, java.util.Map, java.io.Serializable
Direct Known Subclasses:
PropertyContainer (src) , PropertyGroup (src)

public class PropertyMap
extends java.util.Properties

A replacement for the standard java.util.Properties class which adds, among others, property event capabilities.

See Also:
Serialized Form

Field Summary
protected  java.util.Map boundListeners
          Bound property name -> listener list map
static java.lang.String[] EMPTY_ARRAY_PROPERTY
          Empty array property
static java.lang.String PROPERTY_NAME_SEPARATOR
          Property name separator
protected  java.util.List unboundListeners
          Property listener list
 
Fields inherited from class java.util.Properties
defaults
 
Constructor Summary
PropertyMap()
          Construct a PropertyMap.
PropertyMap(java.util.Properties defaults)
          Construct a PropertyMap with default properties.
 
Method Summary
protected  void addPropertyListener(BoundPropertyListener (src)  listener)
          Add a bound property listener.
 void addPropertyListener(PropertyListener (src)  listener)
          Add a property listener.
 void addPropertyListeners(PropertyListener (src) [] listeners)
          Add an array of property listeners.
 boolean containsProperty(java.lang.String name)
          Check if this map contains a given property.
 java.util.Set entrySet(boolean includeDefaults)
          Returns a set of entrys for all entries in this group and optionally all of the entrys in the defaults map.
protected  void firePropertyAdded(PropertyEvent (src)  event)
          Fire a property added event to all registered listeners.
protected  void firePropertyChanged(PropertyEvent (src)  event)
          Fire a property changed event to all listeners.
protected  void firePropertyRemoved(PropertyEvent (src)  event)
          Fire a property removed event to all registered listeners.
 java.lang.String[] getArrayProperty(java.lang.String name)
          Get an array style property.
 java.lang.String[] getArrayProperty(java.lang.String base, java.lang.String[] defaultValues)
          Get an array style property.
 java.lang.String getProperty(java.lang.String name)
           
 PropertyGroup (src) getPropertyGroup(java.lang.String basename)
          Get a property group for the given property base.
 PropertyGroup (src) getPropertyGroup(java.lang.String basename, int index)
          Get a property group for the given property base at the given index.
 java.util.Set keySet(boolean includeDefaults)
          Returns a set of keys for all entries in this group and optionally all of the keys in the defaults map.
 void load(java.util.Map map)
          Load properties from a map.
 void load(PropertyReader (src)  reader)
          Load properties from a PropertyReader.
 void load(java.lang.String className)
          Load properties from a PropertyReader specifed by the given class name.
 void load(java.lang.String prefix, java.util.Map map)
          Load properties from a map.
protected  java.lang.String makeIndexPropertyName(java.lang.String base, int index)
          Make an indexed property name.
protected  java.lang.String makePrefixedPropertyName(java.lang.String base, java.lang.String prefix)
          Make a optionaly prefixed property name.
 java.util.Iterator names()
          Return an iterator over all contained property names.
 java.lang.Object put(java.lang.Object name, java.lang.Object value)
          Set a property.
 java.lang.Object remove(java.lang.Object name)
          Remove a property.
 java.lang.String removeProperty(java.lang.String name)
          Remove a property.
protected  boolean removePropertyListener(BoundPropertyListener (src)  listener)
          Remove a bound property listener.
 boolean removePropertyListener(PropertyListener (src)  listener)
          Remove a property listener.
 java.lang.Object setProperty(java.lang.String name, java.lang.String value)
          Set a property.
 
Methods inherited from class java.util.Properties
getProperty, list, list, load, propertyNames, save, store
 
Methods inherited from class java.util.Hashtable
clear, clone, contains, containsKey, containsValue, elements, entrySet, equals, get, hashCode, isEmpty, keys, keySet, putAll, rehash, size, toString, values
 
Methods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, wait, wait, wait
 

Field Detail

PROPERTY_NAME_SEPARATOR

public static final java.lang.String PROPERTY_NAME_SEPARATOR
Property name separator

See Also:
Constant Field Values (src)

EMPTY_ARRAY_PROPERTY

public static final java.lang.String[] EMPTY_ARRAY_PROPERTY
Empty array property


unboundListeners

protected transient java.util.List unboundListeners
Property listener list


boundListeners

protected transient java.util.Map boundListeners
Bound property name -> listener list map

Constructor Detail

PropertyMap

public PropertyMap(java.util.Properties defaults)
Construct a PropertyMap with default properties.

Parameters:
defaults - Default properties.

PropertyMap

public PropertyMap()
Construct a PropertyMap.

Method Detail

put

public java.lang.Object put(java.lang.Object name,
                            java.lang.Object value)
Set a property.

Parameters:
name - Property name.
value - Property value.
Returns:
Previous property value or null.

remove

public java.lang.Object remove(java.lang.Object name)
Remove a property.

Parameters:
name - Property name.
Returns:
Removed property value.

keySet

public java.util.Set keySet(boolean includeDefaults)
Returns a set of keys for all entries in this group and optionally all of the keys in the defaults map.


entrySet

public java.util.Set entrySet(boolean includeDefaults)
Returns a set of entrys for all entries in this group and optionally all of the entrys in the defaults map.


addPropertyListener

public void addPropertyListener(PropertyListener (src)  listener)
Add a property listener.

Parameters:
listener - Property listener to add.

addPropertyListener

protected void addPropertyListener(BoundPropertyListener (src)  listener)
Add a bound property listener.

Parameters:
listener - Bound property listener to add.

addPropertyListeners

public void addPropertyListeners(PropertyListener (src) [] listeners)
Add an array of property listeners.

Parameters:
listeners - Array of property listeners to add.

removePropertyListener

public boolean removePropertyListener(PropertyListener (src)  listener)
Remove a property listener.

Parameters:
listener - Property listener to remove.
Returns:
True if listener was removed.

removePropertyListener

protected boolean removePropertyListener(BoundPropertyListener (src)  listener)
Remove a bound property listener.

Parameters:
listener - Bound property listener to remove.
Returns:
True if listener was removed.

firePropertyAdded

protected void firePropertyAdded(PropertyEvent (src)  event)
Fire a property added event to all registered listeners.

Parameters:
event - Property event.

firePropertyRemoved

protected void firePropertyRemoved(PropertyEvent (src)  event)
Fire a property removed event to all registered listeners.

Parameters:
event - Property event.

firePropertyChanged

protected void firePropertyChanged(PropertyEvent (src)  event)
Fire a property changed event to all listeners.

Parameters:
event - Property event.

makePrefixedPropertyName

protected java.lang.String makePrefixedPropertyName(java.lang.String base,
                                                    java.lang.String prefix)
Make a optionaly prefixed property name.

Parameters:
base - Base property name.
prefix - Optional prefix (can be null).
Returns:
Property name.

load

public void load(java.lang.String prefix,
                 java.util.Map map)
          throws PropertyException (src) 
Load properties from a map.

Parameters:
prefix - Prefix to append to all map keys (or null).
map - Map containing properties to load.
Throws:
PropertyException (src)

load

public void load(java.util.Map map)
          throws PropertyException (src) 
Load properties from a map.

Parameters:
map - Map containing properties to load.
Throws:
PropertyException (src)

load

public void load(PropertyReader (src)  reader)
          throws PropertyException (src) ,
                 java.io.IOException
Load properties from a PropertyReader.

Parameters:
reader - PropertyReader to read properties from.
Throws:
PropertyException (src)
java.io.IOException

load

public void load(java.lang.String className)
          throws PropertyException (src) ,
                 java.io.IOException
Load properties from a PropertyReader specifed by the given class name.

Parameters:
className - Class name of a PropertyReader to read from.
Throws:
PropertyException (src)
java.io.IOException

setProperty

public java.lang.Object setProperty(java.lang.String name,
                                    java.lang.String value)
Set a property.

Returns Object instead of String due to limitations with java.util.Properties.

Parameters:
name - Property name.
value - Property value.
Returns:
Previous property value or null.

getProperty

public java.lang.String getProperty(java.lang.String name)

removeProperty

public java.lang.String removeProperty(java.lang.String name)
Remove a property.

Parameters:
name - Property name.
Returns:
Removed property value or null.

makeIndexPropertyName

protected java.lang.String makeIndexPropertyName(java.lang.String base,
                                                 int index)
Make an indexed property name.

Parameters:
base - Base property name.
index - Property index.
Returns:
Indexed property name.

getArrayProperty

public java.lang.String[] getArrayProperty(java.lang.String base,
                                           java.lang.String[] defaultValues)
Get an array style property.

Array properties are specified as: base_property_name.INDEX.

Indexes begin with zero and must be contiguous. A break in continuity signals the end of the array.

Parameters:
base - Base property name.
defaultValues - Default property values.
Returns:
Array of property values or default.

getArrayProperty

public java.lang.String[] getArrayProperty(java.lang.String name)
Get an array style property.

Parameters:
name - Property name.
Returns:
Array of property values or empty array.

names

public java.util.Iterator names()
Return an iterator over all contained property names.

Returns:
Property name iterator.

containsProperty

public boolean containsProperty(java.lang.String name)
Check if this map contains a given property.

Parameters:
name - Property name.
Returns:
True if contains property.

getPropertyGroup

public PropertyGroup (src)  getPropertyGroup(java.lang.String basename)
Get a property group for the given property base.

Parameters:
basename - Base property name.
Returns:
Property group.

getPropertyGroup

public PropertyGroup (src)  getPropertyGroup(java.lang.String basename,
                                      int index)
Get a property group for the given property base at the given index.

Parameters:
basename - Base property name.
index - Array property index.
Returns:
Property group.