Package org.apache.commons.configuration2.plist

# Class XMLPropertyListConfiguration

java.lang.Object
org.apache.commons.configuration2.event.BaseEventSource
org.apache.commons.configuration2.AbstractConfiguration
org.apache.commons.configuration2.AbstractHierarchicalConfiguration<ImmutableNode>
org.apache.commons.configuration2.BaseHierarchicalConfiguration
org.apache.commons.configuration2.plist.XMLPropertyListConfiguration

All Implemented Interfaces:
  `Cloneable`, `Configuration`, `EventSource`, `FileBasedConfiguration`, `HierarchicalConfiguration<ImmutableNode>`, `ImmutableConfiguration`, `ImmutableHierarchicalConfiguration`, `FileBased`, `FileLocatorAware`, `SynchronizerSupport`, `InMemoryNodeModelSupport`, `NodeKeyResolver<ImmutableNode>`, `NodeModelSupport<ImmutableNode>`

public class XMLPropertyListConfiguration extends BaseHierarchicalConfiguration implements FileBasedConfiguration, FileLocatorAware
Property list file (plist) in XML FORMAT as used by macOS X (http://www.apple.com/DTDs/PropertyList-1.0.dtd). This configuration doesn't support the binary FORMAT used in OS X 10.4.

Example:

     <?xml version="1.0"?>
     <!DOCTYPE plist SYSTEM "file://localhost/System/Library/DTDs/PropertyList.dtd">
     <plist version="1.0">
         <dict>
             <key>string</key>
             <string>value1</string>

             <key>integer</key>
             <integer>12345</integer>

             <key>real</key>
             <real>-123.45E-1</real>

             <key>boolean</key>
             <true/>

             <key>date</key>
             <date>2005-01-01T12:00:00Z</date>

             <key>data</key>
             <data>RHJhY28gRG9ybWllbnMgTnVucXVhbSBUaXRpbGxhbmR1cw==</data>

             <key>array</key>
             <array>
                 <string>value1</string>
                 <string>value2</string>
                 <string>value3</string>
             </array>

             <key>dictionnary</key>
             <dict>
                 <key>key1</key>
                 <string>value1</string>
                 <key>key2</key>
                 <string>value2</string>
                 <key>key3</key>
                 <string>value3</string>
             </dict>

             <key>nested</key>
             <dict>
                 <key>node1</key>
                 <dict>
                     <key>node2</key>
                     <dict>
                         <key>node3</key>
                         <string>value</string>
                     </dict>
                 </dict>
             </dict>

         </dict>
     </plist>

Since:
  1.2

- ## Nested Class Summary

  ## Nested classes/interfaces inherited from class org.apache.commons.configuration2.BaseHierarchicalConfiguration

  `BaseHierarchicalConfiguration.BuilderVisitor`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `XMLPropertyListConfiguration()`
  Creates an empty XMLPropertyListConfiguration object which can be used to synthesize a new plist file by adding values and then saving().
  `XMLPropertyListConfiguration(HierarchicalConfiguration<ImmutableNode> configuration)`
  Creates a new instance of `XMLPropertyListConfiguration` and copies the content of the specified configuration into this object.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `protected void`
  `addPropertyInternal(String key, Object value)`
  Adds the property with the specified key.
  `void`
  `initFileLocator(FileLocator locator)`
  Stores the current file locator.
  `void`
  `read(Reader in)`
  Reads the content of this object from the given reader.
  `protected void`
  `setPropertyInternal(String key, Object value)`
  Sets the value of the specified property.
  `void`
  `write(Writer out)`
  Writes the content of this object to the given writer.

  ### Methods inherited from class org.apache.commons.configuration2.BaseHierarchicalConfiguration

  `childConfigurationsAt, childConfigurationsAt, cloneNodeModel, configurationAt, configurationAt, configurationsAt, configurationsAt, createSubConfigurationForTrackedNode, getNodeModel, getSubConfigurationNodeSelector, getSubConfigurationParentModel, immutableChildConfigurationsAt, immutableConfigurationAt, immutableConfigurationAt, immutableConfigurationsAt, initSubConfigurationForThisParent, interpolatedConfiguration, subnodeConfigurationChanged, subset`

  ### Methods inherited from class org.apache.commons.configuration2.AbstractHierarchicalConfiguration

  `addNodes, addNodesInternal, addPropertyDirect, clearInternal, clearPropertyDirect, clearTree, clearTreeInternal, clone, containsKeyInternal, fetchNodeList, getExpressionEngine, getKeysInternal, getKeysInternal, getMaxIndex, getMaxIndexInternal, getModel, getPropertyInternal, getRootElementName, getRootElementNameInternal, isEmptyInternal, nodeDefined, nodeKey, resolveAddKey, resolveKey, resolveNodeKey, resolveUpdateKey, setExpressionEngine, sizeInternal, toString`

  ### Methods inherited from class org.apache.commons.configuration2.AbstractConfiguration

  `addErrorLogListener, addProperty, append, beginRead, beginWrite, clear, clearProperty, cloneInterpolator, containsKey, copy, endRead, endWrite, get, get, getArray, getArray, getBigDecimal, getBigDecimal, getBigInteger, getBigInteger, getBoolean, getBoolean, getBoolean, getByte, getByte, getByte, getCollection, getCollection, getConfigurationDecoder, getConversionHandler, getDouble, getDouble, getDouble, getDuration, getDuration, getEncodedString, getEncodedString, getFloat, getFloat, getFloat, getInt, getInt, getInteger, getInterpolator, getKeys, getKeys, getKeys, getKeysInternal, getList, getList, getList, getList, getListDelimiterHandler, getLogger, getLong, getLong, getLong, getProperties, getProperties, getProperty, getShort, getShort, getShort, getString, getString, getStringArray, getSynchronizer, immutableSubset, initLogger, installInterpolator, interpolate, interpolate, isEmpty, isScalarValue, isThrowExceptionOnMissing, lock, setConfigurationDecoder, setConversionHandler, setDefaultLookups, setInterpolator, setListDelimiterHandler, setLogger, setParentInterpolator, setPrefixLookups, setProperty, setSynchronizer, setThrowExceptionOnMissing, size, unlock`

  ### Methods inherited from class org.apache.commons.configuration2.event.BaseEventSource

  `addEventListener, clearErrorListeners, clearEventListeners, copyEventListeners, createErrorEvent, createEvent, fireError, fireEvent, getEventListenerRegistrations, getEventListeners, isDetailEvents, removeEventListener, setDetailEvents`

  ### Methods inherited from class java.lang.Object

  `equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

  ### Methods inherited from interface org.apache.commons.configuration2.Configuration

  `addProperty, clear, clearProperty, getInterpolator, installInterpolator, setInterpolator, setProperty, subset`

  ### Methods inherited from interface org.apache.commons.configuration2.ImmutableConfiguration

  `containsKey, get, get, getArray, getArray, getBigDecimal, getBigDecimal, getBigInteger, getBigInteger, getBoolean, getBoolean, getBoolean, getByte, getByte, getByte, getCollection, getCollection, getDouble, getDouble, getDouble, getDuration, getDuration, getEncodedString, getEncodedString, getEnum, getEnum, getFloat, getFloat, getFloat, getInt, getInt, getInteger, getKeys, getKeys, getKeys, getList, getList, getList, getList, getLong, getLong, getLong, getProperties, getProperty, getShort, getShort, getShort, getString, getString, getStringArray, immutableSubset, isEmpty, size`

  ### Methods inherited from interface org.apache.commons.configuration2.sync.SynchronizerSupport

  `getSynchronizer, lock, setSynchronizer, unlock`

- ## Constructor Details

  - ### XMLPropertyListConfiguration

    public XMLPropertyListConfiguration()
    Creates an empty XMLPropertyListConfiguration object which can be used to synthesize a new plist file by adding values and then saving().

  - ### XMLPropertyListConfiguration

    public XMLPropertyListConfiguration(HierarchicalConfiguration<ImmutableNode> configuration)
    Creates a new instance of `XMLPropertyListConfiguration` and copies the content of the specified configuration into this object.
    Parameters:
      `configuration` - the configuration to copy
    Since:
      1.4

- ## Method Details

  - ### setPropertyInternal

    protected void setPropertyInternal(String key, Object value)
    Description copied from class: `AbstractHierarchicalConfiguration`
    Sets the value of the specified property.
    Overrides:
      `setPropertyInternal` in class `AbstractHierarchicalConfiguration<ImmutableNode>`
    Parameters:
      `key` - the key of the property to set
      `value` - the new value of this property

  - ### addPropertyInternal

    protected void addPropertyInternal(String key, Object value)
    Description copied from class: `AbstractHierarchicalConfiguration`
    Adds the property with the specified key. This task will be delegated to the associated `ExpressionEngine`, so the passed in key must match the requirements of this implementation.
    Overrides:
      `addPropertyInternal` in class `AbstractHierarchicalConfiguration<ImmutableNode>`
    Parameters:
      `key` - the key of the new property
      `value` - the value of the new property

  - ### initFileLocator

    public void initFileLocator(FileLocator locator)
    Stores the current file locator. This method is called before I/O operations.
    Specified by:
      `initFileLocator` in interface `FileLocatorAware`
    Parameters:
      `locator` - the current `FileLocator`

  - ### read

    public void read(Reader in) throws ConfigurationException
    Description copied from interface: `FileBased`
    Reads the content of this object from the given reader. Client code should not call this method directly, but use a `FileHandler` for reading data.
    Specified by:
      `read` in interface `FileBased`
    Parameters:
      `in` - the reader
    Throws:
      `ConfigurationException` - if a non-I/O related problem occurs, e.g. the data read does not have the expected format

  - ### write

    public void write(Writer out) throws ConfigurationException
    Description copied from interface: `FileBased`
    Writes the content of this object to the given writer. Client code should not call this method directly, but use a `FileHandler` for writing data.
    Specified by:
      `write` in interface `FileBased`
    Parameters:
      `out` - the writer
    Throws:
      `ConfigurationException` - if a non-I/O related problem occurs, e.g. the data read does not have the expected format