1 19 20 package com.izforge.izpack; 21 22 import java.io.InputStream ; 23 import java.util.TreeMap ; 24 import java.util.Vector ; 25 26 import net.n3.nanoxml.NonValidator; 27 import net.n3.nanoxml.StdXMLBuilder; 28 import net.n3.nanoxml.StdXMLParser; 29 import net.n3.nanoxml.StdXMLReader; 30 import net.n3.nanoxml.XMLElement; 31 32 37 public class LocaleDatabase extends TreeMap 38 { 39 40 static final long serialVersionUID = 4941525634108401848L; 41 42 48 public LocaleDatabase(InputStream in) throws Exception 49 { 50 super(); 52 add(in); 53 } 54 55 public void add(InputStream in) throws Exception 56 { 57 StdXMLParser parser = new StdXMLParser(); 59 parser.setBuilder(new StdXMLBuilder()); 60 parser.setReader(new StdXMLReader(in)); 61 parser.setValidator(new NonValidator()); 62 63 XMLElement data = (XMLElement) parser.parse(); 65 66 if (!"langpack".equalsIgnoreCase(data.getName())) 68 throw new Exception ("this is not an IzPack XML langpack file"); 69 70 Vector children = data.getChildren(); 72 int size = children.size(); 73 for (int i = 0; i < size; i++) 74 { 75 XMLElement e = (XMLElement) children.get(i); 76 String text = e.getContent(); 77 if (text != null && !"".equals(text)) 78 { 79 put(e.getAttribute("id"), text.trim()); 80 } 81 else 82 { 83 put(e.getAttribute("id"), e.getAttribute("txt")); 84 } 85 } 86 87 } 88 89 95 public String getString(String key) 96 { 97 String val = (String ) get(key); 98 if (val == null) val = key; 102 return val; 103 } 104 } 105 106 | Popular Tags |