X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=opendaylight%2Fconfig%2Fconfig-manager-facade-xml%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fconfig%2Ffacade%2Fxml%2Fmapping%2Fattributes%2Ftoxml%2FSimpleIdentityRefAttributeWritingStrategy.java;fp=opendaylight%2Fconfig%2Fconfig-manager-facade-xml%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fconfig%2Ffacade%2Fxml%2Fmapping%2Fattributes%2Ftoxml%2FSimpleIdentityRefAttributeWritingStrategy.java;h=44b1f3eb210f5012229512565b3655aafe369392;hb=23fe9ca678ada6263fec5dd996f4025e4a32fcf5;hp=0000000000000000000000000000000000000000;hpb=071a641d7c12c0e6112d5ce0afe806b54f116ed2;p=controller.git diff --git a/opendaylight/config/config-manager-facade-xml/src/main/java/org/opendaylight/controller/config/facade/xml/mapping/attributes/toxml/SimpleIdentityRefAttributeWritingStrategy.java b/opendaylight/config/config-manager-facade-xml/src/main/java/org/opendaylight/controller/config/facade/xml/mapping/attributes/toxml/SimpleIdentityRefAttributeWritingStrategy.java new file mode 100644 index 0000000000..44b1f3eb21 --- /dev/null +++ b/opendaylight/config/config-manager-facade-xml/src/main/java/org/opendaylight/controller/config/facade/xml/mapping/attributes/toxml/SimpleIdentityRefAttributeWritingStrategy.java @@ -0,0 +1,48 @@ +/* + * Copyright (c) 2015 Cisco Systems, Inc. and others. All rights reserved. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License v1.0 which accompanies this distribution, + * and is available at http://www.eclipse.org/legal/epl-v10.html + */ + +package org.opendaylight.controller.config.facade.xml.mapping.attributes.toxml; + +import com.google.common.base.Optional; +import com.google.common.base.Preconditions; +import java.util.Map; +import org.opendaylight.controller.config.facade.xml.util.Util; +import org.opendaylight.controller.config.util.xml.XmlUtil; +import org.opendaylight.yangtools.yang.common.QName; +import org.w3c.dom.Document; +import org.w3c.dom.Element; + +public class SimpleIdentityRefAttributeWritingStrategy extends SimpleAttributeWritingStrategy { + + private static final String PREFIX = "prefix"; + + /** + * @param document + * @param key + */ + public SimpleIdentityRefAttributeWritingStrategy(Document document, String key) { + super(document, key); + } + + protected Object preprocess(Object value) { + Util.checkType(value, Map.class); + Preconditions.checkArgument(((Map)value).size() == 1, "Unexpected number of values in %s, expected 1", value); + Object stringValue = ((Map) value).values().iterator().next(); + Util.checkType(stringValue, String.class); + + return stringValue; + } + + @Override + protected Element createElement(Document doc, String key, String value, Optional namespace) { + QName qName = QName.create(value); + String identityValue = qName.getLocalName(); + String identityNamespace = qName.getNamespace().toString(); + return XmlUtil.createTextElementWithNamespacedContent(doc, key, PREFIX, identityNamespace, identityValue, namespace); + } +}