net.i2p.addressbook

## Class ConfigParser

- java.lang.Object
- - net.i2p.addressbook.ConfigParser

     class ConfigParser
    extends Object

Utility class providing methods to parse and write files in config file format, and subscription file format. TODO: Change file encoding from default to UTF-8? Or switch to the DataHelper loadProps/storeProps methods?

Author:
  Ragnarok

### Constructor Summary

Constructors
Constructor and Description
`ConfigParser()`

### Method Summary

Methods
`static Map<String,String>` `parse(BufferedReader input)` Return a Map using the contents of BufferedReader input.
`static Map<String,String>` `parse(File file)` Return a Map using the contents of the File file.
`static Map<String,String>` `parse(File file, Map<String,String> map)` Return a Map using the contents of the File file.
`static Map<String,String>` `parse(String string)` Return a Map using the contents of the String string.
`static List<String>` `parseSubscriptions(BufferedReader input)` Return a List where each element is a line from the BufferedReader input.
`static List<String>` `parseSubscriptions(File file)` Return a List where each element is a line from the File file.
`static List<String>` `parseSubscriptions(File file, List<String> list)` Return a List using the contents of the File file.
`static List<String>` `parseSubscriptions(String string)` Return a List where each element is a line from the String string.
`static String` `stripComments(String inputLine)` Strip the comments from a String.
`static void` `write(Map<String,String> map, BufferedWriter output)` Write contents of Map map to BufferedWriter output.
`static void` `write(Map<String,String> map, File file)` Write contents of Map map to the File file.
`static void` `writeSubscriptions(List<String> list, BufferedWriter output)` Write contents of List list to BufferedReader output.
`static void` `writeSubscriptions(List<String> list, File file)` Write contents of List list to File file.

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

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

### Constructor Detail

#### ConfigParser

    ConfigParser()

### Method Detail

#### stripComments

    public static String stripComments(String inputLine)

Strip the comments from a String. Lines that begin with '#' and ';' are considered comments, as well as any part of a line after a '#'.

Parameters:
  `inputLine` - A String to strip comments from.
Returns:
  A String without comments, but otherwise identical to inputLine.

#### parse

    public static Map<String,String> parse(BufferedReader input)
                                    throws IOException

Return a Map using the contents of BufferedReader input. input must have a single key, value pair on each line, in the format: key=value. Lines starting with '#' or ';' are considered comments, and ignored. Lines that are obviously not in the format key=value are also ignored. The key is converted to lower case.

Parameters:
  `input` - A BufferedReader with lines in key=value format to parse into a Map.
Returns:
  A Map containing the key, value pairs from input.
Throws:
  `IOException` - if the BufferedReader cannot be read.

#### parse

    public static Map<String,String> parse(File file)
                                    throws IOException

Return a Map using the contents of the File file. See parseBufferedReader for details of the input format.

Parameters:
  `file` - A File to parse.
Returns:
  A Map containing the key, value pairs from file.
Throws:
  `IOException` - if file cannot be read.

#### parse

    public static Map<String,String> parse(String string)
                                    throws IOException

Return a Map using the contents of the String string. See parseBufferedReader for details of the input format.

Parameters:
  `string` - A String to parse.
Returns:
  A Map containing the key, value pairs from string.
Throws:
  `IOException` - if file cannot be read.

#### parse

    public static Map<String,String> parse(File file,
                           Map<String,String> map)

Return a Map using the contents of the File file. If file cannot be read, use map instead, and write the result to where file should have been.

Parameters:
  `file` - A File to attempt to parse.
  `map` - A Map containing values to use as defaults.
Returns:
  A Map containing the key, value pairs from file, or if file cannot be read, map.

#### parseSubscriptions

    public static List<String> parseSubscriptions(BufferedReader input)
                                           throws IOException

Return a List where each element is a line from the BufferedReader input.

Parameters:
  `input` - A BufferedReader to parse.
Returns:
  A List consisting of one element for each line in input.
Throws:
  `IOException` - if input cannot be read.

#### parseSubscriptions

    public static List<String> parseSubscriptions(File file)
                                           throws IOException

Return a List where each element is a line from the File file.

Parameters:
  `file` - A File to parse.
Returns:
  A List consisting of one element for each line in file.
Throws:
  `IOException` - if file cannot be read.

#### parseSubscriptions

    public static List<String> parseSubscriptions(String string)
                                           throws IOException

Return a List where each element is a line from the String string.

Parameters:
  `string` - A String to parse.
Returns:
  A List consisting of one element for each line in string.
Throws:
  `IOException` - if string cannot be read.

#### parseSubscriptions

    public static List<String> parseSubscriptions(File file,
                                  List<String> list)

Return a List using the contents of the File file. If file cannot be read, use list instead, and write the result to where file should have been.

Parameters:
  `file` - A File to attempt to parse.
  `list` - list of files to parse
Returns:
  A List consisting of one element for each line in file, or if file cannot be read, list.

#### write

    public static void write(Map<String,String> map,
             BufferedWriter output)
                      throws IOException

Write contents of Map map to BufferedWriter output. Output is written with one key, value pair on each line, in the format: key=value.

Parameters:
  `map` - A Map to write to output.
  `output` - A BufferedWriter to write the Map to.
Throws:
  `IOException` - if the BufferedWriter cannot be written to.

#### write

    public static void write(Map<String,String> map,
             File file)
                      throws IOException

Write contents of Map map to the File file. Output is written with one key, value pair on each line, in the format: key=value. Write to a temp file in the same directory and then rename, to not corrupt simultaneous accesses by the router. Except on Windows where renameTo() will fail if the target exists.

Parameters:
  `map` - A Map to write to file.
  `file` - A File to write the Map to.
Throws:
  `IOException` - if file cannot be written to.

#### writeSubscriptions

    public static void writeSubscriptions(List<String> list,
                          BufferedWriter output)
                                   throws IOException

Write contents of List list to BufferedReader output. Output is written with each element of list on a new line.

Parameters:
  `list` - A List to write to file.
  `output` - A BufferedReader to write list to.
Throws:
  `IOException` - if output cannot be written to.

#### writeSubscriptions

    public static void writeSubscriptions(List<String> list,
                          File file)
                                   throws IOException

Write contents of List list to File file. Output is written with each element of list on a new line.

Parameters:
  `list` - A List to write to file.
  `file` - A File to write list to.
Throws:
  `IOException` - if output cannot be written to.