Search in sources :

Example 1 with AttributeWritingStrategy

use of org.opendaylight.controller.config.facade.xml.mapping.attributes.toxml.AttributeWritingStrategy in project controller by opendaylight.

the class InstanceConfig method toXml.

@SuppressWarnings("IllegalCatch")
public Element toXml(final ObjectName on, final String namespace, final Document document, final Element rootElement, final EnumResolver enumResolver) {
    Map<String, AttributeWritingStrategy> strats = new ObjectXmlWriter().prepareWriting(yangToAttrConfig, document);
    Map<String, Object> mappedConfig = getMappedConfiguration(on, enumResolver);
    Element parentElement;
    if (nullableDummyContainerName != null) {
        Element dummyElement = XmlUtil.createElement(document, nullableDummyContainerName, Optional.of(namespace));
        rootElement.appendChild(dummyElement);
        parentElement = dummyElement;
    } else {
        parentElement = rootElement;
    }
    for (Entry<String, ?> mappingEntry : mappedConfig.entrySet()) {
        try {
            strats.get(mappingEntry.getKey()).writeElement(parentElement, namespace, mappingEntry.getValue());
        } catch (final RuntimeException e) {
            throw new IllegalStateException("Unable to write value " + mappingEntry.getValue() + " for attribute " + mappingEntry.getValue(), e);
        }
    }
    return rootElement;
}
Also used : AttributeWritingStrategy(org.opendaylight.controller.config.facade.xml.mapping.attributes.toxml.AttributeWritingStrategy) AttributeConfigElement(org.opendaylight.controller.config.facade.xml.mapping.attributes.fromxml.AttributeConfigElement) Element(org.w3c.dom.Element) XmlElement(org.opendaylight.controller.config.util.xml.XmlElement) ObjectXmlWriter(org.opendaylight.controller.config.facade.xml.mapping.attributes.toxml.ObjectXmlWriter)

Aggregations

AttributeConfigElement (org.opendaylight.controller.config.facade.xml.mapping.attributes.fromxml.AttributeConfigElement)1 AttributeWritingStrategy (org.opendaylight.controller.config.facade.xml.mapping.attributes.toxml.AttributeWritingStrategy)1 ObjectXmlWriter (org.opendaylight.controller.config.facade.xml.mapping.attributes.toxml.ObjectXmlWriter)1 XmlElement (org.opendaylight.controller.config.util.xml.XmlElement)1 Element (org.w3c.dom.Element)1