X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=opendaylight%2Fnetconf%2Fnetconf-netty-util%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fnetconf%2Fnettyutil%2Fhandler%2Fexi%2FEXIParameters.java;h=cb07635a1abb958b233c8a474b8d3bb453258241;hb=refs%2Fchanges%2F13%2F23413%2F26;hp=84353a4646d4500a4fa612d23ad71545e0f70bd4;hpb=ec82a960337ba51c2e896863a668dcf8fbcfcb6b;p=controller.git diff --git a/opendaylight/netconf/netconf-netty-util/src/main/java/org/opendaylight/controller/netconf/nettyutil/handler/exi/EXIParameters.java b/opendaylight/netconf/netconf-netty-util/src/main/java/org/opendaylight/controller/netconf/nettyutil/handler/exi/EXIParameters.java index 84353a4646..cb07635a1a 100644 --- a/opendaylight/netconf/netconf-netty-util/src/main/java/org/opendaylight/controller/netconf/nettyutil/handler/exi/EXIParameters.java +++ b/opendaylight/netconf/netconf-netty-util/src/main/java/org/opendaylight/controller/netconf/nettyutil/handler/exi/EXIParameters.java @@ -7,20 +7,20 @@ */ package org.opendaylight.controller.netconf.nettyutil.handler.exi; -import org.opendaylight.controller.netconf.api.NetconfMessage; -import org.opendaylight.controller.netconf.util.xml.XmlElement; +import com.google.common.base.Preconditions; +import org.opendaylight.controller.config.util.xml.XmlElement; import org.openexi.proc.common.AlignmentType; import org.openexi.proc.common.EXIOptions; import org.openexi.proc.common.EXIOptionsException; - -import com.google.common.base.Preconditions; +import org.w3c.dom.Element; +import org.w3c.dom.NodeList; public final class EXIParameters { private static final String EXI_PARAMETER_ALIGNMENT = "alignment"; - private static final String EXI_PARAMETER_BYTE_ALIGNED = "byte-aligned"; - private static final String EXI_PARAMETER_BIT_PACKED = "bit-packed"; - private static final String EXI_PARAMETER_COMPRESSED = "compressed"; - private static final String EXI_PARAMETER_PRE_COMPRESSION = "pre-compression"; + static final String EXI_PARAMETER_BYTE_ALIGNED = "byte-aligned"; + static final String EXI_PARAMETER_BIT_PACKED = "bit-packed"; + static final String EXI_PARAMETER_COMPRESSED = "compressed"; + static final String EXI_PARAMETER_PRE_COMPRESSION = "pre-compression"; private static final String EXI_PARAMETER_FIDELITY = "fidelity"; private static final String EXI_FIDELITY_DTD = "dtd"; @@ -29,34 +29,36 @@ public final class EXIParameters { private static final String EXI_FIDELITY_PIS = "pis"; private static final String EXI_FIDELITY_PREFIXES = "prefixes"; - private static final String EXI_PARAMETER_SCHEMA = "schema"; - private static final String EXI_PARAMETER_SCHEMA_NONE = "none"; - private static final String EXI_PARAMETER_SCHEMA_BUILT_IN = "builtin"; - private static final String EXI_PARAMETER_SCHEMA_BASE_1_1 = "base:1.1"; - private final EXIOptions options; private EXIParameters(final EXIOptions options) { this.options = Preconditions.checkNotNull(options); } - public static EXIParameters fromNetconfMessage(final NetconfMessage root) throws EXIOptionsException { - return fromXmlElement(XmlElement.fromDomDocument(root.getDocument())); - } public static EXIParameters fromXmlElement(final XmlElement root) throws EXIOptionsException { final EXIOptions options = new EXIOptions(); options.setAlignmentType(AlignmentType.bitPacked); - if (root.getElementsByTagName(EXI_PARAMETER_ALIGNMENT).getLength() > 0) { - if (root.getElementsByTagName(EXI_PARAMETER_BIT_PACKED).getLength() > 0) { + + final NodeList alignmentElements = root.getElementsByTagName(EXI_PARAMETER_ALIGNMENT); + if (alignmentElements.getLength() > 0) { + final Element alignmentElement = (Element) alignmentElements.item(0); + final String alignmentTextContent = alignmentElement.getTextContent().trim(); + + switch (alignmentTextContent) { + case EXI_PARAMETER_BIT_PACKED: options.setAlignmentType(AlignmentType.bitPacked); - } else if (root.getElementsByTagName(EXI_PARAMETER_BYTE_ALIGNED).getLength() > 0) { + break; + case EXI_PARAMETER_BYTE_ALIGNED: options.setAlignmentType(AlignmentType.byteAligned); - } else if (root.getElementsByTagName(EXI_PARAMETER_COMPRESSED).getLength() > 0) { + break; + case EXI_PARAMETER_COMPRESSED: options.setAlignmentType(AlignmentType.compress); - } else if (root.getElementsByTagName(EXI_PARAMETER_PRE_COMPRESSION).getLength() > 0) { + break; + case EXI_PARAMETER_PRE_COMPRESSION: options.setAlignmentType(AlignmentType.preCompress); + break; } } @@ -77,30 +79,6 @@ public final class EXIParameters { options.setPreserveNS(true); } } - - if (root.getElementsByTagName(EXI_PARAMETER_SCHEMA).getLength() > 0) { -/* - GrammarFactory grammarFactory = GrammarFactory.newInstance(); - if (operationElement - .getElementsByTagName(EXI_PARAMETER_SCHEMA_NONE) - .getLength() > 0) { - this.grammars = grammarFactory.createSchemaLessGrammars(); - } - - if (operationElement.getElementsByTagName( - EXI_PARAMETER_SCHEMA_BUILT_IN).getLength() > 0) { - this.grammars = grammarFactory.createXSDTypesOnlyGrammars(); - } - - if (operationElement.getElementsByTagName( - EXI_PARAMETER_SCHEMA_BASE_1_1).getLength() > 0) { - this.grammars = grammarFactory - .createGrammars(NETCONF_XSD_LOCATION); - } -*/ - - } - return new EXIParameters(options); }