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

class ConfigParserextends Object
Utility class providing methods to parse and write files in config file format, and subscription file format.
  • Field Details

    • isWindows

      private static final boolean isWindows
      True on Windows, where the path separators differ.
  • Constructor Details

    • ConfigParser

      private ConfigParser()
      Utility class, not intended for instantiation.
  • Method Details

    • 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

      private 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(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

      private 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

      private 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(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 - The default subscriptions to be saved and returned if the file cannot be read
      Returns:
      A List consisting of one element for each line in file, or if file cannot be read, list.
    • write

      private 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

      private static void writeSubscriptions(List<String> list, BufferedWriter output) throws IOException
      Write contents of List list to BufferedWriter output. Output is written with each element of list on a new line.
      Parameters:
      list - A List to write to file.
      output - A BufferedWriter to write list to.
      Throws:
      IOException - if output cannot be written to.
    • writeSubscriptions

      private 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.