Class PropertiesConfiguration.PropertiesReader
- java.lang.Object
-
- java.io.Reader
-
- java.io.BufferedReader
-
- java.io.LineNumberReader
-
- org.apache.commons.configuration2.PropertiesConfiguration.PropertiesReader
-
- All Implemented Interfaces:
java.io.Closeable
,java.lang.AutoCloseable
,java.lang.Readable
- Direct Known Subclasses:
PropertiesConfiguration.JupPropertiesReader
- Enclosing class:
- PropertiesConfiguration
public static class PropertiesConfiguration.PropertiesReader extends java.io.LineNumberReader
This class is used to read properties lines. These lines do not terminate with new-line chars but rather when there is no backslash sign a the end of the line. This is used to concatenate multiple lines for readability.
-
-
Constructor Summary
Constructors Constructor Description PropertiesReader(java.io.Reader reader)
Constructor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description java.util.List<java.lang.String>
getCommentLines()
Returns the comment lines that have been read for the last property.java.lang.String
getPropertyName()
Returns the name of the last read property.java.lang.String
getPropertySeparator()
Returns the separator that was used for the last read property.java.lang.String
getPropertyValue()
Returns the value of the last read property.protected void
initPropertyName(java.lang.String name)
Sets the name of the current property.protected void
initPropertySeparator(java.lang.String value)
Sets the separator of the current property.protected void
initPropertyValue(java.lang.String value)
Sets the value of the current property.boolean
nextProperty()
Parses the next property from the input stream and stores the found name and value in internal fields.protected void
parseProperty(java.lang.String line)
Parses a line read from the properties file.java.lang.String
readProperty()
Reads a property line.protected java.lang.String
unescapePropertyName(java.lang.String name)
Performs unescaping on the given property name.protected java.lang.String
unescapePropertyValue(java.lang.String value)
Performs unescaping on the given property value.
-
-
-
Method Detail
-
readProperty
public java.lang.String readProperty() throws java.io.IOException
Reads a property line. Returns null if Stream is at EOF. Concatenates lines ending with "\". Skips lines beginning with "#" or "!" and empty lines. The return value is a property definition (<name>
=<value>
)- Returns:
- A string containing a property value or null
- Throws:
java.io.IOException
- in case of an I/O error
-
nextProperty
public boolean nextProperty() throws java.io.IOException
Parses the next property from the input stream and stores the found name and value in internal fields. These fields can be obtained using the provided getter methods. The return value indicates whether EOF was reached (false) or whether further properties are available (true).- Returns:
- a flag if further properties are available
- Throws:
java.io.IOException
- if an error occurs- Since:
- 1.3
-
getCommentLines
public java.util.List<java.lang.String> getCommentLines()
Returns the comment lines that have been read for the last property.- Returns:
- the comment lines for the last property returned by
readProperty()
- Since:
- 1.3
-
getPropertyName
public java.lang.String getPropertyName()
Returns the name of the last read property. This method can be called afternextProperty()
was invoked and its return value was true.- Returns:
- the name of the last read property
- Since:
- 1.3
-
getPropertyValue
public java.lang.String getPropertyValue()
Returns the value of the last read property. This method can be called afternextProperty()
was invoked and its return value was true.- Returns:
- the value of the last read property
- Since:
- 1.3
-
getPropertySeparator
public java.lang.String getPropertySeparator()
Returns the separator that was used for the last read property. The separator can be stored so that it can later be restored when saving the configuration.- Returns:
- the separator for the last read property
- Since:
- 1.7
-
parseProperty
protected void parseProperty(java.lang.String line)
Parses a line read from the properties file. This method is called for each non-comment line read from the source file. Its task is to split the passed in line into the property key and its value. The results of the parse operation can be stored by calling theinitPropertyXXX()
methods.- Parameters:
line
- the line read from the properties file- Since:
- 1.7
-
initPropertyName
protected void initPropertyName(java.lang.String name)
Sets the name of the current property. This method can be called byparseProperty()
for storing the results of the parse operation. It also ensures that the property key is correctly escaped.- Parameters:
name
- the name of the current property- Since:
- 1.7
-
unescapePropertyName
protected java.lang.String unescapePropertyName(java.lang.String name)
Performs unescaping on the given property name.- Parameters:
name
- the property name- Returns:
- the unescaped property name
- Since:
- 2.4
-
initPropertyValue
protected void initPropertyValue(java.lang.String value)
Sets the value of the current property. This method can be called byparseProperty()
for storing the results of the parse operation. It also ensures that the property value is correctly escaped.- Parameters:
value
- the value of the current property- Since:
- 1.7
-
unescapePropertyValue
protected java.lang.String unescapePropertyValue(java.lang.String value)
Performs unescaping on the given property value.- Parameters:
value
- the property value- Returns:
- the unescaped property value
- Since:
- 2.4
-
initPropertySeparator
protected void initPropertySeparator(java.lang.String value)
Sets the separator of the current property. This method can be called byparseProperty()
. It allows the associated layout object to keep track of the property separators. When saving the configuration the separators can be restored.- Parameters:
value
- the separator used for the current property- Since:
- 1.7
-
-