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 {
39 * TODO: same format as Java XML properties</p>
41 * TODO: support also nested mode <code>aaa.bbb.ccc=xxx</code> →
42 * <code><aaa><bbb><ccc>xxx</ccc></bbb></aaa></code></p>
45 public void parse(InputSource input) throws IOException, SAXException {
46 Properties loadedData = new Properties();
47 loadedData.load(input.getByteStream());
49 contentHandler.startDocument();
50 contentHandler.startElement(null, null, "properties", null);
52 for (Entry<Object, Object> e : loadedData.entrySet()) {
53 String key = (String) e.getKey();
54 String value = (String) e.getValue();
56 AttributesImpl attributes = new AttributesImpl();
57 attributes.addAttribute(null, "name", "name", "xs:string", key);
59 contentHandler.startElement(null, null, "property", attributes);
60 contentHandler.characters(value.toCharArray(), 0, value.length());
61 contentHandler.endElement(null, null, "property");
64 contentHandler.endElement(null, null, "properties");
65 contentHandler.endDocument();