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 Mac OS 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 ClassesModifier and TypeClassDescriptionprivate static class
Container for array elements.private static class
A specialized builder class with addXXX methods to parse the typed data passed by the SAX handler.private class
SAX Handler to build the configuration nodes while the document is being parsed.Nested classes/interfaces inherited from class org.apache.commons.configuration2.BaseHierarchicalConfiguration
BaseHierarchicalConfiguration.BuilderVisitor
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate static final String
Constant for the encoding for binary data.private static final int
Size of the indentation for the generated file.private FileLocator
Temporarily stores the current file location. -
Constructor Summary
ConstructorsConstructorDescriptionCreates 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 ofXMLPropertyListConfiguration
and copies the content of the specified configuration into this object.Creates a new instance ofXMLPropertyConfiguration
with the given root node. -
Method Summary
Modifier and TypeMethodDescriptionprotected void
addPropertyInternal
(String key, Object value) Adds the property with the specified key.void
initFileLocator
(FileLocator locator) Stores the current file locator.private void
printNode
(PrintWriter out, int indentLevel, ImmutableNode node) Append a node to the writer, indented according to a specific level.private void
printValue
(PrintWriter out, int indentLevel, Object value) Append a value to the writer, indented according to a specific level.void
Reads the content of this object from the given reader.private void
setPropertyDirect
(String key, Object value) protected void
setPropertyInternal
(String key, Object value) Sets the value of the specified property.transformMap
(Map<?, ?> src) Transform a map of arbitrary types into a map with string keys and object values.void
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, 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, 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
-
Field Details
-
INDENT_SIZE
private static final int INDENT_SIZESize of the indentation for the generated file.- See Also:
-
DATA_ENCODING
Constant for the encoding for binary data.- See Also:
-
locator
Temporarily stores the current file location.
-
-
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
Creates a new instance ofXMLPropertyListConfiguration
and copies the content of the specified configuration into this object.- Parameters:
configuration
- the configuration to copy- Since:
- 1.4
-
XMLPropertyListConfiguration
XMLPropertyListConfiguration(ImmutableNode root) Creates a new instance ofXMLPropertyConfiguration
with the given root node.- Parameters:
root
- the root node
-
-
Method Details
-
setPropertyDirect
-
setPropertyInternal
Description copied from class:AbstractHierarchicalConfiguration
Sets the value of the specified property.- Overrides:
setPropertyInternal
in classAbstractHierarchicalConfiguration<ImmutableNode>
- Parameters:
key
- the key of the property to setvalue
- the new value of this property
-
addPropertyInternal
Description copied from class:AbstractHierarchicalConfiguration
Adds the property with the specified key. This task will be delegated to the associatedExpressionEngine
, so the passed in key must match the requirements of this implementation.- Overrides:
addPropertyInternal
in classAbstractHierarchicalConfiguration<ImmutableNode>
- Parameters:
key
- the key of the new propertyvalue
- the value of the new property
-
initFileLocator
Stores the current file locator. This method is called before I/O operations.- Specified by:
initFileLocator
in interfaceFileLocatorAware
- Parameters:
locator
- the currentFileLocator
-
read
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 aFileHandler
for reading data.- Specified by:
read
in interfaceFileBased
- 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
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 aFileHandler
for writing data.- Specified by:
write
in interfaceFileBased
- 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
-
printNode
Append a node to the writer, indented according to a specific level. -
printValue
Append a value to the writer, indented according to a specific level. -
transformMap
Transform a map of arbitrary types into a map with string keys and object values. All keys of the source map which are not of type String are dropped.- Parameters:
src
- the map to be converted- Returns:
- the resulting map
-