Openfire 3.9.3 Javadoc

org.jivesoftware.util
Class XMLProperties

java.lang.Object
  extended by org.jivesoftware.util.XMLProperties

public class XMLProperties
extends Object

Provides the the ability to use simple XML property files. Each property is in the form X.Y.Z, which would map to an XML snippet of:

 <X>
     <Y>
         <Z>someValue</Z>
     </Y>
 </X>
 
The XML file is passed in to the constructor and must be readable and writable. Setting property values will automatically persist those value to disk. The file encoding used is UTF-8.

Author:
Derek DeMoro, Iain Shigeoka

Constructor Summary
XMLProperties()
          Creates a new empty XMLPropertiesTest object.
XMLProperties(File file)
          Creates a new XMLPropertiesTest object.
XMLProperties(InputStream in)
          Loads XML properties from a stream.
XMLProperties(String fileName)
          Creates a new XMLPropertiesTest object.
 
Method Summary
 boolean addToList(String propertyName, String value)
          Adds the given value to the list of values represented by the property name.
 void deleteProperty(String name)
          Deletes the specified property.
 List<String> getAllPropertyNames()
          Returns a list of names for all properties found in the XML file.
 String getAttribute(String name, String attribute)
          Returns the value of the attribute of the given property name or null if it doesn't exist.
 Iterator getChildProperties(String name)
          Return all values who's path matches the given property name as a String array, or an empty array if the if there are no children.
 String[] getChildrenProperties(String parent)
          Return all children property names of a parent property as a String array, or an empty array if the if there are no children.
 String[] getProperties(String name)
          Deprecated. Retained for backward compatibility. Prefer getProperties(String, boolean)
 List<String> getProperties(String name, boolean asList)
          Return all values who's path matches the given property name as a String array, or an empty array if the if there are no children.
 String getProperty(String name)
          Returns the value of the specified property.
 String getProperty(String name, boolean ignoreEmpty)
          Returns the value of the specified property.
 void migrateProperty(String name)
          Convenience routine to migrate an XML property into the database storage method.
 String removeAttribute(String name, String attribute)
          Removes the given attribute from the XML document.
 boolean removeFromList(String propertyName, String value)
          Removes the given value from the list of values represented by the property name.
 void setProperties(Map<String,String> propertyMap)
           
 void setProperties(String name, List<String> values)
          Sets a property to an array of values.
 void setProperty(String name, String value)
          Sets the value of the specified property.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

XMLProperties

public XMLProperties()
              throws IOException
Creates a new empty XMLPropertiesTest object.

Throws:
IOException - if an error occurs loading the properties.

XMLProperties

public XMLProperties(String fileName)
              throws IOException
Creates a new XMLPropertiesTest object.

Parameters:
fileName - the full path the file that properties should be read from and written to.
Throws:
IOException - if an error occurs loading the properties.

XMLProperties

public XMLProperties(InputStream in)
              throws IOException
Loads XML properties from a stream.

Parameters:
in - the input stream of XML.
Throws:
IOException - if an exception occurs when reading the stream.

XMLProperties

public XMLProperties(File file)
              throws IOException
Creates a new XMLPropertiesTest object.

Parameters:
file - the file that properties should be read from and written to.
Throws:
IOException - if an error occurs loading the properties.
Method Detail

getProperty

public String getProperty(String name)
Returns the value of the specified property.

Parameters:
name - the name of the property to get.
Returns:
the value of the specified property.

getProperty

public String getProperty(String name,
                          boolean ignoreEmpty)
Returns the value of the specified property.

Parameters:
name - the name of the property to get.
ignoreEmpty - Ignore empty property values (return null)
Returns:
the value of the specified property.

getProperties

public List<String> getProperties(String name,
                                  boolean asList)
Return all values who's path matches the given property name as a String array, or an empty array if the if there are no children. This allows you to retrieve several values with the same property name. For example, consider the XML file entry:
 <foo>
     <bar>
         <prop>some value</prop>
         <prop>other value</prop>
         <prop>last value</prop>
     </bar>
 </foo>
 
If you call getProperties("foo.bar.prop") will return a string array containing {"some value", "other value", "last value"}.

Parameters:
name - the name of the property to retrieve
Returns:
all child property values for the given node name.

getProperties

public String[] getProperties(String name)
Deprecated. Retained for backward compatibility. Prefer getProperties(String, boolean)

Return all values who's path matches the given property name as a String array, or an empty array if the if there are no children. This allows you to retrieve several values with the same property name. For example, consider the XML file entry:
 <foo>
     <bar>
         <prop>some value</prop>
         <prop>other value</prop>
         <prop>last value</prop>
     </bar>
 </foo>
 
If you call getProperties("foo.bar.prop") will return a string array containing {"some value", "other value", "last value"}.

Parameters:
name - the name of the property to retrieve
Returns:
all child property values for the given node name.

getChildProperties

public Iterator getChildProperties(String name)
Return all values who's path matches the given property name as a String array, or an empty array if the if there are no children. This allows you to retrieve several values with the same property name. For example, consider the XML file entry:
 <foo>
     <bar>
         <prop>some value</prop>
         <prop>other value</prop>
         <prop>last value</prop>
     </bar>
 </foo>
 
If you call getProperties("foo.bar.prop") will return a string array containing {"some value", "other value", "last value"}.

Parameters:
name - the name of the property to retrieve
Returns:
all child property values for the given node name.

getAttribute

public String getAttribute(String name,
                           String attribute)
Returns the value of the attribute of the given property name or null if it doesn't exist.

Parameters:
name - the property name to lookup - ie, "foo.bar"
attribute - the name of the attribute, ie "id"
Returns:
the value of the attribute of the given property or null if it doesn't exist.

removeAttribute

public String removeAttribute(String name,
                              String attribute)
Removes the given attribute from the XML document.

Parameters:
name - the property name to lookup - ie, "foo.bar"
attribute - the name of the attribute, ie "id"
Returns:
the value of the attribute of the given property or null if it did not exist.

setProperties

public void setProperties(String name,
                          List<String> values)
Sets a property to an array of values. Multiple values matching the same property is mapped to an XML file as multiple elements containing each value. For example, using the name "foo.bar.prop", and the value string array containing {"some value", "other value", "last value"} would produce the following XML:
 <foo>
     <bar>
         <prop>some value</prop>
         <prop>other value</prop>
         <prop>last value</prop>
     </bar>
 </foo>
 

Parameters:
name - the name of the property.
values - the values for the property (can be empty but not null).

addToList

public boolean addToList(String propertyName,
                         String value)
Adds the given value to the list of values represented by the property name. The property is created if it did not already exist.

Parameters:
propertyName - The name of the property list to change
value - The value to be added to the list
Returns:
True if the value was added to the list; false if the value was already present

removeFromList

public boolean removeFromList(String propertyName,
                              String value)
Removes the given value from the list of values represented by the property name. The property is deleted if it no longer contains any values.

Parameters:
propertyName - The name of the property list to change
value - The value to be removed from the list
Returns:
True if the value was removed from the list; false if the value was not found

getAllPropertyNames

public List<String> getAllPropertyNames()
Returns a list of names for all properties found in the XML file.

Returns:
Names for all properties in the file

getChildrenProperties

public String[] getChildrenProperties(String parent)
Return all children property names of a parent property as a String array, or an empty array if the if there are no children. For example, given the properties X.Y.A, X.Y.B, and X.Y.C, then the child properties of X.Y are A, B, and C.

Parameters:
parent - the name of the parent property.
Returns:
all child property values for the given parent.

setProperty

public void setProperty(String name,
                        String value)
Sets the value of the specified property. If the property doesn't currently exist, it will be automatically created.

Parameters:
name - the name of the property to set.
value - the new value for the property.

deleteProperty

public void deleteProperty(String name)
Deletes the specified property.

Parameters:
name - the property to delete.

migrateProperty

public void migrateProperty(String name)
Convenience routine to migrate an XML property into the database storage method. Will check for the XML property being null before migrating.

Parameters:
name - the name of the property to migrate.

setProperties

public void setProperties(Map<String,String> propertyMap)

Openfire 3.9.3 Javadoc

Copyright © 2003-2008 Jive Software.