java.lang.Object
net.i2p.addressbook.ConfigParser
Utility class providing methods to parse and write files in config file format, and subscription file format.
Field Summary
FieldsModifier and TypeFieldDescriptionprivate static final booleanTrue on Windows, where the path separators differ.Constructor Summary
ConstructorsMethod Summary
Modifier and TypeMethodDescriptionparse(BufferedReader input) Return a Map using the contents of BufferedReader input.Return a Map using the contents of the File file.Return a Map using the contents of the File file.parseSubscriptions(BufferedReader input) Return a List where each element is a line from the BufferedReader input.parseSubscriptions(File file) Return a List where each element is a line from the File file.parseSubscriptions(File file, List<String> list) Return a List using the contents of the File file.static StringstripComments(String inputLine) Strip the comments from a String.private static voidwrite(Map<String, String> map, BufferedWriter output) Write contents of Map map to BufferedWriter output.static voidWrite contents of Map map to the File file.private static voidwriteSubscriptions(List<String> list, BufferedWriter output) Write contents of List list to BufferedWriter output.private static voidwriteSubscriptions(List<String> list, File file) Write contents of List list to File file.
Field Details
isWindows
private static final boolean isWindowsTrue on Windows, where the path separators differ.
Constructor Details
ConfigParser
private ConfigParser()Utility class, not intended for instantiation.
Method Details
stripComments
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
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
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
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
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
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
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
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
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
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
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.