3 * Copyright © 2014 František Kučera (frantovo.cz)
5 * This program is free software: you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation, either version 3 of the License, or
8 * (at your option) any later version.
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
15 * You should have received a copy of the GNU General Public License
16 * along with this program. If not, see <http://www.gnu.org/licenses/>.
18 package cz.frantovo.alt2xml.in.properties;
20 import cz.frantovo.alt2xml.AbstractAlt2XmlReader;
21 import java.io.IOException;
22 import java.util.Map.Entry;
23 import java.util.Properties;
24 import org.xml.sax.InputSource;
25 import org.xml.sax.SAXException;
26 import org.xml.sax.helpers.AttributesImpl;
30 * @author Ing. František Kučera (frantovo.cz)
32 public class Reader extends AbstractAlt2XmlReader {
36 * TODO: same format as Java XML properties</p>
38 * TODO: support also nested mode <code>aaa.bbb.ccc=xxx</code> →
39 * <code><aaa><bbb><ccc>xxx</ccc></bbb></aaa></code></p>
42 public void parse(InputSource input) throws IOException, SAXException {
43 Properties loadedData = new Properties();
44 loadedData.load(input.getByteStream());
46 contentHandler.startDocument();
47 contentHandler.startElement(null, null, "properties", null);
49 for (Entry<Object, Object> e : loadedData.entrySet()) {
50 String key = (String) e.getKey();
51 String value = (String) e.getValue();
53 AttributesImpl attributes = new AttributesImpl();
54 attributes.setAttribute(0, null, "name", "name", "xs:string", key);
56 contentHandler.startElement(null, null, "property", attributes);
57 contentHandler.characters(value.toCharArray(), 0, value.length());
58 contentHandler.endElement(null, null, "property");
61 contentHandler.endElement(null, null, "properties");
62 contentHandler.endDocument();