2 * Copyright (c) 2013 Cisco Systems, Inc. and others. All rights reserved.
\r
4 * This program and the accompanying materials are made available under the
\r
5 * terms of the Eclipse Public License v1.0 which accompanies this distribution,
\r
6 * and is available at http://www.eclipse.org/legal/epl-v10.html
\r
8 package org.opendaylight.controller.netconf.util.xml;
\r
10 import com.siemens.ct.exi.CodingMode;
\r
11 import com.siemens.ct.exi.FidelityOptions;
\r
12 import com.siemens.ct.exi.GrammarFactory;
\r
13 import com.siemens.ct.exi.exceptions.EXIException;
\r
14 import com.siemens.ct.exi.grammars.Grammars;
\r
16 public class ExiParameters {
\r
18 private static final String EXI_PARAMETER_ALIGNMENT = "alignment";
\r
19 private static final String EXI_PARAMETER_BYTE_ALIGNED = "byte-aligned";
\r
20 private static final String EXI_PARAMETER_COMPRESSED = "compressed";
\r
22 private static final String EXI_PARAMETER_FIDELITY = "fidelity";
\r
23 private static final String EXI_FIDELITY_DTD = "dtd";
\r
24 private static final String EXI_FIDELITY_LEXICAL_VALUES = "lexical-values";
\r
25 private static final String EXI_FIDELITY_COMMENTS = "comments";
\r
26 private static final String EXI_FIDELITY_PIS = "pis";
\r
27 private static final String EXI_FIDELITY_PREFIXES = "prefixes";
\r
29 private static final String EXI_PARAMETER_SCHEMA = "schema";
\r
30 private static final String EXI_PARAMETER_SCHEMA_NONE = "none";
\r
31 private static final String EXI_PARAMETER_SCHEMA_BUILT_IN = "builtin";
\r
32 private static final String EXI_PARAMETER_SCHEMA_BASE_1_1 = "base:1.1";
\r
34 private static final String NETCONF_XSD_LOCATION = "";
\r
36 private FidelityOptions fidelityOptions;
\r
37 private Grammars grammars;
\r
38 private CodingMode codingMode = CodingMode.BIT_PACKED;
\r
40 public void setParametersFromXmlElement(XmlElement operationElement)
\r
41 throws EXIException {
\r
43 if (operationElement.getElementsByTagName(EXI_PARAMETER_ALIGNMENT)
\r
46 if (operationElement.getElementsByTagName(
\r
47 EXI_PARAMETER_BYTE_ALIGNED)
\r
49 this.codingMode = CodingMode.BYTE_PACKED;
\r
52 if (operationElement.getElementsByTagName(
\r
53 EXI_PARAMETER_BYTE_ALIGNED).getLength() > 0) {
\r
54 this.codingMode = CodingMode.BYTE_PACKED;
\r
56 if (operationElement.getElementsByTagName(EXI_PARAMETER_COMPRESSED)
\r
58 this.codingMode = CodingMode.COMPRESSION;
\r
62 if (operationElement.getElementsByTagName(EXI_PARAMETER_FIDELITY)
\r
65 this.fidelityOptions = FidelityOptions.createDefault();
\r
67 if (operationElement.getElementsByTagName(EXI_FIDELITY_DTD)
\r
69 this.fidelityOptions.setFidelity(FidelityOptions.FEATURE_DTD,
\r
72 if (operationElement.getElementsByTagName(
\r
73 EXI_FIDELITY_LEXICAL_VALUES)
\r
75 this.fidelityOptions.setFidelity(
\r
76 FidelityOptions.FEATURE_LEXICAL_VALUE, true);
\r
79 if (operationElement.getElementsByTagName(EXI_FIDELITY_COMMENTS)
\r
81 this.fidelityOptions.setFidelity(
\r
82 FidelityOptions.FEATURE_COMMENT, true);
\r
85 if (operationElement.getElementsByTagName(EXI_FIDELITY_PIS)
\r
87 this.fidelityOptions.setFidelity(FidelityOptions.FEATURE_PI,
\r
91 if (operationElement.getElementsByTagName(EXI_FIDELITY_PREFIXES)
\r
93 this.fidelityOptions.setFidelity(
\r
94 FidelityOptions.FEATURE_PREFIX, true);
\r
99 if (operationElement.getElementsByTagName(EXI_PARAMETER_SCHEMA)
\r
100 .getLength() > 0) {
\r
102 GrammarFactory grammarFactory = GrammarFactory.newInstance();
\r
103 if (operationElement
\r
104 .getElementsByTagName(EXI_PARAMETER_SCHEMA_NONE)
\r
105 .getLength() > 0) {
\r
106 this.grammars = grammarFactory.createSchemaLessGrammars();
\r
109 if (operationElement.getElementsByTagName(
\r
110 EXI_PARAMETER_SCHEMA_BUILT_IN).getLength() > 0) {
\r
111 this.grammars = grammarFactory.createXSDTypesOnlyGrammars();
\r
114 if (operationElement.getElementsByTagName(
\r
115 EXI_PARAMETER_SCHEMA_BASE_1_1).getLength() > 0) {
\r
116 this.grammars = grammarFactory
\r
117 .createGrammars(NETCONF_XSD_LOCATION);
\r
123 public FidelityOptions getFidelityOptions() {
\r
124 return fidelityOptions;
\r
127 public Grammars getGrammars() {
\r
131 public CodingMode getCodingMode() {
\r