public class PropertiesConfiguration extends AbstractFileConfiguration
In this class, empty PropertyConfigurations can be built, properties added and later saved. include statements are (obviously) not supported if you don't construct a PropertyConfiguration from a file.
The properties file syntax is explained here, basically it follows
 the syntax of the stream parsed by Properties.load(java.io.Reader) and
 adds several useful extensions:
 
key <separator> value. The
   separators accepted are '=', ':' and any white
   space character. Examples:
 key1 = value1 key2 : value2 key3 value3
key\:foo = bar
key = This property, has multiple, valueswill result in a property with three values. You can change the value delimiter using the
AbstractConfiguration.setListDelimiter(char)
   method. Setting the delimiter to 0 will disable value splitting completely.
  PropertiesConfigurationLayout object (see below) will
   try to preserve as much of the original format as possible, i.e. properties
   with multiple values defined on a single line will also be written back on
   a single line, and multiple occurrences of a single key will be written on
   multiple lines. If the addProperty() method was called
   multiple times for adding multiple values to a property, these properties
   will per default be written on multiple lines in the output file, too.
   Some options of the PropertiesConfigurationLayout class have
   influence on that behavior.
  Here is an example of a valid extended properties file:
      # lines starting with # are comments
      # This is the simplest property
      key = value
      # A long property may be separated on multiple lines
      longvalue = aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa \
                  aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
      # This is a property with many tokens
      tokens_on_a_line = first token, second token
      # This sequence generates exactly the same result
      tokens_on_multiple_lines = first token
      tokens_on_multiple_lines = second token
      # commas may be escaped in tokens
      commas.escaped = Hi\, what'up?
      # properties can reference other properties
      base.prop = /base
      first.prop = ${base.prop}/first
      second.prop = ${first.prop}/second
 
 A PropertiesConfiguration object is associated with an
 instance of the PropertiesConfigurationLayout class,
 which is responsible for storing the layout of the parsed properties file
 (i.e. empty lines, comments, and such things). The getLayout()
 method can be used to obtain this layout object. With setLayout()
 a new layout object can be set. This should be done before a properties file
 was loaded.
 
Note:Configuration objects of this type can be read concurrently by multiple threads. However if one of these threads modifies the object, synchronization has to be performed manually.
Properties.load(java.io.Reader)| Modifier and Type | Class and Description | 
|---|---|
| static class  | PropertiesConfiguration.DefaultIOFactory
 A default implementation of the  IOFactoryinterface. | 
| static interface  | PropertiesConfiguration.IOFactory
 Definition of an interface that allows customization of read and write
 operations. | 
| static class  | PropertiesConfiguration.PropertiesReaderThis class is used to read properties lines. | 
| static class  | PropertiesConfiguration.PropertiesWriterThis class is used to write properties lines. | 
autoSave, basePath, EVENT_CONFIG_CHANGED, EVENT_RELOAD, fileName, reloadLock, strategyEND_TOKEN, EVENT_ADD_PROPERTY, EVENT_CLEAR, EVENT_CLEAR_PROPERTY, EVENT_READ_PROPERTY, EVENT_SET_PROPERTY, START_TOKEN| Constructor and Description | 
|---|
| PropertiesConfiguration()Creates an empty PropertyConfiguration object which can be
 used to synthesize a new Properties file by adding values and
 then saving(). | 
| PropertiesConfiguration(File file)Creates and loads the extended properties from the specified file. | 
| PropertiesConfiguration(String fileName)Creates and loads the extended properties from the specified file. | 
| PropertiesConfiguration(URL url)Creates and loads the extended properties from the specified URL. | 
| Modifier and Type | Method and Description | 
|---|---|
| Object | clone()Creates a copy of this object. | 
| protected PropertiesConfigurationLayout | createLayout()Creates the associated layout object. | 
| String | getEncoding()Returns the encoding to be used when loading or storing configuration
 data. | 
| String | getFooter()Returns the footer comment. | 
| String | getHeader()Return the comment header. | 
| static String | getInclude()Gets the property value for including other properties files. | 
| boolean | getIncludesAllowed()Deprecated. 
 Only exists to not break backwards compatibility.
 Use  isIncludesAllowed()instead. | 
| PropertiesConfiguration.IOFactory | getIOFactory()Returns the  IOFactoryto be used for creating readers and
 writers when loading or saving this configuration. | 
| PropertiesConfigurationLayout | getLayout()Returns the associated layout object. | 
| boolean | isIncludesAllowed()Reports the status of file inclusion. | 
| void | load(Reader in)Load the properties from the given reader. | 
| void | save(Writer writer)Save the configuration to the specified stream. | 
| void | setBasePath(String basePath)Extend the setBasePath method to turn includes
 on and off based on the existence of a base path. | 
| void | setFooter(String footer)Sets the footer comment. | 
| void | setHeader(String header)Set the comment header. | 
| static void | setInclude(String inc)Sets the property value for including other properties files. | 
| void | setIncludesAllowed(boolean includesAllowed)Controls whether additional files can be loaded by the include =  | 
| void | setIOFactory(PropertiesConfiguration.IOFactory ioFactory)Sets the  IOFactoryto be used for creating readers and
 writers when loading or saving this configuration. | 
| void | setLayout(PropertiesConfigurationLayout layout)Sets the associated layout object. | 
| protected static String | unescapeJava(String str,
            char delimiter)Unescapes any Java literals found in the  Stringto aWriter. | 
addProperty, clearProperty, closeSilent, configurationChanged, containsKey, enterNoReload, exitNoReload, fireEvent, getBasePath, getFile, getFileName, getFileSystem, getKeys, getPath, getProperty, getReloadingStrategy, getReloadLock, getURL, isAutoSave, isEmpty, load, load, load, load, load, load, possiblySave, refresh, reload, reload, resetFileSystem, save, save, save, save, save, save, setAutoSave, setEncoding, setFile, setFileName, setFileSystem, setPath, setProperty, setReloadingStrategy, setURLaddPropertyDirect, clear, clearPropertyDirectaddErrorLogListener, append, copy, createInterpolator, getBigDecimal, getBigDecimal, getBigInteger, getBigInteger, getBoolean, getBoolean, getBoolean, getByte, getByte, getByte, getDefaultListDelimiter, getDelimiter, getDouble, getDouble, getDouble, getFloat, getFloat, getFloat, getInt, getInt, getInteger, getInterpolator, getKeys, getList, getList, getListDelimiter, getLogger, getLong, getLong, getLong, getProperties, getProperties, getShort, getShort, getShort, getString, getString, getStringArray, getSubstitutor, interpolate, interpolate, interpolatedConfiguration, interpolateHelper, isDelimiterParsingDisabled, isScalarValue, isThrowExceptionOnMissing, resolveContainerStore, setDefaultListDelimiter, setDelimiter, setDelimiterParsingDisabled, setListDelimiter, setLogger, setThrowExceptionOnMissing, subsetaddConfigurationListener, addErrorListener, clearConfigurationListeners, clearErrorListeners, createErrorEvent, createEvent, fireError, getConfigurationListeners, getErrorListeners, isDetailEvents, removeConfigurationListener, removeErrorListener, setDetailEventsequals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitclear, getBigDecimal, getBigDecimal, getBigInteger, getBigInteger, getBoolean, getBoolean, getBoolean, getByte, getByte, getByte, getDouble, getDouble, getDouble, getFloat, getFloat, getFloat, getInt, getInt, getInteger, getKeys, getList, getList, getLong, getLong, getLong, getProperties, getShort, getShort, getShort, getString, getString, getStringArray, subsetpublic PropertiesConfiguration()
public PropertiesConfiguration(String fileName) throws ConfigurationException
fileName - The name of the properties file to load.ConfigurationException - Error while loading the properties filepublic PropertiesConfiguration(File file) throws ConfigurationException
save()
 method can be called to save the properties to the specified file.file - The properties file to load.ConfigurationException - Error while loading the properties filepublic PropertiesConfiguration(URL url) throws ConfigurationException
url - The location of the properties file to load.ConfigurationException - Error while loading the properties filepublic static String getInclude()
public static void setInclude(String inc)
inc - A String.public void setIncludesAllowed(boolean includesAllowed)
includesAllowed - True if Includes are allowed.@Deprecated public boolean getIncludesAllowed()
isIncludesAllowed() instead.isIncludesAllowed()public boolean isIncludesAllowed()
public String getHeader()
public void setHeader(String header)
header - the header to usepublic String getFooter()
public void setFooter(String footer)
footer - the footer commentpublic String getEncoding()
getEncoding in interface FileConfigurationgetEncoding in class AbstractFileConfigurationpublic PropertiesConfigurationLayout getLayout()
public void setLayout(PropertiesConfigurationLayout layout)
layout - the new layout object; can be null, then a new
 layout object will be createdprotected PropertiesConfigurationLayout createLayout()
public PropertiesConfiguration.IOFactory getIOFactory()
IOFactory to be used for creating readers and
 writers when loading or saving this configuration.IOFactorypublic void setIOFactory(PropertiesConfiguration.IOFactory ioFactory)
IOFactory to be used for creating readers and
 writers when loading or saving this configuration. Using this method a
 client can customize the reader and writer classes used by the load and
 save operations. Note that this method must be called before invoking
 one of the load() and save() methods.
 Especially, if you want to use a custom IOFactory for
 changing the PropertiesReader, you cannot load the
 configuration data in the constructor.ioFactory - the new IOFactory (must not be null)IllegalArgumentException - if the IOFactory is
         nullpublic void load(Reader in) throws ConfigurationException
clear() method is not called, so
 the properties contained in the loaded file will be added to the
 actual set of properties.in - An InputStream.ConfigurationException - if an error occurspublic void save(Writer writer) throws ConfigurationException
writer - the output stream used to save the configurationConfigurationException - if an error occurspublic void setBasePath(String basePath)
setBasePath in interface FileConfigurationsetBasePath in class AbstractFileConfigurationbasePath - The new basePath to set.public Object clone()
clone in class AbstractFileConfigurationprotected static String unescapeJava(String str, char delimiter)
Unescapes any Java literals found in the String to a
 Writer.
str - the String to unescape, may be nulldelimiter - the delimiter for multi-valued propertiesIllegalArgumentException - if the Writer is nullCopyright © 2001–2013 The Apache Software Foundation. All rights reserved.