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
    Modifier and Type | Method and Description
    --- | ---
    `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.