@Override protected void loadResourceXmlFile(XmlContext xmlContext) { resourceTable.addResource( type, Fs.baseNameFor(xmlContext.getXmlFile()), new FileTypedResource(xmlContext.getXmlFile(), resType, xmlContext)); } }.load(type);
public void load(PackageResourceTable resourceTable, String folderBaseName) throws IOException { Path resourceBase = resourcePath.getResourceBase(); for (Path dir : Fs.listFiles(resourceBase, new DirBaseNameFilter(folderBaseName))) { loadRawFiles(resourceTable, folderBaseName, dir); } }
public void load(String folderBaseName) throws IOException { for (Path dir : Fs.listFiles(resourceBase, new DirBaseNameFilter(folderBaseName))) { loadFile(dir); } }
private ResName resolveResource(TypedResource value, ResTable_config config, ResName resName) { while (value != null && value.isReference()) { String s = value.asString(); if (AttributeResource.isNull(s) || AttributeResource.isEmpty(s)) { value = null; } else { String refStr = s.substring(1).replace("+", ""); resName = ResName.qualifyResName(refStr, resName); value = resourceTable.getValue(resName, config); } } return resName; }
@Test public void ignoresXliffTags() throws Exception { topLevelNodeHandler.addHandler("resources", new NodeHandler() .addHandler("string", new StaxValueLoader(resourceTable, "string", ResType.CHAR_SEQUENCE)) ); parse("<resources xmlns:xliff=\"urn:oasis:names:tc:xliff:document:1.2\">" + "<string name=\"preposition_for_date\">on <xliff:g id=\"date\" example=\"May 29\">%s</xliff:g></string>" + "</resources>"); assertThat(resourceTable.getValue(new ResName("pkg:string/preposition_for_date"), new ResTable_config()).getData()) .isEqualTo("on %s"); }
public String qualify(String value) { if (value == null) return null; if (AttributeResource.isResourceReference(value)) { return "@" + ResName.qualifyResourceName(value.trim().substring(1).replace("+", ""), packageName, "attr"); } else if (AttributeResource.isStyleReference(value)) { return "?" + ResName.qualifyResourceName(value.trim().substring(1), packageName, "attr"); } else { return StringResources.processStringResources(value); } }
@Override public void onEnd(XMLStreamReader xml, XmlContext xmlContext) throws XMLStreamException { String styleParent = parent; if (styleParent == null) { int lastDot = name.lastIndexOf('.'); if (lastDot != -1) { styleParent = name.substring(0, lastDot); } } StyleData styleData = new StyleData(xmlContext.getPackageName(), name, styleParent, attributeResources); resourceTable.addResource("style", styleData.getName(), new TypedResource<>(styleData, resType, xmlContext)); } }
@Override public String getResourceName(Integer attrId) { return resourceTable.getResName(attrId).getFullyQualifiedName(); }
public int generate(String type, String name) { TypeTracker typeTracker = typeInfo.get(type); if (typeTracker == null) { typeTracker = new TypeTracker(getNextFreeTypeIdentifier()); typeInfo.put(type, typeTracker); } return ResourceIds.makeIdentifer(packageIdentifier, typeTracker.getTypeIdentifier(), typeTracker.getFreeIdentifier()); }
@Override public void onEnd(XMLStreamReader xml, XmlContext xmlContext) throws XMLStreamException { resourceTable.addResource(attrType, name, new TypedResource<>(items, resType, xmlContext)); } }
@Before public void setUp() throws Exception { resourceTable = new PackageResourceTable("pkg"); topLevelNodeHandler = new NodeHandler(); staxDocumentLoader = new StaxDocumentLoader("pkg", null, topLevelNodeHandler); }
@Override public TypedResource getValue(int resId, ResTable_config config) { ResName resName = pickFor(resId).getResName(resId); return resName != null ? getValue(resName, config) : null; }
public StaxValueLoader(PackageResourceTable resourceTable, String attrType, ResType resType) { super(resourceTable, attrType, resType); if (resType == ResType.CHAR_SEQUENCE) { addHandler("*", new TextCollectingNodeHandler(buf)); } }
@Override public TypedResource getValue(int resId, ResTable_config config) { return resources.get(getResName(resId), config); }
@Override public Integer getResourceId(ResName resName) { return pickFor(resName).getResourceId(resName); }
@Override public ResName getResName(int resourceId) { return pickFor(resourceId).getResName(resourceId); }
@Override public InputStream getRawValue(ResName resName, ResTable_config config) { return pickFor(resName).getRawValue(resName, config); }
private ResBundle.ResMap asResMap(String... qualifierses) { ResBundle.ResMap resMap = new ResBundle.ResMap(); for (String qualifiers : qualifierses) { resMap.put(resName, createStringTypedResource(qualifiers, qualifiers)); } return resMap; }
private TypedResource resolveResourceValue(TypedResource value, ResTable_config config, ResName resName) { while (value != null && value.isReference()) { String s = value.asString(); if (AttributeResource.isNull(s) || AttributeResource.isEmpty(s)) { value = null; } else { String refStr = s.substring(1).replace("+", ""); resName = ResName.qualifyResName(refStr, resName); value = resourceTable.getValue(resName, config); } } return value; }