-/*\r
- * Copyright (c) 2013 Cisco Systems, Inc. and others. All rights reserved.\r
- *\r
- * This program and the accompanying materials are made available under the\r
- * terms of the Eclipse Public License v1.0 which accompanies this distribution,\r
- * and is available at http://www.eclipse.org/legal/epl-v10.html\r
- */\r
-package org.opendaylight.controller.netconf.util.xml;\r
-\r
-import com.siemens.ct.exi.CodingMode;\r
-import com.siemens.ct.exi.FidelityOptions;\r
-import com.siemens.ct.exi.GrammarFactory;\r
-import com.siemens.ct.exi.exceptions.EXIException;\r
-import com.siemens.ct.exi.grammars.Grammars;\r
-\r
-public class ExiParameters {\r
-\r
- private static final String EXI_PARAMETER_ALIGNMENT = "alignment";\r
- private static final String EXI_PARAMETER_BYTE_ALIGNED = "byte-aligned";\r
- private static final String EXI_PARAMETER_COMPRESSED = "compressed";\r
-\r
- private static final String EXI_PARAMETER_FIDELITY = "fidelity";\r
- private static final String EXI_FIDELITY_DTD = "dtd";\r
- private static final String EXI_FIDELITY_LEXICAL_VALUES = "lexical-values";\r
- private static final String EXI_FIDELITY_COMMENTS = "comments";\r
- private static final String EXI_FIDELITY_PIS = "pis";\r
- private static final String EXI_FIDELITY_PREFIXES = "prefixes";\r
-\r
- private static final String EXI_PARAMETER_SCHEMA = "schema";\r
- private static final String EXI_PARAMETER_SCHEMA_NONE = "none";\r
- private static final String EXI_PARAMETER_SCHEMA_BUILT_IN = "builtin";\r
- private static final String EXI_PARAMETER_SCHEMA_BASE_1_1 = "base:1.1";\r
-\r
- private static final String NETCONF_XSD_LOCATION = "";\r
-\r
- private FidelityOptions fidelityOptions;\r
- private Grammars grammars;\r
- private CodingMode codingMode = CodingMode.BIT_PACKED;\r
-\r
- public void setParametersFromXmlElement(XmlElement operationElement)\r
- throws EXIException {\r
-\r
- if (operationElement.getElementsByTagName(EXI_PARAMETER_ALIGNMENT)\r
- .getLength() > 0) {\r
-\r
- if (operationElement.getElementsByTagName(\r
- EXI_PARAMETER_BYTE_ALIGNED)\r
- .getLength() > 0) {\r
- this.codingMode = CodingMode.BYTE_PACKED;\r
- }\r
-\r
- if (operationElement.getElementsByTagName(\r
- EXI_PARAMETER_BYTE_ALIGNED).getLength() > 0) {\r
- this.codingMode = CodingMode.BYTE_PACKED;\r
- }\r
- if (operationElement.getElementsByTagName(EXI_PARAMETER_COMPRESSED)\r
- .getLength() > 0) {\r
- this.codingMode = CodingMode.COMPRESSION;\r
- }\r
- }\r
-\r
- if (operationElement.getElementsByTagName(EXI_PARAMETER_FIDELITY)\r
- .getLength() > 0) {\r
-\r
- this.fidelityOptions = FidelityOptions.createDefault();\r
-\r
- if (operationElement.getElementsByTagName(EXI_FIDELITY_DTD)\r
- .getLength() > 0) {\r
- this.fidelityOptions.setFidelity(FidelityOptions.FEATURE_DTD,\r
- true);\r
- }\r
- if (operationElement.getElementsByTagName(\r
- EXI_FIDELITY_LEXICAL_VALUES)\r
- .getLength() > 0) {\r
- this.fidelityOptions.setFidelity(\r
- FidelityOptions.FEATURE_LEXICAL_VALUE, true);\r
- }\r
-\r
- if (operationElement.getElementsByTagName(EXI_FIDELITY_COMMENTS)\r
- .getLength() > 0) {\r
- this.fidelityOptions.setFidelity(\r
- FidelityOptions.FEATURE_COMMENT, true);\r
- }\r
-\r
- if (operationElement.getElementsByTagName(EXI_FIDELITY_PIS)\r
- .getLength() > 0) {\r
- this.fidelityOptions.setFidelity(FidelityOptions.FEATURE_PI,\r
- true);\r
- }\r
-\r
- if (operationElement.getElementsByTagName(EXI_FIDELITY_PREFIXES)\r
- .getLength() > 0) {\r
- this.fidelityOptions.setFidelity(\r
- FidelityOptions.FEATURE_PREFIX, true);\r
- }\r
-\r
- }\r
-\r
- if (operationElement.getElementsByTagName(EXI_PARAMETER_SCHEMA)\r
- .getLength() > 0) {\r
-\r
- GrammarFactory grammarFactory = GrammarFactory.newInstance();\r
- if (operationElement\r
- .getElementsByTagName(EXI_PARAMETER_SCHEMA_NONE)\r
- .getLength() > 0) {\r
- this.grammars = grammarFactory.createSchemaLessGrammars();\r
- }\r
-\r
- if (operationElement.getElementsByTagName(\r
- EXI_PARAMETER_SCHEMA_BUILT_IN).getLength() > 0) {\r
- this.grammars = grammarFactory.createXSDTypesOnlyGrammars();\r
- }\r
-\r
- if (operationElement.getElementsByTagName(\r
- EXI_PARAMETER_SCHEMA_BASE_1_1).getLength() > 0) {\r
- this.grammars = grammarFactory\r
- .createGrammars(NETCONF_XSD_LOCATION);\r
- }\r
-\r
- }\r
- }\r
-\r
- public FidelityOptions getFidelityOptions() {\r
- return fidelityOptions;\r
- }\r
-\r
- public Grammars getGrammars() {\r
- return grammars;\r
- }\r
-\r
- public CodingMode getCodingMode() {\r
- return codingMode;\r
- }\r
-\r
-}\r