StringResourceLoader.java revision 684ccc2fc5a1c79aa45af22b95c37f7c509a00c1
1684ccc2fc5a1c79aa45af22b95c37f7c509a00c1Christian Williamspackage com.xtremelabs.droidsugar.view; 2684ccc2fc5a1c79aa45af22b95c37f7c509a00c1Christian Williams 3684ccc2fc5a1c79aa45af22b95c37f7c509a00c1Christian Williamsimport org.w3c.dom.Document; 4684ccc2fc5a1c79aa45af22b95c37f7c509a00c1Christian Williamsimport org.w3c.dom.Node; 5684ccc2fc5a1c79aa45af22b95c37f7c509a00c1Christian Williamsimport org.w3c.dom.NodeList; 6684ccc2fc5a1c79aa45af22b95c37f7c509a00c1Christian Williams 7684ccc2fc5a1c79aa45af22b95c37f7c509a00c1Christian Williamsimport javax.xml.xpath.XPathConstants; 8684ccc2fc5a1c79aa45af22b95c37f7c509a00c1Christian Williamsimport javax.xml.xpath.XPathExpression; 9684ccc2fc5a1c79aa45af22b95c37f7c509a00c1Christian Williamsimport javax.xml.xpath.XPathFactory; 10684ccc2fc5a1c79aa45af22b95c37f7c509a00c1Christian Williamsimport java.io.File; 11684ccc2fc5a1c79aa45af22b95c37f7c509a00c1Christian Williamsimport java.util.HashMap; 12684ccc2fc5a1c79aa45af22b95c37f7c509a00c1Christian Williamsimport java.util.Map; 13684ccc2fc5a1c79aa45af22b95c37f7c509a00c1Christian Williams 14684ccc2fc5a1c79aa45af22b95c37f7c509a00c1Christian Williamspublic class StringResourceLoader extends XmlLoader { 15684ccc2fc5a1c79aa45af22b95c37f7c509a00c1Christian Williams Map<String, String> values = new HashMap<String, String>(); 16684ccc2fc5a1c79aa45af22b95c37f7c509a00c1Christian Williams 17684ccc2fc5a1c79aa45af22b95c37f7c509a00c1Christian Williams public StringResourceLoader(ResourceExtractor resourceExtractor) { 18684ccc2fc5a1c79aa45af22b95c37f7c509a00c1Christian Williams super(resourceExtractor); 19684ccc2fc5a1c79aa45af22b95c37f7c509a00c1Christian Williams } 20684ccc2fc5a1c79aa45af22b95c37f7c509a00c1Christian Williams 21684ccc2fc5a1c79aa45af22b95c37f7c509a00c1Christian Williams @Override 22684ccc2fc5a1c79aa45af22b95c37f7c509a00c1Christian Williams protected void processResourceXml(File xmlFile, Document document) throws Exception { 23684ccc2fc5a1c79aa45af22b95c37f7c509a00c1Christian Williams XPathExpression stringsXPath = XPathFactory.newInstance().newXPath().compile("/resources/string"); 24684ccc2fc5a1c79aa45af22b95c37f7c509a00c1Christian Williams NodeList stringNodes = (NodeList) stringsXPath.evaluate(document, XPathConstants.NODESET); 25684ccc2fc5a1c79aa45af22b95c37f7c509a00c1Christian Williams for (int i = 0; i < stringNodes.getLength(); i++) { 26684ccc2fc5a1c79aa45af22b95c37f7c509a00c1Christian Williams Node node = stringNodes.item(i); 27684ccc2fc5a1c79aa45af22b95c37f7c509a00c1Christian Williams String name = node.getAttributes().getNamedItem("name").getNodeValue(); 28684ccc2fc5a1c79aa45af22b95c37f7c509a00c1Christian Williams String value = node.getTextContent(); 29684ccc2fc5a1c79aa45af22b95c37f7c509a00c1Christian Williams values.put("string/" + name, value); 30684ccc2fc5a1c79aa45af22b95c37f7c509a00c1Christian Williams } 31684ccc2fc5a1c79aa45af22b95c37f7c509a00c1Christian Williams } 32684ccc2fc5a1c79aa45af22b95c37f7c509a00c1Christian Williams 33684ccc2fc5a1c79aa45af22b95c37f7c509a00c1Christian Williams public String getValue(int resourceId) { 34684ccc2fc5a1c79aa45af22b95c37f7c509a00c1Christian Williams String resourceName = resourceExtractor.getResourceName(resourceId); 35684ccc2fc5a1c79aa45af22b95c37f7c509a00c1Christian Williams return values.get(resourceName); 36684ccc2fc5a1c79aa45af22b95c37f7c509a00c1Christian Williams } 37684ccc2fc5a1c79aa45af22b95c37f7c509a00c1Christian Williams} 38