/*-
* Copyright (C) 2006-2007 Erik Larsson
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package org.catacombae.hfsexplorer;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.HashMap;
public class SimpleDictionaryParser {
private static final String SPD_HEADER = "!SimpleDictionary";
private HashMap<String, String> dictionaryTable =
new HashMap<String, String>();
public SimpleDictionaryParser(InputStream is) {
try {
BufferedReader buf = new BufferedReader(new InputStreamReader(is, "UTF-8"));
String firstLine = buf.readLine();
int colonIndex = firstLine.indexOf(":");
String spdTag = firstLine.substring(0, firstLine.indexOf(":"));
String spdVersion = firstLine.substring(firstLine.indexOf(":")+1).trim();
//System.err.println("spdTag: \"" + spdTag + "\" spdVersion: \"" + spdVersion + "\"");
if(!(spdTag.equals(SPD_HEADER) && spdVersion.equals("1.0")))
throw new RuntimeException("Invalid SimpleDictionary data.");
String currentLine = buf.readLine();
while(currentLine != null) {
colonIndex = currentLine.indexOf(":");
String key = currentLine.substring(0, currentLine.indexOf(":"));
String value = currentLine.substring(currentLine.indexOf(":")+1).trim();
//System.err.println("key: \"" + key + "\" value: \"" + value + "\"");
dictionaryTable.put(key, value);
currentLine = buf.readLine();
}
} catch(IOException ioe) { throw new RuntimeException(ioe); }
}
public String getValue(String key) { return dictionaryTable.get(key); }
/*
public static void main(String[] args) {
new SimpleDictionaryParser(System.in);
}
*/
}