1a2043a8fff01f3e2d9a5e30dd1cf5fb6a5342f4dTyler Schultzpackage com.xtremelabs.robolectric.res;
2684ccc2fc5a1c79aa45af22b95c37f7c509a00c1Christian Williams
3684ccc2fc5a1c79aa45af22b95c37f7c509a00c1Christian Williamsimport org.w3c.dom.Node;
4684ccc2fc5a1c79aa45af22b95c37f7c509a00c1Christian Williams
503026285fac7636e32c65f71bb8861f3a9906058Phil Goodwin & Tyler Schultzpublic class StringResourceLoader extends XpathResourceXmlLoader implements ResourceValueConverter {
603026285fac7636e32c65f71bb8861f3a9906058Phil Goodwin & Tyler Schultz    private ResourceReferenceResolver<String> stringResolver = new ResourceReferenceResolver<String>("string");
7684ccc2fc5a1c79aa45af22b95c37f7c509a00c1Christian Williams
8684ccc2fc5a1c79aa45af22b95c37f7c509a00c1Christian Williams    public StringResourceLoader(ResourceExtractor resourceExtractor) {
9935672a6df8e1d636f8eaae2f1f7e951327e767cChristian Williams        super(resourceExtractor, "/resources/string");
10684ccc2fc5a1c79aa45af22b95c37f7c509a00c1Christian Williams    }
11684ccc2fc5a1c79aa45af22b95c37f7c509a00c1Christian Williams
1252e6c9b2b630daf588364ca731be6445028bf41bIan Fisher & Phil Goodwin    public String getValue(int resourceId) {
1303026285fac7636e32c65f71bb8861f3a9906058Phil Goodwin & Tyler Schultz        return stringResolver.getValue(resourceExtractor.getResourceName(resourceId));
1452e6c9b2b630daf588364ca731be6445028bf41bIan Fisher & Phil Goodwin    }
1552e6c9b2b630daf588364ca731be6445028bf41bIan Fisher & Phil Goodwin
1629610b43047065c5dc66452d33f0113ac7e65fe8Phil Goodwin    public String getValue(String resourceName, boolean isSystem) {
1729610b43047065c5dc66452d33f0113ac7e65fe8Phil Goodwin        return getValue(resourceExtractor.getResourceId(resourceName, isSystem));
1870721982e6f564ddc32e599e7d6a2241527cb42dChristian Williams & Tyler Schultz    }
19935672a6df8e1d636f8eaae2f1f7e951327e767cChristian Williams
2028dc94ecb7ac94834b97e3f6be778b3f2bb734fdJesse Toth & Tim Labeeuw    @Override protected void processNode(Node node, String name, boolean isSystem) {
2128dc94ecb7ac94834b97e3f6be778b3f2bb734fdJesse Toth & Tim Labeeuw        stringResolver.processResource(name, node.getTextContent(), this, isSystem);
2203026285fac7636e32c65f71bb8861f3a9906058Phil Goodwin & Tyler Schultz    }
2303026285fac7636e32c65f71bb8861f3a9906058Phil Goodwin & Tyler Schultz
2403026285fac7636e32c65f71bb8861f3a9906058Phil Goodwin & Tyler Schultz    @Override public Object convertRawValue(String rawValue) {
2503026285fac7636e32c65f71bb8861f3a9906058Phil Goodwin & Tyler Schultz        return rawValue;
26935672a6df8e1d636f8eaae2f1f7e951327e767cChristian Williams    }
27684ccc2fc5a1c79aa45af22b95c37f7c509a00c1Christian Williams}
28