|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object org.apache.commons.configuration.event.EventSource org.apache.commons.configuration.AbstractConfiguration org.apache.commons.configuration.BaseConfiguration org.apache.commons.configuration.AbstractFileConfiguration org.apache.commons.configuration.PropertiesConfiguration
public class PropertiesConfiguration
This is the "classic" Properties loader which loads the values from a single or multiple files (which can be chained with "include =". All given path references are either absolute or relative to the file name supplied in the constructor.
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.InputStream)
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.
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
class,
which is responsible for storing the layout of the parsed properties file
(i.e. empty lines, comments, and such things). The PropertiesConfigurationLayout
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.
Properties.load(java.io.InputStream)
Nested Class Summary | |
---|---|
static class |
PropertiesConfiguration.PropertiesReader
This class is used to read properties lines. |
static class |
PropertiesConfiguration.PropertiesWriter
This class is used to write properties lines. |
Field Summary | |
---|---|
(package private) static String |
COMMENT_CHARS
Constant for the supported comment characters. |
Fields inherited from class org.apache.commons.configuration.AbstractFileConfiguration |
---|
autoSave, basePath, EVENT_RELOAD, fileName, strategy |
Fields inherited from class org.apache.commons.configuration.AbstractConfiguration |
---|
END_TOKEN, EVENT_ADD_PROPERTY, EVENT_CLEAR, EVENT_CLEAR_PROPERTY, EVENT_READ_PROPERTY, EVENT_SET_PROPERTY, START_TOKEN |
Constructor Summary | |
---|---|
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. |
Method Summary | |
---|---|
Object |
clone()
Creates a copy of this object. |
protected PropertiesConfigurationLayout |
createLayout()
Creates the associated layout object. |
String |
getHeader()
Return the comment header. |
static String |
getInclude()
Gets the property value for including other properties files. |
boolean |
getIncludesAllowed()
Reports the status of file inclusion. |
PropertiesConfigurationLayout |
getLayout()
Returns the associated layout object. |
(package private) static boolean |
isCommentLine(String line)
Tests whether a line is a comment, i.e. whether it starts with a comment character. |
void |
load(Reader in)
Load the properties from the given reader. |
(package private) boolean |
propertyLoaded(String key,
String value)
This method is invoked by the associated object for each
property definition detected in the parsed properties file. |
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 |
setHeader(String header)
Set the comment header. |
static void |
setInclude(String inc)
Sets the property value for including other properties files. |
protected void |
setIncludesAllowed(boolean includesAllowed)
Controls whether additional files can be loaded by the include = |
void |
setLayout(PropertiesConfigurationLayout layout)
Sets the associated layout object. |
protected static String |
unescapeJava(String str,
char delimiter)
Unescapes any Java literals found in the String to a
Writer . |
Methods inherited from class org.apache.commons.configuration.AbstractFileConfiguration |
---|
addProperty, clearProperty, containsKey, enterNoReload, exitNoReload, fireEvent, getBasePath, getEncoding, getFile, getFileName, getKeys, getPath, getProperty, getReloadingStrategy, getURL, isAutoSave, isEmpty, load, load, load, load, load, load, possiblySave, reload, save, save, save, save, save, save, setAutoSave, setEncoding, setFile, setFileName, setPath, setProperty, setReloadingStrategy, setURL |
Methods inherited from class org.apache.commons.configuration.BaseConfiguration |
---|
addPropertyDirect, clear, clearPropertyDirect |
Methods inherited from class org.apache.commons.configuration.event.EventSource |
---|
addConfigurationListener, addErrorListener, clearConfigurationListeners, clearErrorListeners, createErrorEvent, createEvent, fireError, getConfigurationListeners, getErrorListeners, isDetailEvents, removeConfigurationListener, removeErrorListener, setDetailEvents |
Methods inherited from class java.lang.Object |
---|
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Methods inherited from interface org.apache.commons.configuration.Configuration |
---|
clear, 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, subset |
Field Detail |
---|
static final String COMMENT_CHARS
Constructor Detail |
---|
public 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
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 fileMethod Detail |
---|
public static String getInclude()
public static void setInclude(String inc)
inc
- A String.protected void setIncludesAllowed(boolean includesAllowed)
includesAllowed
- includesAllowed True if Includes are allowed.public boolean getIncludesAllowed()
public String getHeader()
public void setHeader(String header)
header
- the header to usepublic 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 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 configuration
ConfigurationException
- if an error occurspublic void setBasePath(String basePath)
setBasePath
in interface FileConfiguration
setBasePath
in class AbstractFileConfiguration
basePath
- The new basePath to set.public Object clone()
clone
in class AbstractFileConfiguration
boolean propertyLoaded(String key, String value) throws ConfigurationException
PropertiesConfigurationLayout
object for each
property definition detected in the parsed properties file. Its task is
to check whether this is a special property definition (e.g. the
include
property). If not, the property must be added to
this configuration. The return value indicates whether the property
should be treated as a normal property. If it is false, the
layout object will ignore this property.
key
- the property keyvalue
- the property value
ConfigurationException
- if an error occursstatic boolean isCommentLine(String line)
line
- the line
protected 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 properties
IllegalArgumentException
- if the Writer is null
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |