Package org.apache.felix.cm.file

## Class ConfigurationHandler

- java.lang.Object
- - org.apache.felix.cm.file.ConfigurationHandler

    public class ConfigurationHandler
    extends Object

The `ConfigurationHandler` class implements configuration reading form a `java.io.InputStream` and writing to a `java.io.OutputStream` on behalf of the `FilePersistenceManager` class.

     cfg = prop "=" value .
      prop = symbolic-name . // 1.4.2 of OSGi Core Specification
      symbolic-name = token { "." token } .
      token = { [ 0..9 ] | [ a..z ] | [ A..Z ] | '_' | '-' } .
      value = [ type ] ( "[" values "]" | "(" values ")" | simple ) .
      values = simple { "," simple } .
      simple = """ stringsimple """ .
      type = // 1-char type code .
      stringsimple = // quoted string representation of the value .

### Field Summary

Fields
`protected static Map<Integer,​Class<?>>` `code2Type`
`protected static String` `COLLECTION_LINE_BREAK`
`protected static String` `CRLF`
`protected static String` `ENCODING`
`protected static String` `INDENT`
`protected static int` `TOKEN_ARR_CLOS`
`protected static int` `TOKEN_ARR_OPEN`
`protected static int` `TOKEN_COMMA`
`protected static int` `TOKEN_COMMENT`
`protected static int` `TOKEN_EQ`
`protected static int` `TOKEN_NAME`
`protected static int` `TOKEN_PRIMITIVE_BOOLEAN`
`protected static int` `TOKEN_PRIMITIVE_BYTE`
`protected static int` `TOKEN_PRIMITIVE_CHAR`
`protected static int` `TOKEN_PRIMITIVE_DOUBLE`
`protected static int` `TOKEN_PRIMITIVE_FLOAT`
`protected static int` `TOKEN_PRIMITIVE_INT`
`protected static int` `TOKEN_PRIMITIVE_LONG`
`protected static int` `TOKEN_PRIMITIVE_SHORT`
`protected static int` `TOKEN_SIMPLE_BOOLEAN`
`protected static int` `TOKEN_SIMPLE_BYTE`
`protected static int` `TOKEN_SIMPLE_CHARACTER`
`protected static int` `TOKEN_SIMPLE_DOUBLE`
`protected static int` `TOKEN_SIMPLE_FLOAT`
`protected static int` `TOKEN_SIMPLE_INTEGER`
`protected static int` `TOKEN_SIMPLE_LONG`
`protected static int` `TOKEN_SIMPLE_SHORT`
`protected static int` `TOKEN_SIMPLE_STRING`
`protected static int` `TOKEN_VAL_CLOS`
`protected static int` `TOKEN_VAL_OPEN`
`protected static int` `TOKEN_VEC_CLOS`
`protected static int` `TOKEN_VEC_OPEN`
`protected static Map<Class<?>,​Integer>` `type2Code`

### Method Summary

All Methods Static Methods Concrete Methods
`static Dictionary` `read​(InputStream ins)` Reads configuration data from the given `InputStream` and returns a new `Dictionary` object containing the data.
`static void` `write​(OutputStream out, Dictionary properties)` Writes the configuration data from the `Dictionary` to the given `OutputStream`.

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

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

### Field Detail

#### ENCODING

    protected static final String ENCODING

See Also:
  Constant Field Values

#### TOKEN_NAME

    protected static final int TOKEN_NAME

See Also:
  Constant Field Values

#### TOKEN_EQ

    protected static final int TOKEN_EQ

See Also:
  Constant Field Values

#### TOKEN_ARR_OPEN

    protected static final int TOKEN_ARR_OPEN

See Also:
  Constant Field Values

#### TOKEN_ARR_CLOS

    protected static final int TOKEN_ARR_CLOS

See Also:
  Constant Field Values

#### TOKEN_VEC_OPEN

    protected static final int TOKEN_VEC_OPEN

See Also:
  Constant Field Values

#### TOKEN_VEC_CLOS

    protected static final int TOKEN_VEC_CLOS

See Also:
  Constant Field Values

#### TOKEN_COMMA

    protected static final int TOKEN_COMMA

See Also:
  Constant Field Values

#### TOKEN_VAL_OPEN

    protected static final int TOKEN_VAL_OPEN

See Also:
  Constant Field Values

#### TOKEN_VAL_CLOS

    protected static final int TOKEN_VAL_CLOS

See Also:
  Constant Field Values

#### TOKEN_COMMENT

    protected static final int TOKEN_COMMENT

See Also:
  Constant Field Values

#### TOKEN_SIMPLE_STRING

    protected static final int TOKEN_SIMPLE_STRING

See Also:
  Constant Field Values

#### TOKEN_SIMPLE_INTEGER

    protected static final int TOKEN_SIMPLE_INTEGER

See Also:
  Constant Field Values

#### TOKEN_SIMPLE_LONG

    protected static final int TOKEN_SIMPLE_LONG

See Also:
  Constant Field Values

#### TOKEN_SIMPLE_FLOAT

    protected static final int TOKEN_SIMPLE_FLOAT

See Also:
  Constant Field Values

#### TOKEN_SIMPLE_DOUBLE

    protected static final int TOKEN_SIMPLE_DOUBLE

See Also:
  Constant Field Values

#### TOKEN_SIMPLE_BYTE

    protected static final int TOKEN_SIMPLE_BYTE

See Also:
  Constant Field Values

#### TOKEN_SIMPLE_SHORT

    protected static final int TOKEN_SIMPLE_SHORT

See Also:
  Constant Field Values

#### TOKEN_SIMPLE_CHARACTER

    protected static final int TOKEN_SIMPLE_CHARACTER

See Also:
  Constant Field Values

#### TOKEN_SIMPLE_BOOLEAN

    protected static final int TOKEN_SIMPLE_BOOLEAN

See Also:
  Constant Field Values

#### TOKEN_PRIMITIVE_INT

    protected static final int TOKEN_PRIMITIVE_INT

See Also:
  Constant Field Values

#### TOKEN_PRIMITIVE_LONG

    protected static final int TOKEN_PRIMITIVE_LONG

See Also:
  Constant Field Values

#### TOKEN_PRIMITIVE_FLOAT

    protected static final int TOKEN_PRIMITIVE_FLOAT

See Also:
  Constant Field Values

#### TOKEN_PRIMITIVE_DOUBLE

    protected static final int TOKEN_PRIMITIVE_DOUBLE

See Also:
  Constant Field Values

#### TOKEN_PRIMITIVE_BYTE

    protected static final int TOKEN_PRIMITIVE_BYTE

See Also:
  Constant Field Values

#### TOKEN_PRIMITIVE_SHORT

    protected static final int TOKEN_PRIMITIVE_SHORT

See Also:
  Constant Field Values

#### TOKEN_PRIMITIVE_CHAR

    protected static final int TOKEN_PRIMITIVE_CHAR

See Also:
  Constant Field Values

#### TOKEN_PRIMITIVE_BOOLEAN

    protected static final int TOKEN_PRIMITIVE_BOOLEAN

See Also:
  Constant Field Values

#### CRLF

    protected static final String CRLF

See Also:
  Constant Field Values

#### INDENT

    protected static final String INDENT

See Also:
  Constant Field Values

#### COLLECTION_LINE_BREAK

    protected static final String COLLECTION_LINE_BREAK

See Also:
  Constant Field Values

#### code2Type

    protected static final Map<Integer,​Class<?>> code2Type

#### type2Code

    protected static final Map<Class<?>,​Integer> type2Code

### Method Detail

#### write

    public static void write​(OutputStream out,
                             Dictionary properties)
                      throws IOException

Writes the configuration data from the `Dictionary` to the given `OutputStream`.

This method writes at the current location in the stream and does not close the output stream.

Parameters:
  `out` - The `OutputStream` to write the configuration data to.
  `properties` - The `Dictionary` to write.
Throws:
  `IOException` - If an error occurs writing to the output stream.

#### read

    public static Dictionary read​(InputStream ins)
                           throws IOException

Reads configuration data from the given `InputStream` and returns a new `Dictionary` object containing the data.

This method reads from the current location in the stream up to the end of the stream but does not close the stream at the end.

Parameters:
  `ins` - The `InputStream` from which to read the configuration data.
Returns:
  A `Dictionary` object containing the configuration data. This object may be empty if the stream contains no configuration data.
Throws:
  `IOException` - If an error occurs reading from the stream. This exception is also thrown if a syntax error is encountered.