org.apache.felix.utils.properties

## Class Properties.PropertiesReader

- java.lang.Object
- - java.io.Reader
  - - java.io.BufferedReader
    - - java.io.LineNumberReader
      - - org.apache.felix.utils.properties.Properties.PropertiesReader

All Implemented Interfaces:
  Closeable, AutoCloseable, Readable

Enclosing class:
  Properties

    public static class Properties.PropertiesReader
    extends 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.

### Field Summary

### Fields inherited from class java.io.Reader

`lock`

### Constructor Summary

Constructors
Constructor and Description
`PropertiesReader(Reader reader, boolean maybeTyped)` Creates a new instance of `PropertiesReader` and sets the underlaying reader and the list delimiter.

### Method Summary

All Methods Instance Methods Concrete Methods
`List<String>` `getCommentLines()` Returns the comment lines that have been read for the last property.
`String` `getPropertyName()` Returns the name of the last read property.
`String` `getPropertyValue()` Returns the value of the last read property.
`List<String>` `getValueLines()` Returns the value lines that have been read for the last property.
`boolean` `nextProperty()` Parses the next property from the input stream and stores the found name and value in internal fields.
`String` `readProperty()` Reads a property line.

### Methods inherited from class java.io.LineNumberReader

`getLineNumber, mark, read, read, readLine, reset, setLineNumber, skip`

### Methods inherited from class java.io.BufferedReader

`close, lines, markSupported, ready`

### Methods inherited from class java.io.Reader

`read, read`

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

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

### Constructor Detail

#### PropertiesReader

    public PropertiesReader(Reader reader,
                            boolean maybeTyped)

Creates a new instance of `PropertiesReader` and sets the underlaying reader and the list delimiter.

Parameters:
  `reader` - the reader

### Method Detail

#### readProperty

    public String readProperty()
                        throws 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:
  `IOException` - in case of an I/O error

#### nextProperty

    public boolean nextProperty()
                         throws 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:
  `IOException` - if an error occurs

#### getCommentLines

    public List<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()`

#### getValueLines

    public List<String> getValueLines()

Returns the value lines that have been read for the last property.

Returns:
  the raw value lines for the last property returned by `readProperty()`

#### getPropertyName

    public String getPropertyName()

Returns the name of the last read property. This method can be called after ``nextProperty()`` was invoked and its return value was true.

Returns:
  the name of the last read property

#### getPropertyValue

    public String getPropertyValue()

Returns the value of the last read property. This method can be called after ``nextProperty()`` was invoked and its return value was true.

Returns:
  the value of the last read property