1 package org.opendaylight.controller.netconf.util.xml;
\r
3 import com.siemens.ct.exi.CodingMode;
\r
4 import com.siemens.ct.exi.FidelityOptions;
\r
5 import com.siemens.ct.exi.GrammarFactory;
\r
6 import com.siemens.ct.exi.exceptions.EXIException;
\r
7 import com.siemens.ct.exi.grammars.Grammars;
\r
9 public class ExiParameters {
\r
11 private static final String EXI_PARAMETER_ALIGNMENT = "alignment";
\r
12 private static final String EXI_PARAMETER_BYTE_ALIGNED = "byte-aligned";
\r
13 private static final String EXI_PARAMETER_COMPRESSED = "compressed";
\r
15 private static final String EXI_PARAMETER_FIDELITY = "fidelity";
\r
16 private static final String EXI_FIDELITY_DTD = "dtd";
\r
17 private static final String EXI_FIDELITY_LEXICAL_VALUES = "lexical-values";
\r
18 private static final String EXI_FIDELITY_COMMENTS = "comments";
\r
19 private static final String EXI_FIDELITY_PIS = "pis";
\r
20 private static final String EXI_FIDELITY_PREFIXES = "prefixes";
\r
22 private static final String EXI_PARAMETER_SCHEMA = "schema";
\r
23 private static final String EXI_PARAMETER_SCHEMA_NONE = "none";
\r
24 private static final String EXI_PARAMETER_SCHEMA_BUILT_IN = "builtin";
\r
25 private static final String EXI_PARAMETER_SCHEMA_BASE_1_1 = "base:1.1";
\r
27 private static final String NETCONF_XSD_LOCATION = "";
\r
29 private FidelityOptions fidelityOptions;
\r
30 private Grammars grammars;
\r
31 private CodingMode codingMode = CodingMode.BIT_PACKED;
\r
33 public void setParametersFromXmlElement(XmlElement operationElement)
\r
34 throws EXIException {
\r
36 if (operationElement.getElementsByTagName(EXI_PARAMETER_ALIGNMENT)
\r
39 if (operationElement.getElementsByTagName(
\r
40 EXI_PARAMETER_BYTE_ALIGNED)
\r
42 this.codingMode = CodingMode.BYTE_PACKED;
\r
45 if (operationElement.getElementsByTagName(
\r
46 EXI_PARAMETER_BYTE_ALIGNED).getLength() > 0) {
\r
47 this.codingMode = CodingMode.BYTE_PACKED;
\r
49 if (operationElement.getElementsByTagName(EXI_PARAMETER_COMPRESSED)
\r
51 this.codingMode = CodingMode.COMPRESSION;
\r
55 if (operationElement.getElementsByTagName(EXI_PARAMETER_FIDELITY)
\r
58 this.fidelityOptions = FidelityOptions.createDefault();
\r
60 if (operationElement.getElementsByTagName(EXI_FIDELITY_DTD)
\r
62 this.fidelityOptions.setFidelity(FidelityOptions.FEATURE_DTD,
\r
65 if (operationElement.getElementsByTagName(
\r
66 EXI_FIDELITY_LEXICAL_VALUES)
\r
68 this.fidelityOptions.setFidelity(
\r
69 FidelityOptions.FEATURE_LEXICAL_VALUE, true);
\r
72 if (operationElement.getElementsByTagName(EXI_FIDELITY_COMMENTS)
\r
74 this.fidelityOptions.setFidelity(
\r
75 FidelityOptions.FEATURE_COMMENT, true);
\r
78 if (operationElement.getElementsByTagName(EXI_FIDELITY_PIS)
\r
80 this.fidelityOptions.setFidelity(FidelityOptions.FEATURE_PI,
\r
84 if (operationElement.getElementsByTagName(EXI_FIDELITY_PREFIXES)
\r
86 this.fidelityOptions.setFidelity(
\r
87 FidelityOptions.FEATURE_PREFIX, true);
\r
92 if (operationElement.getElementsByTagName(EXI_PARAMETER_SCHEMA)
\r
95 GrammarFactory grammarFactory = GrammarFactory.newInstance();
\r
96 if (operationElement
\r
97 .getElementsByTagName(EXI_PARAMETER_SCHEMA_NONE)
\r
99 this.grammars = grammarFactory.createSchemaLessGrammars();
\r
102 if (operationElement.getElementsByTagName(
\r
103 EXI_PARAMETER_SCHEMA_BUILT_IN).getLength() > 0) {
\r
104 this.grammars = grammarFactory.createXSDTypesOnlyGrammars();
\r
107 if (operationElement.getElementsByTagName(
\r
108 EXI_PARAMETER_SCHEMA_BASE_1_1).getLength() > 0) {
\r
109 this.grammars = grammarFactory
\r
110 .createGrammars(NETCONF_XSD_LOCATION);
\r
116 public FidelityOptions getFidelityOptions() {
\r
117 return fidelityOptions;
\r
120 public Grammars getGrammars() {
\r
124 public CodingMode getCodingMode() {
\r