X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=controller.git;a=blobdiff_plain;f=opendaylight%2Fnetconf%2Fnetconf-util%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fnetconf%2Futil%2Fmapping%2FAbstractNetconfOperation.java;h=707274ed4a1522235c2004c5adca7c4bf9d4e731;hp=79d1ddf79a55c78397433bd5131f21ff55b33d5b;hb=23fe9ca678ada6263fec5dd996f4025e4a32fcf5;hpb=1745f92957146128e8a4a111adb7ed830f737e0a diff --git a/opendaylight/netconf/netconf-util/src/main/java/org/opendaylight/controller/netconf/util/mapping/AbstractNetconfOperation.java b/opendaylight/netconf/netconf-util/src/main/java/org/opendaylight/controller/netconf/util/mapping/AbstractNetconfOperation.java index 79d1ddf79a..707274ed4a 100644 --- a/opendaylight/netconf/netconf-util/src/main/java/org/opendaylight/controller/netconf/util/mapping/AbstractNetconfOperation.java +++ b/opendaylight/netconf/netconf-util/src/main/java/org/opendaylight/controller/netconf/util/mapping/AbstractNetconfOperation.java @@ -8,26 +8,25 @@ package org.opendaylight.controller.netconf.util.mapping; +import com.google.common.base.Optional; import java.util.Map; - -import org.opendaylight.controller.netconf.api.NetconfDocumentedException; +import org.opendaylight.controller.config.util.xml.DocumentedException; +import org.opendaylight.controller.config.util.xml.XmlElement; +import org.opendaylight.controller.config.util.xml.XmlMappingConstants; +import org.opendaylight.controller.config.util.xml.XmlUtil; +import org.opendaylight.controller.netconf.api.xml.XmlNetconfConstants; import org.opendaylight.controller.netconf.mapping.api.HandlingPriority; import org.opendaylight.controller.netconf.mapping.api.NetconfOperation; import org.opendaylight.controller.netconf.mapping.api.NetconfOperationChainedExecution; -import org.opendaylight.controller.netconf.util.xml.XmlElement; -import org.opendaylight.controller.netconf.util.xml.XmlNetconfConstants; -import org.opendaylight.controller.netconf.util.xml.XmlUtil; import org.w3c.dom.Attr; import org.w3c.dom.Document; import org.w3c.dom.Element; import org.w3c.dom.NodeList; -import com.google.common.base.Optional; - public abstract class AbstractNetconfOperation implements NetconfOperation { private final String netconfSessionIdForReporting; - protected AbstractNetconfOperation(String netconfSessionIdForReporting) { + protected AbstractNetconfOperation(final String netconfSessionIdForReporting) { this.netconfSessionIdForReporting = netconfSessionIdForReporting; } @@ -36,18 +35,20 @@ public abstract class AbstractNetconfOperation implements NetconfOperation { } @Override - public HandlingPriority canHandle(Document message) { - OperationNameAndNamespace operationNameAndNamespace = new OperationNameAndNamespace(message); + public HandlingPriority canHandle(final Document message) throws DocumentedException { + OperationNameAndNamespace operationNameAndNamespace = null; + operationNameAndNamespace = new OperationNameAndNamespace(message); return canHandle(operationNameAndNamespace.getOperationName(), operationNameAndNamespace.getNamespace()); } - public static class OperationNameAndNamespace { + public static final class OperationNameAndNamespace { private final String operationName, namespace; + private final XmlElement operationElement; - public OperationNameAndNamespace(Document message) { - XmlElement requestElement = getRequestElementWithCheck(message); - - XmlElement operationElement = requestElement.getOnlyChildElement(); + public OperationNameAndNamespace(final Document message) throws DocumentedException { + XmlElement requestElement = null; + requestElement = getRequestElementWithCheck(message); + operationElement = requestElement.getOnlyChildElement(); operationName = operationElement.getName(); namespace = operationElement.getNamespace(); } @@ -59,14 +60,18 @@ public abstract class AbstractNetconfOperation implements NetconfOperation { public String getNamespace() { return namespace; } + + public XmlElement getOperationElement() { + return operationElement; + } } - protected static XmlElement getRequestElementWithCheck(Document message) { + protected static XmlElement getRequestElementWithCheck(final Document message) throws DocumentedException { return XmlElement.fromDomElementWithExpected(message.getDocumentElement(), XmlNetconfConstants.RPC_KEY, XmlNetconfConstants.URN_IETF_PARAMS_XML_NS_NETCONF_BASE_1_0); } - protected HandlingPriority canHandle(String operationName, String operationNamespace) { + protected HandlingPriority canHandle(final String operationName, final String operationNamespace) { return operationName.equals(getOperationName()) && operationNamespace.equals(getOperationNamespace()) ? getHandlingPriority() : HandlingPriority.CANNOT_HANDLE; @@ -83,8 +88,8 @@ public abstract class AbstractNetconfOperation implements NetconfOperation { protected abstract String getOperationName(); @Override - public Document handle(Document requestMessage, - NetconfOperationChainedExecution subsequentOperation) throws NetconfDocumentedException { + public Document handle(final Document requestMessage, + final NetconfOperationChainedExecution subsequentOperation) throws DocumentedException { XmlElement requestElement = getRequestElementWithCheck(requestMessage); @@ -94,7 +99,7 @@ public abstract class AbstractNetconfOperation implements NetconfOperation { Map attributes = requestElement.getAttributes(); Element response = handle(document, operationElement, subsequentOperation); - Element rpcReply = XmlUtil.createElement(document, XmlNetconfConstants.RPC_REPLY_KEY, Optional.of(XmlNetconfConstants.URN_IETF_PARAMS_XML_NS_NETCONF_BASE_1_0)); + Element rpcReply = XmlUtil.createElement(document, XmlMappingConstants.RPC_REPLY_KEY, Optional.of(XmlNetconfConstants.URN_IETF_PARAMS_XML_NS_NETCONF_BASE_1_0)); if(XmlElement.fromDomElement(response).hasNamespace()) { rpcReply.appendChild(response); @@ -107,15 +112,15 @@ public abstract class AbstractNetconfOperation implements NetconfOperation { rpcReply.appendChild(responseNS); } - for (String attrName : attributes.keySet()) { - rpcReply.setAttributeNode((Attr) document.importNode(attributes.get(attrName), true)); + for (Attr attribute : attributes.values()) { + rpcReply.setAttributeNode((Attr) document.importNode(attribute, true)); } document.appendChild(rpcReply); return document; } protected abstract Element handle(Document document, XmlElement message, NetconfOperationChainedExecution subsequentOperation) - throws NetconfDocumentedException; + throws DocumentedException; @Override public String toString() {