X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=controller.git;a=blobdiff_plain;f=opendaylight%2Fnetconf%2Fnetconf-netty-util%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fnetconf%2Fnettyutil%2Fhandler%2Fexi%2FNetconfStartExiMessage.java;h=4cc0461f9ebe478d3063e0e397f7da34b3316a4d;hp=1b0a34d7e0fa7d0b6ab32c6c3600de52a5f1543f;hb=23fe9ca678ada6263fec5dd996f4025e4a32fcf5;hpb=c7ec8db7f107b5e265f4e8b2fe3dd0f7b1163b64 diff --git a/opendaylight/netconf/netconf-netty-util/src/main/java/org/opendaylight/controller/netconf/nettyutil/handler/exi/NetconfStartExiMessage.java b/opendaylight/netconf/netconf-netty-util/src/main/java/org/opendaylight/controller/netconf/nettyutil/handler/exi/NetconfStartExiMessage.java index 1b0a34d7e0..4cc0461f9e 100644 --- a/opendaylight/netconf/netconf-netty-util/src/main/java/org/opendaylight/controller/netconf/nettyutil/handler/exi/NetconfStartExiMessage.java +++ b/opendaylight/netconf/netconf-netty-util/src/main/java/org/opendaylight/controller/netconf/nettyutil/handler/exi/NetconfStartExiMessage.java @@ -8,17 +8,15 @@ package org.opendaylight.controller.netconf.nettyutil.handler.exi; +import com.google.common.collect.Lists; import java.util.List; - +import org.opendaylight.controller.config.util.xml.XmlUtil; import org.opendaylight.controller.netconf.api.NetconfMessage; import org.opendaylight.controller.netconf.api.xml.XmlNetconfConstants; -import org.opendaylight.controller.netconf.util.xml.XmlUtil; import org.openexi.proc.common.EXIOptions; import org.w3c.dom.Document; import org.w3c.dom.Element; -import com.google.common.collect.Lists; - /** * Start-exi netconf message. */ @@ -33,22 +31,22 @@ public final class NetconfStartExiMessage extends NetconfMessage { public static final String PIS_KEY = "pis"; public static final String PREFIXES_KEY = "prefixes"; - private NetconfStartExiMessage(Document doc) { + private NetconfStartExiMessage(final Document doc) { super(doc); } - public static NetconfStartExiMessage create(EXIOptions exiOptions, String messageId) { - Document doc = XmlUtil.newDocument(); - Element rpcElement = doc.createElementNS(XmlNetconfConstants.URN_IETF_PARAMS_XML_NS_NETCONF_BASE_1_0, + public static NetconfStartExiMessage create(final EXIOptions exiOptions, final String messageId) { + final Document doc = XmlUtil.newDocument(); + final Element rpcElement = doc.createElementNS(XmlNetconfConstants.URN_IETF_PARAMS_XML_NS_NETCONF_BASE_1_0, XmlNetconfConstants.RPC_KEY); rpcElement.setAttributeNS(XmlNetconfConstants.URN_IETF_PARAMS_XML_NS_NETCONF_BASE_1_0, XmlNetconfConstants.MESSAGE_ID, messageId); // TODO draft http://tools.ietf.org/html/draft-varga-netconf-exi-capability-02#section-3.5.1 has no namespace for start-exi element in xml - Element startExiElement = doc.createElementNS(XmlNetconfConstants.URN_IETF_PARAMS_XML_NS_NETCONF_EXI_1_0, + final Element startExiElement = doc.createElementNS(XmlNetconfConstants.URN_IETF_PARAMS_XML_NS_NETCONF_EXI_1_0, START_EXI); - addAlignemnt(exiOptions, doc, startExiElement); + addAlignment(exiOptions, doc, startExiElement); addFidelity(exiOptions, doc, startExiElement); rpcElement.appendChild(startExiElement); @@ -57,8 +55,8 @@ public final class NetconfStartExiMessage extends NetconfMessage { return new NetconfStartExiMessage(doc); } - private static void addFidelity(EXIOptions exiOptions, Document doc, Element startExiElement) { - List fidelityElements = Lists.newArrayList(); + private static void addFidelity(final EXIOptions exiOptions, final Document doc, final Element startExiElement) { + final List fidelityElements = Lists.newArrayList(); createFidelityElement(doc, fidelityElements, exiOptions.getPreserveComments(), COMMENTS_KEY); createFidelityElement(doc, fidelityElements, exiOptions.getPreserveDTD(), DTD_KEY); createFidelityElement(doc, fidelityElements, exiOptions.getPreserveLexicalValues(), LEXICAL_VALUES_KEY); @@ -66,23 +64,44 @@ public final class NetconfStartExiMessage extends NetconfMessage { createFidelityElement(doc, fidelityElements, exiOptions.getPreserveNS(), PREFIXES_KEY); if (fidelityElements.isEmpty() == false) { - Element fidelityElement = doc.createElementNS( + final Element fidelityElement = doc.createElementNS( XmlNetconfConstants.URN_IETF_PARAMS_XML_NS_NETCONF_EXI_1_0, FIDELITY_KEY); - for (Element element : fidelityElements) { + for (final Element element : fidelityElements) { fidelityElement.appendChild(element); } startExiElement.appendChild(fidelityElement); } } - private static void addAlignemnt(EXIOptions exiOptions, Document doc, Element startExiElement) { - Element alignmentElement = doc.createElementNS(XmlNetconfConstants.URN_IETF_PARAMS_XML_NS_NETCONF_EXI_1_0, + private static void addAlignment(final EXIOptions exiOptions, final Document doc, final Element startExiElement) { + final Element alignmentElement = doc.createElementNS(XmlNetconfConstants.URN_IETF_PARAMS_XML_NS_NETCONF_EXI_1_0, ALIGNMENT_KEY); - alignmentElement.setTextContent(exiOptions.getAlignmentType().toString()); + + String alignmentString = EXIParameters.EXI_PARAMETER_BIT_PACKED; + switch (exiOptions.getAlignmentType()) { + case byteAligned: { + alignmentString = EXIParameters.EXI_PARAMETER_BYTE_ALIGNED; + break; + } + case bitPacked: { + alignmentString = EXIParameters.EXI_PARAMETER_BIT_PACKED; + break; + } + case compress: { + alignmentString = EXIParameters.EXI_PARAMETER_COMPRESSED; + break; + } + case preCompress: { + alignmentString = EXIParameters.EXI_PARAMETER_PRE_COMPRESSION; + break; + } + } + + alignmentElement.setTextContent(alignmentString); startExiElement.appendChild(alignmentElement); } - private static void createFidelityElement(Document doc, List fidelityElements, boolean fidelity, String fidelityName) { + private static void createFidelityElement(final Document doc, final List fidelityElements, final boolean fidelity, final String fidelityName) { if (fidelity) { fidelityElements.add(doc.createElementNS(XmlNetconfConstants.URN_IETF_PARAMS_XML_NS_NETCONF_EXI_1_0,