@Override public String getNamespace() { return standardExtensionElement.getNamespace(); }
@Override public String getNamespace() { return standardExtensionElement.getNamespace(); }
@Override public XmlStringBuilder toXML(String enclosingNamespace) { if (xmlCache != null) { return xmlCache; } XmlStringBuilder xml = new XmlStringBuilder(this, enclosingNamespace); for (Map.Entry<String, String> entry : attributes.entrySet()) { xml.attribute(entry.getKey(), entry.getValue()); } xml.rightAngleBracket(); xml.optEscape(text); if (elements != null) { for (Map.Entry<String, StandardExtensionElement> entry : elements.entrySet()) { xml.append(entry.getValue().toXML(getNamespace())); } } xml.closeElement(this); xmlCache = xml; return xml; }
public Builder addElement(StandardExtensionElement element) { Objects.requireNonNull(element, "Element must not be null"); if (elements == null) { elements = new MultiMap<>(); } String key = XmppStringUtils.generateKey(element.getElementName(), element.getNamespace()); elements.put(key, element); return this; }
@Test public void buildAndParse() throws Exception { StandardExtensionElement.Builder builder = StandardExtensionElement.builder("foo", "ns1"); builder.addAttribute("attr1", "attr1-value"); builder.addElement(StandardExtensionElement.builder("bar", "ns2").addAttribute("attr2", "attr2-value").build()); builder.addElement("another-element", "another-element-text"); final String elementString = builder.build().toXML(null).toString(); StandardExtensionElement parsedElement = StandardExtensionElementProvider.INSTANCE.parse(getParserFor(elementString)); assertEquals("foo", parsedElement.getElementName()); assertEquals("ns1", parsedElement.getNamespace()); assertEquals("attr1-value", parsedElement.getAttributeValue("attr1")); StandardExtensionElement barNs2Element = parsedElement.getFirstElement("bar", "ns2"); assertEquals("bar", barNs2Element.getElementName()); assertEquals("ns2", barNs2Element.getNamespace()); assertEquals("attr2-value", barNs2Element.getAttributeValue("attr2")); assertEquals("another-element-text", parsedElement.getFirstElement("another-element").getText()); String parsedElementString = parsedElement.toXML(null).toString(); assertEquals(elementString, parsedElementString); }
@Test public void buildWithAttrNamespacesAndParse() throws Exception { StandardExtensionElement.Builder builder = StandardExtensionElement.builder("foo", "ns1-value"); builder.addAttribute("xmlns:ns2", "ns2-value"); builder.addAttribute("ns2:bar", "bar-ns2-value"); final String elementString = builder.build().toXML(null).toString(); StandardExtensionElement parsedElement = StandardExtensionElementProvider.INSTANCE.parse(getParserFor(elementString)); assertEquals("foo", parsedElement.getElementName()); assertEquals("ns1-value", parsedElement.getNamespace()); String barNs2Value = parsedElement.getAttributeValue("ns2:bar"); assertEquals("bar-ns2-value", barNs2Value); String ns2Value = parsedElement.getAttributeValue("xmlns:ns2"); assertEquals("ns2-value", ns2Value); } }
@Override public XmlStringBuilder toXML(String enclosingNamespace) { if (xmlCache != null) { return xmlCache; } XmlStringBuilder xml = new XmlStringBuilder(this, enclosingNamespace); for (Map.Entry<String, String> entry : attributes.entrySet()) { xml.attribute(entry.getKey(), entry.getValue()); } xml.rightAngleBracket(); xml.optEscape(text); if (elements != null) { for (Map.Entry<String, StandardExtensionElement> entry : elements.entrySet()) { xml.append(entry.getValue().toXML(getNamespace())); } } xml.closeElement(this); xmlCache = xml; return xml; }
public Builder addElement(StandardExtensionElement element) { Objects.requireNonNull(element, "Element must not be null"); if (elements == null) { elements = new MultiMap<>(); } String key = XmppStringUtils.generateKey(element.getElementName(), element.getNamespace()); elements.put(key, element); return this; }