# HG changeset patch # User František Kučera # Date 1410040909 -7200 # Node ID c03497563ce3cef6e07408988fc86ad6c4a24b12 # Parent f5b287fa69b6d60e3d2195a22b93b0d3f0197e1a in-ini: comments diff -r f5b287fa69b6 -r c03497563ce3 java/alt2xml-in-ini/src/cz/frantovo/alt2xml/in/ini/Reader.java --- a/java/alt2xml-in-ini/src/cz/frantovo/alt2xml/in/ini/Reader.java Sat Sep 06 23:44:26 2014 +0200 +++ b/java/alt2xml-in-ini/src/cz/frantovo/alt2xml/in/ini/Reader.java Sun Sep 07 00:01:49 2014 +0200 @@ -34,6 +34,30 @@ import org.xml.sax.helpers.AttributesImpl; /** + * Reads INI files with sections and entries. + * Example: + *
; this is comment
+ *random=value outside of any groups
+ *
+ *[some_section]
+ *
+ *; simple entry:
+ *key=value
+ *
+ *; entry starting/ending with whitespace
+ *white="  spaces everywhere  " ; might have comment
+ *alternative='  spaces everywhere  ' ; same
+ *
+ *; entries with subkeys:
+ *key[subkey_a]=value
+ *key[subkey_b]=value
+ *
+ *# alternative way to comment
+ *
+ *[another secion]
+ *yes=there might be spaces in names
+ *because=they are encoded before putting into XML element names
+ * 
* * @author Ing. František Kučera (frantovo.cz) */ @@ -139,7 +163,7 @@ } }, - SECTION("\\s*\\[\\s*(?[^\\]\\]]+)\\s*\\]\\s*") { + SECTION("\\s*\\[\\s*(?[^\\]]+)\\s*\\]\\s*") { @Override public void processLine(LineContext lc, FileContext fc) throws SAXException { String name = encodeXmlName(lc.matcher.group("name"), fc.lineNumber); @@ -180,6 +204,9 @@ },; + /** + * @param patterns regular expression (or expressions) that describes this line type + */ private LINE_TYPE(String... patterns) { for (String pattern : patterns) { this.patterns.add(Pattern.compile(pattern)); @@ -188,6 +215,13 @@ private final List patterns = new ArrayList<>(); + /** + * + * @param currentLine input line to be parsed + * @param fc + * @return whether line matches and was thus processed + * @throws SAXException + */ protected boolean processLine(String currentLine, FileContext fc) throws SAXException { for (Pattern pattern : patterns) { Matcher m = pattern.matcher(currentLine); @@ -202,5 +236,4 @@ public abstract void processLine(LineContext lc, FileContext fc) throws SAXException; } - }