Add XMLNamespace 64/95064/7
authorRobert Varga <robert.varga@pantheon.tech>
Sun, 7 Feb 2021 17:56:28 +0000 (18:56 +0100)
committerRobert Varga <robert.varga@pantheon.tech>
Sun, 7 Feb 2021 20:45:40 +0000 (21:45 +0100)
java.net.URI is a rather bad fit our purposes. We really need a
simplistic String container, without the need to have it parsed out
into a complex structure.

Introduce XMLNamespace and mass-migrate all users of URI.

JIRA: YANGTOOLS-1141
Change-Id: I87d9fa85f078aa0fa0d29d1e1b118094d51cfc5e
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
141 files changed:
attic/yang-data-jaxen/src/test/java/org/opendaylight/yangtools/yang/data/jaxen/BitIsSetXPathFunctionTest.java
attic/yang-data-jaxen/src/test/java/org/opendaylight/yangtools/yang/data/jaxen/DerefXPathFunctionTest.java
attic/yang-data-jaxen/src/test/java/org/opendaylight/yangtools/yang/data/jaxen/DerivedFromXPathFunctionTest.java
attic/yang-data-jaxen/src/test/java/org/opendaylight/yangtools/yang/data/jaxen/EnumValueXPathFunctionTest.java
attic/yang-data-jaxen/src/test/java/org/opendaylight/yangtools/yang/data/jaxen/JaxenTest.java
yang/odlext-model-api/src/main/java/org/opendaylight/yangtools/odlext/model/api/OpenDaylightExtensionsConstants.java
yang/odlext-parser-support/src/test/java/org/opendaylight/yangtools/odlext/parser/Bug3874ExtensionTest.java
yang/openconfig-model-api/src/main/java/org/opendaylight/yangtools/openconfig/model/api/OpenConfigConstants.java
yang/rfc6241-model-api/src/main/java/org/opendaylight/yangtools/rfc6241/model/api/NetconfConstants.java
yang/rfc6536-model-api/src/main/java/org/opendaylight/yangtools/rfc6536/model/api/NACMConstants.java
yang/rfc6643-model-api/src/main/java/org/opendaylight/yangtools/rfc6643/model/api/IetfYangSmiv2Constants.java
yang/rfc7952-model-api/src/main/java/org/opendaylight/yangtools/rfc7952/model/api/MetadataConstants.java
yang/rfc8040-model-api/src/main/java/org/opendaylight/yangtools/rfc8040/model/api/YangDataConstants.java
yang/rfc8040-parser-support/src/test/java/org/opendaylight/yangtools/rfc8040/parser/YangDataExtensionTest.java
yang/rfc8528-data-api/src/main/java/org/opendaylight/yangtools/rfc8528/data/api/YangLibraryConstants.java
yang/rfc8528-model-api/src/main/java/org/opendaylight/yangtools/rfc8528/model/api/SchemaMountConstants.java
yang/rfc8528-parser-support/src/test/java/org/opendaylight/yangtools/rfc8528/parser/MountPointTest.java
yang/yang-common/src/main/java/org/opendaylight/yangtools/yang/common/QName.java
yang/yang-common/src/main/java/org/opendaylight/yangtools/yang/common/QNameModule.java
yang/yang-common/src/main/java/org/opendaylight/yangtools/yang/common/XMLNamespace.java [new file with mode: 0644]
yang/yang-common/src/main/java/org/opendaylight/yangtools/yang/common/XNv1.java [new file with mode: 0644]
yang/yang-common/src/main/java/org/opendaylight/yangtools/yang/common/YangConstants.java
yang/yang-common/src/test/java/org/opendaylight/yangtools/yang/common/BiMapYangNamespaceContextTest.java
yang/yang-common/src/test/java/org/opendaylight/yangtools/yang/common/QNameTest.java
yang/yang-common/src/test/java/org/opendaylight/yangtools/yang/common/YangConstantsTest.java
yang/yang-data-api/src/main/java/org/opendaylight/yangtools/yang/data/api/DatastoreIdentifier.java
yang/yang-data-api/src/test/java/org/opendaylight/yangtools/yang/data/api/PathArgumentListTest.java
yang/yang-data-api/src/test/java/org/opendaylight/yangtools/yang/data/api/schema/stream/NormalizedNodeWriterTest.java
yang/yang-data-codec-binfmt/src/main/java/org/opendaylight/yangtools/yang/data/codec/binfmt/QNameFactory.java
yang/yang-data-codec-gson/src/main/java/org/opendaylight/yangtools/yang/data/codec/gson/JSONInstanceIdentifierCodec.java
yang/yang-data-codec-gson/src/main/java/org/opendaylight/yangtools/yang/data/codec/gson/JSONNormalizedNodeStreamWriter.java
yang/yang-data-codec-gson/src/main/java/org/opendaylight/yangtools/yang/data/codec/gson/JSONStreamWriterContext.java
yang/yang-data-codec-gson/src/main/java/org/opendaylight/yangtools/yang/data/codec/gson/JSONStreamWriterExclusiveRootContext.java
yang/yang-data-codec-gson/src/main/java/org/opendaylight/yangtools/yang/data/codec/gson/JSONStreamWriterQNameContext.java
yang/yang-data-codec-gson/src/main/java/org/opendaylight/yangtools/yang/data/codec/gson/JSONStreamWriterRootContext.java
yang/yang-data-codec-gson/src/main/java/org/opendaylight/yangtools/yang/data/codec/gson/JSONStreamWriterSharedRootContext.java
yang/yang-data-codec-gson/src/main/java/org/opendaylight/yangtools/yang/data/codec/gson/JSONStreamWriterURIContext.java
yang/yang-data-codec-gson/src/main/java/org/opendaylight/yangtools/yang/data/codec/gson/JsonParserStream.java
yang/yang-data-codec-gson/src/test/java/org/opendaylight/yangtools/yang/data/codec/gson/Bug5446Test.java
yang/yang-data-codec-gson/src/test/java/org/opendaylight/yangtools/yang/data/codec/gson/Bug7246Test.java
yang/yang-data-codec-gson/src/test/java/org/opendaylight/yangtools/yang/data/codec/gson/Bug8083Test.java
yang/yang-data-codec-gson/src/test/java/org/opendaylight/yangtools/yang/data/codec/gson/TestingNormalizedNodeStructuresCreator.java
yang/yang-data-codec-xml/src/main/java/org/opendaylight/yangtools/yang/data/codec/xml/IdentityrefXmlCodec.java
yang/yang-data-codec-xml/src/main/java/org/opendaylight/yangtools/yang/data/codec/xml/RandomPrefix.java
yang/yang-data-codec-xml/src/main/java/org/opendaylight/yangtools/yang/data/codec/xml/RandomPrefixInstanceIdentifierSerializer.java
yang/yang-data-codec-xml/src/main/java/org/opendaylight/yangtools/yang/data/codec/xml/SchemaAwareXMLStreamWriterUtils.java
yang/yang-data-codec-xml/src/main/java/org/opendaylight/yangtools/yang/data/codec/xml/StreamWriterFacade.java
yang/yang-data-codec-xml/src/main/java/org/opendaylight/yangtools/yang/data/codec/xml/XmlParserStream.java
yang/yang-data-codec-xml/src/main/java/org/opendaylight/yangtools/yang/data/codec/xml/XmlStringInstanceIdentifierCodec.java
yang/yang-data-codec-xml/src/test/java/org/opendaylight/yangtools/yang/data/codec/xml/Bug5396Test.java
yang/yang-data-codec-xml/src/test/java/org/opendaylight/yangtools/yang/data/codec/xml/Bug5446Test.java
yang/yang-data-codec-xml/src/test/java/org/opendaylight/yangtools/yang/data/codec/xml/Bug890Test.java
yang/yang-data-codec-xml/src/test/java/org/opendaylight/yangtools/yang/data/codec/xml/NormalizedNodeXmlTranslationTest.java
yang/yang-data-codec-xml/src/test/java/org/opendaylight/yangtools/yang/data/codec/xml/NormalizedNodesToXmlTest.java
yang/yang-data-codec-xml/src/test/java/org/opendaylight/yangtools/yang/data/codec/xml/RandomPrefixTest.java
yang/yang-data-codec-xml/src/test/java/org/opendaylight/yangtools/yang/data/codec/xml/SchemalessXMLStreamNormalizedNodeStreamWriterTest.java
yang/yang-data-codec-xml/src/test/java/org/opendaylight/yangtools/yang/data/codec/xml/XmlStreamUtilsTest.java
yang/yang-data-codec-xml/src/test/java/org/opendaylight/yangtools/yang/data/codec/xml/XmlToNormalizedNodesTest.java
yang/yang-data-codec-xml/src/test/java/org/opendaylight/yangtools/yang/data/codec/xml/YT1108Test.java
yang/yang-data-impl/src/test/java/org/opendaylight/yangtools/yang/data/impl/codec/StringPatternCheckingCodecTest.java
yang/yang-data-impl/src/test/java/org/opendaylight/yangtools/yang/data/impl/leafref/Bug7844Test.java
yang/yang-data-impl/src/test/java/org/opendaylight/yangtools/yang/data/impl/schema/ImmutableNormalizedNodeStreamWriterTest.java
yang/yang-data-impl/src/test/java/org/opendaylight/yangtools/yang/data/impl/schema/NormalizedDataBuilderTest.java
yang/yang-data-impl/src/test/java/org/opendaylight/yangtools/yang/data/impl/schema/tree/Bug4295Test.java
yang/yang-data-impl/src/test/java/org/opendaylight/yangtools/yang/data/impl/schema/tree/OrderedListTest.java
yang/yang-data-util/src/main/java/org/opendaylight/yangtools/yang/data/util/AbstractNamespaceCodec.java
yang/yang-data-util/src/main/java/org/opendaylight/yangtools/yang/data/util/ModuleStringIdentityrefCodec.java
yang/yang-data-util/src/main/java/org/opendaylight/yangtools/yang/data/util/ParserStreamUtils.java
yang/yang-data-util/src/test/java/org/opendaylight/yangtools/yang/data/util/codec/DataSchemaContextTreeTest.java
yang/yang-data-util/src/test/java/org/opendaylight/yangtools/yang/data/util/codec/IdentityCodecUtilTest.java
yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/QNameModuleAware.java
yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/SchemaContext.java
yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/NamespaceEffectiveStatement.java
yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/NamespaceStatement.java
yang/yang-model-util-ut/src/test/java/org/opendaylight/yangtools/yang/model/util/ut/SchemaContextUtilTest.java
yang/yang-model-util/src/main/java/org/opendaylight/yangtools/yang/model/util/AbstractSchemaContext.java
yang/yang-model-util/src/main/java/org/opendaylight/yangtools/yang/model/util/FilteringSchemaContextProxy.java
yang/yang-model-util/src/main/java/org/opendaylight/yangtools/yang/model/util/ModuleDependencySort.java
yang/yang-model-util/src/main/java/org/opendaylight/yangtools/yang/model/util/SimpleSchemaContext.java
yang/yang-model-util/src/test/java/org/opendaylight/yangtools/yang/model/util/ModuleDependencySortTest.java
yang/yang-model-util/src/test/java/org/opendaylight/yangtools/yang/model/util/SchemaContextProxyTest.java
yang/yang-model-util/src/test/java/org/opendaylight/yangtools/yang/model/util/SchemaContextUtilTest.java
yang/yang-model-util/src/test/java/org/opendaylight/yangtools/yang/model/util/SimpleSchemaContextTest.java
yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/parser/repo/SchemaContextFactoryDeviationsTest.java
yang/yang-parser-reactor/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/reactor/SourceSpecificContext.java
yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/repo/YinStatementStreamSource.java
yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/import_/ImportStatementSupport.java
yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/module/ModuleStatementSupport.java
yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/namespace/EmptyNamespaceEffectiveStatement.java
yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/namespace/EmptyNamespaceStatement.java
yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/namespace/NamespaceStatementSupport.java
yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/namespace/RegularNamespaceEffectiveStatement.java
yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/namespace/RegularNamespaceStatement.java
yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/stmt/AugmentProcessTest.java
yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/stmt/AugmentTest.java
yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/stmt/Bug1412Test.java
yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/stmt/Bug2872Test.java
yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/stmt/Bug4231Test.java
yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/stmt/Bug4456Test.java
yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/stmt/Bug4610Test.java
yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/stmt/Bug4623Test.java
yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/stmt/Bug7038Test.java
yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/stmt/Bug7480Test.java
yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/stmt/Bug8307Test.java
yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/stmt/CaseStmtTest.java
yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/stmt/EffectiveBuildTest.java
yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/stmt/EffectiveModuleTest.java
yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/stmt/EffectiveModulesAndSubmodulesTest.java
yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/stmt/EffectiveSchemaContextTest.java
yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/stmt/GroupingTest.java
yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/stmt/MoreRevisionsTest.java
yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/stmt/TypesResolutionTest.java
yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/stmt/UsesAugmentTest.java
yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/stmt/YT1195Test.java
yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/stmt/YT1208Test.java
yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/stmt/YT1209Test.java
yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/stmt/YT1212Test.java
yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/stmt/YT841Test.java
yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/stmt/YT971Test.java
yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/stmt/YangParserSimpleTest.java
yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/stmt/YangParserTest.java
yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/stmt/YangParserWithContextTest.java
yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/stmt/YangTypes2StmtTest.java
yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/stmt/openconfigver/OpenconfigVersionBorderCaseTest.java
yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/stmt/openconfigver/OpenconfigVersionComplexTest.java
yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/stmt/openconfigver/OpenconfigVersionDefaultsTest.java
yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/stmt/openconfigver/OpenconfigVersionIgnoringRevisionTest.java
yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/stmt/openconfigver/OpenconfigVersionImportTest.java
yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/stmt/openconfigver/OpenconfigVersionMultipleImportTest.java
yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/stmt/openconfigver/OpenconfigVersionPositionTest.java
yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/stmt/openconfigver/OpenconfigVersionTest.java
yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/stmt/openconfigver/yin/YinOpenconfigVersionTest.java
yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/stmt/yin/YinFileHeaderStmtsTest.java
yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/stmt/yin/YinFileIncludeStmtTest.java
yang/yang-parser-spi/src/main/java/org/opendaylight/yangtools/yang/parser/spi/source/ImpPrefixToNamespace.java
yang/yang-parser-spi/src/main/java/org/opendaylight/yangtools/yang/parser/spi/source/ModuleNameToNamespace.java
yang/yang-parser-spi/src/main/java/org/opendaylight/yangtools/yang/parser/spi/source/PrefixToModule.java
yang/yang-parser-spi/src/main/java/org/opendaylight/yangtools/yang/parser/spi/source/PrefixToModuleMap.java
yang/yang-parser-spi/src/main/java/org/opendaylight/yangtools/yang/parser/spi/source/QNameToStatementDefinition.java
yang/yang-parser-spi/src/main/java/org/opendaylight/yangtools/yang/parser/spi/source/QNameToStatementDefinitionMap.java
yang/yang-xpath-impl/src/test/java/org/opendaylight/yangtools/yang/xpath/impl/XPathParserTest.java

index d756c9bdc8a52b0c9a985ecbd6468504984ebbf5..8fd828442f680daebc3e3cba7ee7b7f5eab29e4b 100644 (file)
@@ -20,7 +20,6 @@ import com.google.common.collect.ImmutableList;
 import com.google.common.collect.ImmutableMap;
 import com.google.common.collect.ImmutableSet;
 import com.google.common.collect.Maps;
-import java.net.URI;
 import java.util.Set;
 import org.jaxen.Context;
 import org.jaxen.Function;
@@ -29,6 +28,7 @@ import org.junit.Test;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.common.QNameModule;
 import org.opendaylight.yangtools.yang.common.Revision;
+import org.opendaylight.yangtools.yang.common.XMLNamespace;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifierWithPredicates;
@@ -44,7 +44,8 @@ import org.opendaylight.yangtools.yang.test.util.YangParserTestUtils;
 public class BitIsSetXPathFunctionTest {
 
     private static final JaxenSchemaContextFactory SCHEMA_CONTEXT_FACTORY = new JaxenSchemaContextFactory();
-    private static final QNameModule FOO_MODULE = QNameModule.create(URI.create("foo-ns"), Revision.of("2017-04-03"));
+    private static final QNameModule FOO_MODULE =
+        QNameModule.create(XMLNamespace.of("foo-ns"), Revision.of("2017-04-03"));
     private static final QName MY_CONTAINER = QName.create(FOO_MODULE, "my-container");
     private static final QName MY_LIST = QName.create(FOO_MODULE, "my-list");
     private static final QName FLAGS = QName.create(FOO_MODULE, "flags");
index 43b867c6a437b2cc069b24ca51abb2ac269db7f7..a644b93c6b6849d6d9d4f3a9a15b358f316f72fd 100644 (file)
@@ -18,13 +18,13 @@ import com.google.common.collect.HashBiMap;
 import com.google.common.collect.ImmutableList;
 import com.google.common.collect.ImmutableMap;
 import com.google.common.collect.Maps;
-import java.net.URI;
 import java.util.Map;
 import org.jaxen.Function;
 import org.junit.Test;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.common.QNameModule;
 import org.opendaylight.yangtools.yang.common.Revision;
+import org.opendaylight.yangtools.yang.common.XMLNamespace;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifierWithPredicates;
@@ -45,7 +45,8 @@ public class DerefXPathFunctionTest {
 
     private static JaxenSchemaContextFactory jaxenSchemaContextFactory = new JaxenSchemaContextFactory();
 
-    private static final QNameModule FOO_MODULE = QNameModule.create(URI.create("foo-ns"), Revision.of("2017-04-03"));
+    private static final QNameModule FOO_MODULE =
+        QNameModule.create(XMLNamespace.of("foo-ns"), Revision.of("2017-04-03"));
     private static final QName MY_CONTAINER = QName.create(FOO_MODULE, "my-container");
     private static final QName MY_INNER_CONTAINER = QName.create(FOO_MODULE, "my-inner-container");
     private static final QName MY_LIST = QName.create(FOO_MODULE, "my-list");
index 54baeca70e7d816e6598cdbc5247fe2a852b2039..08520d948215855f2cfb8dfa1b845f5bd28c984c 100644 (file)
@@ -19,7 +19,6 @@ import com.google.common.collect.HashBiMap;
 import com.google.common.collect.ImmutableList;
 import com.google.common.collect.ImmutableMap;
 import com.google.common.collect.Maps;
-import java.net.URI;
 import org.jaxen.Context;
 import org.jaxen.Function;
 import org.jaxen.FunctionCallException;
@@ -27,6 +26,7 @@ import org.junit.Test;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.common.QNameModule;
 import org.opendaylight.yangtools.yang.common.Revision;
+import org.opendaylight.yangtools.yang.common.XMLNamespace;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifierWithPredicates;
@@ -42,7 +42,8 @@ import org.opendaylight.yangtools.yang.test.util.YangParserTestUtils;
 public class DerivedFromXPathFunctionTest {
 
     private static final JaxenSchemaContextFactory SCHEMA_CONTEXT_FACTORY = new JaxenSchemaContextFactory();
-    private static final QNameModule BAR_MODULE = QNameModule.create(URI.create("bar-ns"), Revision.of("2017-04-03"));
+    private static final QNameModule BAR_MODULE =
+        QNameModule.create(XMLNamespace.of("bar-ns"), Revision.of("2017-04-03"));
     private static final QName MY_CONTAINER = QName.create(BAR_MODULE, "my-container");
     private static final QName MY_LIST = QName.create(BAR_MODULE, "my-list");
     private static final QName KEY_LEAF = QName.create(BAR_MODULE, "key-leaf");
index cc4841a786793468bf49cbf2b990c1b28997dc3e..a2c924581b59eb6e169e2146fe59fced153f422a 100644 (file)
@@ -18,7 +18,6 @@ import com.google.common.collect.HashBiMap;
 import com.google.common.collect.ImmutableList;
 import com.google.common.collect.ImmutableMap;
 import com.google.common.collect.Maps;
-import java.net.URI;
 import org.jaxen.Context;
 import org.jaxen.Function;
 import org.jaxen.FunctionCallException;
@@ -26,6 +25,7 @@ import org.junit.Test;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.common.QNameModule;
 import org.opendaylight.yangtools.yang.common.Revision;
+import org.opendaylight.yangtools.yang.common.XMLNamespace;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifierWithPredicates;
@@ -41,7 +41,8 @@ import org.opendaylight.yangtools.yang.test.util.YangParserTestUtils;
 public class EnumValueXPathFunctionTest {
 
     private static final JaxenSchemaContextFactory SCHEMA_CONTEXT_FACTORY = new JaxenSchemaContextFactory();
-    private static final QNameModule FOO_MODULE = QNameModule.create(URI.create("foo-ns"), Revision.of("2017-04-03"));
+    private static final QNameModule FOO_MODULE =
+        QNameModule.create(XMLNamespace.of("foo-ns"), Revision.of("2017-04-03"));
     private static final QName MY_CONTAINER = QName.create(FOO_MODULE, "my-container");
     private static final QName ALARM = QName.create(FOO_MODULE, "alarm");
     private static final QName SEVERITY = QName.create(FOO_MODULE, "severity");
index 57781c223498c79ce68af66b08c77ab9eb9a284f..b3b05e262278e5f2c24918658ba5c89951ebe26f 100644 (file)
@@ -18,7 +18,6 @@ import com.google.common.base.VerifyException;
 import com.google.common.collect.BiMap;
 import com.google.common.collect.HashBiMap;
 import com.google.common.collect.Maps;
-import java.net.URI;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.Map;
@@ -34,6 +33,7 @@ import org.junit.Test;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.common.QNameModule;
 import org.opendaylight.yangtools.yang.common.Revision;
+import org.opendaylight.yangtools.yang.common.XMLNamespace;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifierWithPredicates;
 import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
@@ -213,7 +213,7 @@ public class JaxenTest {
     }
 
     private void initQNames() {
-        this.moduleQName = QNameModule.create(URI.create("urn:opendaylight.test2"), Revision.of("2015-08-08"));
+        this.moduleQName = QNameModule.create(XMLNamespace.of("urn:opendaylight.test2"), Revision.of("2015-08-08"));
         this.rootQName = QName.create(moduleQName, "root");
         this.listAQName = QName.create(moduleQName, "list-a");
         this.listBQName = QName.create(moduleQName, "list-b");
index 84f6d0edd6327dd4246d12ed8d132effb97a1e88..c591c12a8b7c96b848aa85ee097a5280a5734866 100644 (file)
@@ -8,10 +8,10 @@
 package org.opendaylight.yangtools.odlext.model.api;
 
 import com.google.common.collect.ImmutableList;
-import java.net.URI;
 import java.util.Collection;
 import org.opendaylight.yangtools.yang.common.QNameModule;
 import org.opendaylight.yangtools.yang.common.Revision;
+import org.opendaylight.yangtools.yang.common.XMLNamespace;
 import org.opendaylight.yangtools.yang.model.repo.api.RevisionSourceIdentifier;
 import org.opendaylight.yangtools.yang.model.repo.api.SourceIdentifier;
 
@@ -22,7 +22,8 @@ import org.opendaylight.yangtools.yang.model.repo.api.SourceIdentifier;
  */
 public final class OpenDaylightExtensionsConstants {
     private static final String MODULE_NAME = "yang-ext";
-    private static final URI MODULE_NAMESPACE = URI.create("urn:opendaylight:yang:extension:yang-ext");
+    private static final XMLNamespace MODULE_NAMESPACE =
+        XMLNamespace.of("urn:opendaylight:yang:extension:yang-ext").intern();
     private static final Revision ORIGINAL_REVISION = Revision.of("2013-07-09");
 
     /**
index ae0c5942b200d649e0c85d5e7833725bbe4c6d4e..75152be51c885f0300fc592316cea7ab1785c6ad 100644 (file)
@@ -10,7 +10,6 @@ package org.opendaylight.yangtools.odlext.parser;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertTrue;
 
-import java.net.URI;
 import java.util.Collection;
 import org.junit.AfterClass;
 import org.junit.BeforeClass;
@@ -18,6 +17,7 @@ import org.junit.Test;
 import org.opendaylight.yangtools.odlext.model.api.OpenDaylightExtensionsStatements;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.common.QNameModule;
+import org.opendaylight.yangtools.yang.common.XMLNamespace;
 import org.opendaylight.yangtools.yang.model.api.AnyxmlSchemaNode;
 import org.opendaylight.yangtools.yang.model.api.ContainerSchemaNode;
 import org.opendaylight.yangtools.yang.model.api.DataSchemaNode;
@@ -58,7 +58,7 @@ public class Bug3874ExtensionTest {
                     YangTextSchemaSource.forResource("/bugs/bug3874/yang-ext.yang")))
                 .buildEffective();
 
-        QNameModule foo = QNameModule.create(URI.create("foo"));
+        QNameModule foo = QNameModule.create(XMLNamespace.of("foo"));
         QName myContainer2QName = QName.create(foo, "my-container-2");
         QName myAnyXmlDataQName = QName.create(foo, "my-anyxml-data");
 
index dbf0c1c064dadf06122a0ac3eb35ca4f48b0c63d..3c130c8bfacf6bb7c9fd47f62f6eac4812551f2e 100644 (file)
@@ -8,11 +8,11 @@
 package org.opendaylight.yangtools.openconfig.model.api;
 
 import com.google.common.collect.ImmutableList;
-import java.net.URI;
 import java.util.Collection;
 import org.eclipse.jdt.annotation.NonNullByDefault;
 import org.opendaylight.yangtools.yang.common.QNameModule;
 import org.opendaylight.yangtools.yang.common.Revision;
+import org.opendaylight.yangtools.yang.common.XMLNamespace;
 import org.opendaylight.yangtools.yang.model.repo.api.RevisionSourceIdentifier;
 import org.opendaylight.yangtools.yang.model.repo.api.SourceIdentifier;
 
@@ -26,7 +26,7 @@ public final class OpenConfigConstants {
     private static final String MODULE_NAME = "yang-ext";
 
     // Package-visible, because openconfig-version applies across all known revisions and needs to bind to all of them
-    static final URI MODULE_NAMESPACE = URI.create("http://openconfig.net/yang/openconfig-ext");
+    static final XMLNamespace MODULE_NAMESPACE = XMLNamespace.of("http://openconfig.net/yang/openconfig-ext").intern();
 
     // Initial revision, defining semantic-version
     private static final Revision SEMVER_REVISION = Revision.of("2015-10-09");
index 1b6e4a121adec1df6300592f003117f8ec5dbb59..14756f2cfdeb4d93367944a6f9853819fc76d7be 100644 (file)
@@ -9,11 +9,11 @@ package org.opendaylight.yangtools.rfc6241.model.api;
 
 import com.google.common.annotations.Beta;
 import com.google.common.collect.ImmutableList;
-import java.net.URI;
 import java.util.Collection;
 import org.eclipse.jdt.annotation.NonNullByDefault;
 import org.opendaylight.yangtools.yang.common.QNameModule;
 import org.opendaylight.yangtools.yang.common.Revision;
+import org.opendaylight.yangtools.yang.common.XMLNamespace;
 import org.opendaylight.yangtools.yang.model.repo.api.RevisionSourceIdentifier;
 import org.opendaylight.yangtools.yang.model.repo.api.SourceIdentifier;
 
@@ -26,7 +26,8 @@ import org.opendaylight.yangtools.yang.model.repo.api.SourceIdentifier;
 @NonNullByDefault
 public final class NetconfConstants {
     private static final String MODULE_NAME = "ietf-netconf";
-    private static final URI MODULE_NAMESPACE = URI.create("urn:ietf:params:xml:ns:netconf:base:1.0");
+    private static final XMLNamespace MODULE_NAMESPACE =
+        XMLNamespace.of("urn:ietf:params:xml:ns:netconf:base:1.0").intern();
     private static final Revision RFC6241_REVISION = Revision.of("2011-06-01");
 
     /**
index e0e9fee36db7a67cc5699b6531b2a00e748adde4..633ed57489b11895e7f74272700ebd0e3547138d 100644 (file)
@@ -8,11 +8,11 @@
 package org.opendaylight.yangtools.rfc6536.model.api;
 
 import com.google.common.collect.ImmutableList;
-import java.net.URI;
 import java.util.Collection;
 import org.eclipse.jdt.annotation.NonNullByDefault;
 import org.opendaylight.yangtools.yang.common.QNameModule;
 import org.opendaylight.yangtools.yang.common.Revision;
+import org.opendaylight.yangtools.yang.common.XMLNamespace;
 import org.opendaylight.yangtools.yang.model.repo.api.RevisionSourceIdentifier;
 import org.opendaylight.yangtools.yang.model.repo.api.SourceIdentifier;
 
@@ -24,7 +24,8 @@ import org.opendaylight.yangtools.yang.model.repo.api.SourceIdentifier;
 @NonNullByDefault
 public final class NACMConstants {
     private static final String MODULE_NAME = "ietf-netconf-acm";
-    private static final URI MODULE_NAMESPACE = URI.create("urn:ietf:params:xml:ns:yang:ietf-netconf-acm");
+    private static final XMLNamespace MODULE_NAMESPACE =
+        XMLNamespace.of("urn:ietf:params:xml:ns:yang:ietf-netconf-acm").intern();
     private static final Revision RFC6536_REVISION = Revision.of("2012-02-22");
     private static final Revision RFC8341_REVISION = Revision.of("2018-02-14");
 
index 0a54912ab750ccfe927f589d9557d11040c3df2f..25ad01d52cfafed03f8349dc9fd9ce67d9c447c1 100644 (file)
@@ -9,17 +9,18 @@ package org.opendaylight.yangtools.rfc6643.model.api;
 
 import com.google.common.annotations.Beta;
 import com.google.common.collect.ImmutableList;
-import java.net.URI;
 import java.util.Collection;
 import org.opendaylight.yangtools.yang.common.QNameModule;
 import org.opendaylight.yangtools.yang.common.Revision;
+import org.opendaylight.yangtools.yang.common.XMLNamespace;
 import org.opendaylight.yangtools.yang.model.repo.api.RevisionSourceIdentifier;
 import org.opendaylight.yangtools.yang.model.repo.api.SourceIdentifier;
 
 @Beta
 public final class IetfYangSmiv2Constants {
     private static final String MODULE_NAME = "ietf-yang-smiv2";
-    private static final URI MODULE_NAMESPACE = URI.create("urn:ietf:params:xml:ns:yang:ietf-yang-smiv2");
+    private static final XMLNamespace MODULE_NAMESPACE =
+        XMLNamespace.of("urn:ietf:params:xml:ns:yang:ietf-yang-smiv2").intern();
     private static final Revision RFC6643_REVISION = Revision.of("2012-06-22");
 
     /**
index c9a9eea93143dddf2288001be465cc33655681b9..b4f8adcb62f83f2545feec73ecd5f25d7ab6dd9c 100644 (file)
@@ -8,11 +8,11 @@
 package org.opendaylight.yangtools.rfc7952.model.api;
 
 import com.google.common.collect.ImmutableList;
-import java.net.URI;
 import java.util.Collection;
 import org.eclipse.jdt.annotation.NonNullByDefault;
 import org.opendaylight.yangtools.yang.common.QNameModule;
 import org.opendaylight.yangtools.yang.common.Revision;
+import org.opendaylight.yangtools.yang.common.XMLNamespace;
 import org.opendaylight.yangtools.yang.model.repo.api.RevisionSourceIdentifier;
 import org.opendaylight.yangtools.yang.model.repo.api.SourceIdentifier;
 
@@ -24,7 +24,8 @@ import org.opendaylight.yangtools.yang.model.repo.api.SourceIdentifier;
 @NonNullByDefault
 public final class MetadataConstants {
     private static final String MODULE_NAME = "ietf-yang-metadata";
-    private static final URI MODULE_NAMESPACE = URI.create("urn:ietf:params:xml:ns:yang:ietf-yang-metadata");
+    private static final XMLNamespace MODULE_NAMESPACE =
+        XMLNamespace.of("urn:ietf:params:xml:ns:yang:ietf-yang-metadata").intern();
     private static final Revision RFC7952_REVISION = Revision.of("2016-08-05");
 
     /**
index f013f6c0e8792abccb1af7cdd1a16c74651ad70a..9d548ac648469880fdc19af4cd33c41b357a9073 100644 (file)
@@ -8,11 +8,11 @@
 package org.opendaylight.yangtools.rfc8040.model.api;
 
 import com.google.common.collect.ImmutableList;
-import java.net.URI;
 import java.util.Collection;
 import org.eclipse.jdt.annotation.NonNullByDefault;
 import org.opendaylight.yangtools.yang.common.QNameModule;
 import org.opendaylight.yangtools.yang.common.Revision;
+import org.opendaylight.yangtools.yang.common.XMLNamespace;
 import org.opendaylight.yangtools.yang.model.repo.api.RevisionSourceIdentifier;
 import org.opendaylight.yangtools.yang.model.repo.api.SourceIdentifier;
 
@@ -24,7 +24,8 @@ import org.opendaylight.yangtools.yang.model.repo.api.SourceIdentifier;
 @NonNullByDefault
 public final class YangDataConstants {
     private static final String MODULE_NAME = "ietf-restconf";
-    private static final URI MODULE_NAMESPACE = URI.create("urn:ietf:params:xml:ns:yang:ietf-restconf");
+    private static final XMLNamespace MODULE_NAMESPACE =
+        XMLNamespace.of("urn:ietf:params:xml:ns:yang:ietf-restconf").intern();
     private static final Revision RFC8040_REVISION = Revision.of("2017-01-26");
 
     /**
index 3cce9448b3f173b761087a26d2674d4d94f5370e..0be14ddf8dcb2f0642bd3c38df30cacd68ce7976 100644 (file)
@@ -17,7 +17,6 @@ import static org.junit.Assert.assertTrue;
 
 import com.google.common.collect.ImmutableSet;
 import java.io.IOException;
-import java.net.URI;
 import java.util.Collection;
 import java.util.Optional;
 import org.junit.AfterClass;
@@ -27,6 +26,7 @@ import org.opendaylight.yangtools.rfc8040.model.api.YangDataSchemaNode;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.common.QNameModule;
 import org.opendaylight.yangtools.yang.common.Revision;
+import org.opendaylight.yangtools.yang.common.XMLNamespace;
 import org.opendaylight.yangtools.yang.model.api.ContainerSchemaNode;
 import org.opendaylight.yangtools.yang.model.api.ExtensionDefinition;
 import org.opendaylight.yangtools.yang.model.api.Module;
@@ -64,7 +64,7 @@ public class YangDataExtensionTest {
             "/yang-data-extension-test/ietf-restconf.yang");
 
     private static final Revision REVISION = Revision.of("2017-06-01");
-    private static final QNameModule FOO_QNAMEMODULE = QNameModule.create(URI.create("foo"), REVISION);
+    private static final QNameModule FOO_QNAMEMODULE = QNameModule.create(XMLNamespace.of("foo"), REVISION);
     private static final QName MY_YANG_DATA_A = QName.create(FOO_QNAMEMODULE, "my-yang-data-a");
     private static final QName MY_YANG_DATA_B = QName.create(FOO_QNAMEMODULE, "my-yang-data-b");
 
index d5e82a114ca2a4bd588d413b7891580e4b945f31..26924c973ae303c9d587cd0468a86f9c1ce525f7 100644 (file)
@@ -12,10 +12,10 @@ import static java.util.Objects.requireNonNull;
 import com.google.common.annotations.Beta;
 import com.google.common.collect.ImmutableMap;
 import com.google.common.collect.Maps;
-import java.net.URI;
 import java.util.Arrays;
 import java.util.Optional;
 import org.eclipse.jdt.annotation.NonNullByDefault;
+import org.opendaylight.yangtools.yang.common.XMLNamespace;
 
 /**
  * Constants related to {@code ietf-yang-library.yang}. As schema-mount works in concert with yang-library, we need
@@ -38,7 +38,8 @@ public final class YangLibraryConstants {
      * The namespace assigned to {@code ietf-yang-library}. This constant is required for XML-like parsers, using
      * XML namespaces to reference modules.
      */
-    public static final URI MODULE_NAMESPACE = URI.create("urn:ietf:params:xml:ns:yang:ietf-yang-library");
+    public static final XMLNamespace MODULE_NAMESPACE =
+        XMLNamespace.of("urn:ietf:params:xml:ns:yang:ietf-yang-library");
     /**
      * The module name assigned to {@code ietf-yang-library}. This constant is required for JSON-like parsers, using
      * module names to reference modules.
index 1fdb4be3db271cb9d24ff6822d552c44c62bc1d2..17d1bda2aed1f3beaff1eebb4231de153c8ac488 100644 (file)
@@ -8,11 +8,11 @@
 package org.opendaylight.yangtools.rfc8528.model.api;
 
 import com.google.common.collect.ImmutableList;
-import java.net.URI;
 import java.util.Collection;
 import org.eclipse.jdt.annotation.NonNullByDefault;
 import org.opendaylight.yangtools.yang.common.QNameModule;
 import org.opendaylight.yangtools.yang.common.Revision;
+import org.opendaylight.yangtools.yang.common.XMLNamespace;
 import org.opendaylight.yangtools.yang.model.repo.api.RevisionSourceIdentifier;
 import org.opendaylight.yangtools.yang.model.repo.api.SourceIdentifier;
 
@@ -24,7 +24,8 @@ import org.opendaylight.yangtools.yang.model.repo.api.SourceIdentifier;
 @NonNullByDefault
 public final class SchemaMountConstants {
     private static final String MODULE_NAME = "ietf-yang-schema-mount";
-    private static final URI MODULE_NAMESPACE = URI.create("urn:ietf:params:xml:ns:yang:ietf-yang-schema-mount");
+    private static final XMLNamespace MODULE_NAMESPACE =
+        XMLNamespace.of("urn:ietf:params:xml:ns:yang:ietf-yang-schema-mount").intern();
     private static final Revision RFC8528_REVISION = Revision.of("2019-01-14");
 
     /**
index 6a103b232fc3fd178e80b4a212fae094dd86ca9e..6d36771fce26ffda3fd2e2d49c52ee4b3f72c8c2 100644 (file)
@@ -12,7 +12,6 @@ import static org.hamcrest.MatcherAssert.assertThat;
 import static org.junit.Assert.assertEquals;
 
 import java.io.IOException;
-import java.net.URI;
 import java.util.List;
 import java.util.stream.Collectors;
 import org.junit.AfterClass;
@@ -21,6 +20,7 @@ import org.junit.Test;
 import org.opendaylight.yangtools.rfc8528.model.api.MountPointSchemaNode;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.common.QNameModule;
+import org.opendaylight.yangtools.yang.common.XMLNamespace;
 import org.opendaylight.yangtools.yang.model.api.ContainerSchemaNode;
 import org.opendaylight.yangtools.yang.model.api.DataSchemaNode;
 import org.opendaylight.yangtools.yang.model.api.ListSchemaNode;
@@ -34,7 +34,8 @@ import org.opendaylight.yangtools.yang.parser.spi.meta.ReactorException;
 import org.opendaylight.yangtools.yang.parser.stmt.reactor.CrossSourceStatementReactor;
 
 public class MountPointTest {
-    private static final QNameModule EXAMPLE_USES = QNameModule.create(URI.create("http://example.org/example-uses"));
+    private static final QNameModule EXAMPLE_USES =
+        QNameModule.create(XMLNamespace.of("http://example.org/example-uses"));
     private static final QName EXAMPLE_CONT = QName.create(EXAMPLE_USES, "cont");
     private static final QName EXAMPLE_GRP = QName.create(EXAMPLE_USES, "grp");
     private static final QName EXAMPLE_GRP_CONT = QName.create(EXAMPLE_USES, "grp-cont");
index 41672ca7e1ee09e18d27036e69dbc594803570c0..d74786b910fabc6ad8efa51eabb6b9381928731d 100644 (file)
@@ -15,8 +15,6 @@ import com.google.common.collect.Interners;
 import java.io.DataInput;
 import java.io.DataOutput;
 import java.io.IOException;
-import java.net.URI;
-import java.net.URISyntaxException;
 import java.util.Objects;
 import java.util.Optional;
 import java.util.regex.Matcher;
@@ -104,7 +102,7 @@ public final class QName extends AbstractQName implements Comparable<QName> {
      * @param localName
      *            YANG schema identifier
      */
-    private QName(final URI namespace, final String localName) {
+    private QName(final XMLNamespace namespace, final String localName) {
         this(QNameModule.create(namespace), checkLocalName(localName));
     }
 
@@ -118,7 +116,7 @@ public final class QName extends AbstractQName implements Comparable<QName> {
         }
         matcher = QNAME_PATTERN_NO_REVISION.matcher(input);
         if (matcher.matches()) {
-            final URI namespace = URI.create(matcher.group(1));
+            final XMLNamespace namespace = XMLNamespace.of(matcher.group(1));
             final String localName = matcher.group(2);
             return new QName(namespace, localName);
         }
@@ -150,7 +148,7 @@ public final class QName extends AbstractQName implements Comparable<QName> {
      * @param localName Local name part of QName. MUST NOT BE null.
      * @return Instance of QName
      */
-    public static @NonNull QName create(final URI namespace, final @Nullable Revision revision,
+    public static @NonNull QName create(final XMLNamespace namespace, final @Nullable Revision revision,
             final String localName) {
         return create(QNameModule.create(namespace, revision), localName);
     }
@@ -163,7 +161,7 @@ public final class QName extends AbstractQName implements Comparable<QName> {
      * @param localName Local name part of QName. MUST NOT BE null.
      * @return Instance of QName
      */
-    public static @NonNull QName create(final URI namespace, final Optional<Revision> revision,
+    public static @NonNull QName create(final XMLNamespace namespace, final Optional<Revision> revision,
             final String localName) {
         return create(QNameModule.create(namespace, revision), localName);
     }
@@ -177,7 +175,7 @@ public final class QName extends AbstractQName implements Comparable<QName> {
      * @return Instance of QName
      */
     public static @NonNull QName create(final String namespace, final String localName, final Revision revision) {
-        return create(QNameModule.create(parseNamespace(namespace), revision), localName);
+        return create(QNameModule.create(XMLNamespace.of(namespace), revision), localName);
     }
 
     /**
@@ -192,7 +190,7 @@ public final class QName extends AbstractQName implements Comparable<QName> {
      *         to {@code YYYY-mm-dd}.
      */
     public static @NonNull QName create(final String namespace, final String revision, final String localName) {
-        return create(parseNamespace(namespace), Revision.of(revision), localName);
+        return create(XMLNamespace.of(namespace), Revision.of(revision), localName);
     }
 
     /**
@@ -205,7 +203,7 @@ public final class QName extends AbstractQName implements Comparable<QName> {
      * @throws IllegalArgumentException If {@code namespace} is not valid URI.
      */
     public static @NonNull QName create(final String namespace, final String localName) {
-        return create(parseNamespace(namespace), localName);
+        return create(XMLNamespace.of(namespace), localName);
     }
 
     /**
@@ -217,7 +215,7 @@ public final class QName extends AbstractQName implements Comparable<QName> {
      * @throws NullPointerException If any of parameters is null.
      * @throws IllegalArgumentException If <code>namespace</code> is not valid URI.
      */
-    public static @NonNull QName create(final URI namespace, final String localName) {
+    public static @NonNull QName create(final XMLNamespace namespace, final String localName) {
         return new QName(namespace, localName);
     }
 
@@ -268,7 +266,7 @@ public final class QName extends AbstractQName implements Comparable<QName> {
      *
      * @return XMLNamespace assigned to the YANG module.
      */
-    public @NonNull URI getNamespace() {
+    public @NonNull XMLNamespace getNamespace() {
         return module.getNamespace();
     }
 
@@ -322,14 +320,6 @@ public final class QName extends AbstractQName implements Comparable<QName> {
         return Objects.equals(getLocalName(), other.getLocalName()) && module.equals(other.module);
     }
 
-    private static @NonNull URI parseNamespace(final String namespace) {
-        try {
-            return new URI(namespace);
-        } catch (final URISyntaxException ue) {
-            throw new IllegalArgumentException("Namespace '" + namespace + "' is not a valid URI", ue);
-        }
-    }
-
     @Override
     public @NonNull String toString() {
         final StringBuilder sb = new StringBuilder().append(QNAME_LEFT_PARENTHESIS).append(getNamespace());
index 8051db9c08bdab0e92175838e4000f561eec84f9..0221ecc821f54559571d938d17d1c63d247d370f 100644 (file)
@@ -16,7 +16,6 @@ import java.io.DataInput;
 import java.io.DataOutput;
 import java.io.IOException;
 import java.io.Serializable;
-import java.net.URI;
 import java.util.Objects;
 import java.util.Optional;
 import org.eclipse.jdt.annotation.NonNull;
@@ -29,12 +28,12 @@ public final class QNameModule implements Comparable<QNameModule>, Immutable, Se
     private static final Interner<QNameModule> INTERNER = Interners.newWeakInterner();
     private static final long serialVersionUID = 3L;
 
-    private final @NonNull URI namespace;
+    private final @NonNull XMLNamespace namespace;
     private final @Nullable Revision revision;
 
     private transient int hash = 0;
 
-    private QNameModule(final URI namespace, final @Nullable Revision revision) {
+    private QNameModule(final XMLNamespace namespace, final @Nullable Revision revision) {
         this.namespace = requireNonNull(namespace);
         this.revision = revision;
     }
@@ -56,7 +55,7 @@ public final class QNameModule implements Comparable<QNameModule>, Immutable, Se
      * @return A new, potentially shared, QNameModule instance
      * @throws NullPointerException if any argument is null
      */
-    public static @NonNull QNameModule create(final URI namespace, final Optional<Revision> revision) {
+    public static @NonNull QNameModule create(final XMLNamespace namespace, final Optional<Revision> revision) {
         return new QNameModule(namespace, revision.orElse(null));
     }
 
@@ -67,7 +66,7 @@ public final class QNameModule implements Comparable<QNameModule>, Immutable, Se
      * @return A new, potentially shared, QNameModule instance
      * @throws NullPointerException if {@code namespace} is null
      */
-    public static @NonNull QNameModule create(final URI namespace) {
+    public static @NonNull QNameModule create(final XMLNamespace namespace) {
         return new QNameModule(namespace, null);
     }
 
@@ -79,7 +78,7 @@ public final class QNameModule implements Comparable<QNameModule>, Immutable, Se
      * @return A new, potentially shared, QNameModule instance
      * @throws NullPointerException if any argument is null
      */
-    public static @NonNull QNameModule create(final URI namespace, final @Nullable Revision revision) {
+    public static @NonNull QNameModule create(final XMLNamespace namespace, final @Nullable Revision revision) {
         return new QNameModule(namespace, revision);
     }
 
@@ -94,15 +93,15 @@ public final class QNameModule implements Comparable<QNameModule>, Immutable, Se
     public static @NonNull QNameModule readFrom(final DataInput in) throws IOException {
         final String namespace = in.readUTF();
         final String revision = in.readUTF();
-        return new QNameModule(URI.create(namespace), revision.isEmpty() ? null : Revision.of(revision));
+        return new QNameModule(XMLNamespace.of(namespace), revision.isEmpty() ? null : Revision.of(revision));
     }
 
     /**
      * Returns the namespace of the module which is specified as argument of YANG Module {@code namespace} keyword.
      *
-     * @return URI format of the namespace of the module
+     * @return XMLNamespace of the namespace of the module
      */
-    public @NonNull URI getNamespace() {
+    public @NonNull XMLNamespace getNamespace() {
         return namespace;
     }
 
diff --git a/yang/yang-common/src/main/java/org/opendaylight/yangtools/yang/common/XMLNamespace.java b/yang/yang-common/src/main/java/org/opendaylight/yangtools/yang/common/XMLNamespace.java
new file mode 100644 (file)
index 0000000..f7292db
--- /dev/null
@@ -0,0 +1,79 @@
+/*
+ * Copyright (c) 2021 PANTHEON.tech, s.r.o. and others.  All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+package org.opendaylight.yangtools.yang.common;
+
+import static java.util.Objects.requireNonNull;
+
+import com.google.common.collect.Interner;
+import com.google.common.collect.Interners;
+import java.io.Serializable;
+import java.net.URI;
+import java.net.URISyntaxException;
+import org.eclipse.jdt.annotation.NonNull;
+import org.opendaylight.yangtools.concepts.Immutable;
+
+/**
+ * A simple type capture of {@code namespace} statement's argument according to
+ * <a href="https://tools.ietf.org/html/rfc6020#section-7.1.3">RFC6020</a>.
+ */
+public final class XMLNamespace implements Comparable<XMLNamespace>, Immutable, Serializable {
+    private static final Interner<XMLNamespace> INTERNER = Interners.newWeakInterner();
+    private static final long serialVersionUID = 1L;
+
+    private final String namespace;
+
+    private XMLNamespace(final String namespace) {
+        this.namespace = requireNonNull(namespace);
+    }
+
+    // FIXME: add documentation
+    public static @NonNull XMLNamespace of(final String namespace) {
+        try {
+            // Validation only
+            new URI(namespace);
+        } catch (final URISyntaxException e) {
+            throw new IllegalArgumentException("Namespace '" + namespace + "' is not a valid URI", e);
+        }
+
+        return new XMLNamespace(namespace);
+    }
+
+    /**
+     * Return an interned reference to a equivalent XMLNamespace.
+     *
+     * @return Interned reference, or this object if it was interned.
+     */
+    public @NonNull XMLNamespace intern() {
+        return INTERNER.intern(this);
+    }
+
+    @Override
+    @SuppressWarnings("checkstyle:parameterName")
+    public int compareTo(final XMLNamespace o) {
+        return namespace.compareTo(o.namespace);
+    }
+
+    @Override
+    public int hashCode() {
+        return namespace.hashCode();
+    }
+
+    @Override
+    public boolean equals(final Object obj) {
+        return this == obj || obj instanceof XMLNamespace && namespace.equals(((XMLNamespace) obj).namespace);
+    }
+
+    @Override
+    public String toString() {
+        return namespace;
+    }
+
+    Object writeReplace() {
+        return new XNv1(this);
+    }
+}
diff --git a/yang/yang-common/src/main/java/org/opendaylight/yangtools/yang/common/XNv1.java b/yang/yang-common/src/main/java/org/opendaylight/yangtools/yang/common/XNv1.java
new file mode 100644 (file)
index 0000000..621bc13
--- /dev/null
@@ -0,0 +1,51 @@
+/*
+ * Copyright (c) 2021 PANTHEON.tech, s.r.o. and others.  All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+package org.opendaylight.yangtools.yang.common;
+
+import static com.google.common.base.Verify.verifyNotNull;
+import static java.util.Objects.requireNonNull;
+
+import java.io.Externalizable;
+import java.io.IOException;
+import java.io.ObjectInput;
+import java.io.ObjectOutput;
+
+/**
+ * Externalizable proxy for {@link XMLNamespace}.
+ */
+final class XNv1 implements Externalizable {
+
+    private XMLNamespace namespace;
+
+    @SuppressWarnings("checkstyle:redundantModifier")
+    public XNv1() {
+        // For Externalizable
+    }
+
+    XNv1(final XMLNamespace namespace) {
+        this.namespace = requireNonNull(namespace);
+    }
+
+    @Override
+    public void writeExternal(final ObjectOutput out) throws IOException {
+        out.writeUTF(namespace.toString());
+    }
+
+    @Override
+    public void readExternal(final ObjectInput in) throws IOException {
+        try {
+            namespace = XMLNamespace.of(in.readUTF());
+        } catch (IllegalArgumentException e) {
+            throw new IOException("Invalid namespace", e);
+        }
+    }
+
+    Object readResolve() {
+        return verifyNotNull(namespace);
+    }
+}
index 2445c2ae2014e71a5a44b43f270ddfbbfd3aa266..61b63b6695976f4fd80d1797282cfd7f953ae8be 100644 (file)
@@ -39,7 +39,7 @@ public final class YangConstants {
     /**
      * YANG namespace, as defined in https://tools.ietf.org/html/rfc6020#section-14, in URI format.
      */
-    public static final URI RFC6020_YANG_NAMESPACE = URI.create(RFC6020_YANG_NAMESPACE_STRING);
+    public static final XMLNamespace RFC6020_YANG_NAMESPACE = XMLNamespace.of(RFC6020_YANG_NAMESPACE_STRING).intern();
 
     /**
      * Base QNameModule for all YANG statements.
@@ -69,7 +69,7 @@ public final class YangConstants {
     /**
      * YIN namespace, as defined in https://tools.ietf.org/html/rfc6020#section-14, in URI format.
      */
-    public static final URI RFC6020_YIN_NAMESPACE = URI.create(RFC6020_YIN_NAMESPACE_STRING);
+    public static final XMLNamespace RFC6020_YIN_NAMESPACE = XMLNamespace.of(RFC6020_YIN_NAMESPACE_STRING).intern();
 
     /**
      * Base QNameModule for all YIN statements.
index f48f6192d0c4d12f37bddddf13f0300ff9b53fdb..28b56436d521a7b6958bbabfd31118c316ea279f 100644 (file)
@@ -17,14 +17,13 @@ import java.io.ByteArrayOutputStream;
 import java.io.DataInputStream;
 import java.io.DataOutputStream;
 import java.io.IOException;
-import java.net.URI;
 import java.util.Optional;
 import org.junit.Test;
 
 public class BiMapYangNamespaceContextTest {
-    private static final QNameModule FOO = QNameModule.create(URI.create("foo"));
-    private static final QNameModule BAR = QNameModule.create(URI.create("bar"));
-    private static final QNameModule BAZ = QNameModule.create(URI.create("baz"));
+    private static final QNameModule FOO = QNameModule.create(XMLNamespace.of("foo"));
+    private static final QNameModule BAR = QNameModule.create(XMLNamespace.of("bar"));
+    private static final QNameModule BAZ = QNameModule.create(XMLNamespace.of("baz"));
 
     private final BiMapYangNamespaceContext context = new BiMapYangNamespaceContext(
         ImmutableBiMap.of("foo", FOO, "bar", BAR));
index dabe8d8944ecad2a466c29a9d1874f396b41daca..05eace25568f7b42ce7b155ae66a050c5e520396 100644 (file)
@@ -11,7 +11,6 @@ import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertThrows;
 import static org.junit.Assert.assertTrue;
 
-import java.net.URI;
 import java.net.URISyntaxException;
 import org.junit.Test;
 
@@ -19,7 +18,7 @@ public class QNameTest {
     private static final String NAMESPACE = "urn:foo";
     private static final String REVISION = "2013-12-24";
     private static final String LOCALNAME = "bar";
-    private static final URI NS = URI.create(NAMESPACE);
+    private static final XMLNamespace NS = XMLNamespace.of(NAMESPACE);
 
     @Test
     public void testStringSerialization() throws Exception {
@@ -66,13 +65,13 @@ public class QNameTest {
         assertTrue(qb.compareTo(qa) > 0);
 
         // compare with 1 null revision
-        qa = QName.create(URI.create(A), A);
-        qb = QName.create(URI.create(A), Revision.of(REVISION), A);
+        qa = QName.create(XMLNamespace.of(A), A);
+        qb = QName.create(XMLNamespace.of(A), Revision.of(REVISION), A);
         assertTrue(qa.compareTo(qb) < 0);
         assertTrue(qb.compareTo(qa) > 0);
 
         // compare with both null revision
-        qb = QName.create(URI.create(A), A);
+        qb = QName.create(XMLNamespace.of(A), A);
         assertTrue(qa.compareTo(qb) == 0);
         assertTrue(qb.compareTo(qa) == 0);
     }
index 26bf20b093375c9e420ccbfefef25e21c3f624f1..c637b52006bcd8f43eed72fa0dbbdb2420451736 100644 (file)
@@ -9,17 +9,15 @@ package org.opendaylight.yangtools.yang.common;
 
 import static org.junit.Assert.assertEquals;
 
-import java.net.URI;
 import org.junit.Test;
 
 public class YangConstantsTest {
-
     @Test
     public void testYangConstants() {
-        final URI uriYang = YangConstants.RFC6020_YANG_NAMESPACE;
-        final URI uriYin = YangConstants.RFC6020_YIN_NAMESPACE;
-        assertEquals(URI.create("urn:ietf:params:xml:ns:yang:1"), uriYang);
-        assertEquals(URI.create("urn:ietf:params:xml:ns:yang:yin:1"), uriYin);
+        final XMLNamespace uriYang = YangConstants.RFC6020_YANG_NAMESPACE;
+        final XMLNamespace uriYin = YangConstants.RFC6020_YIN_NAMESPACE;
+        assertEquals(XMLNamespace.of("urn:ietf:params:xml:ns:yang:1"), uriYang);
+        assertEquals(XMLNamespace.of("urn:ietf:params:xml:ns:yang:yin:1"), uriYin);
         assertEquals(QNameModule.create(uriYang).intern(), YangConstants.RFC6020_YANG_MODULE);
         assertEquals(QNameModule.create(uriYin).intern(), YangConstants.RFC6020_YIN_MODULE);
     }
index 33590250bba1c525f8b35db0dee4d3e3de76d577..172bbc8d0d6ca3a009a5cc86223f49a3dbfc8733 100644 (file)
@@ -17,11 +17,11 @@ import com.google.common.collect.ImmutableSet;
 import java.io.DataInput;
 import java.io.DataOutput;
 import java.io.IOException;
-import java.net.URI;
 import org.eclipse.jdt.annotation.NonNullByDefault;
 import org.opendaylight.yangtools.concepts.WritableObject;
 import org.opendaylight.yangtools.util.AbstractIdentifier;
 import org.opendaylight.yangtools.yang.common.QName;
+import org.opendaylight.yangtools.yang.common.XMLNamespace;
 
 /**
  * Identifier of a RFC8342 (NMDA) datastore. This class is backed by the QName of the datastore, i.e.
@@ -33,7 +33,8 @@ import org.opendaylight.yangtools.yang.common.QName;
 public final class DatastoreIdentifier extends AbstractIdentifier<QName> implements WritableObject {
     private static final long serialVersionUID = 1L;
 
-    private static final URI IETF_DATASTORES_NAMESPACE = URI.create("urn:ietf:params:xml:ns:yang:ietf-datastores");
+    private static final XMLNamespace IETF_DATASTORES_NAMESPACE =
+        XMLNamespace.of("urn:ietf:params:xml:ns:yang:ietf-datastores").intern();
     private static final ImmutableSet<String> KNOWN_ABSTRACTS = ImmutableSet.of("datastore", "conventional", "dynamic");
 
     private static final LoadingCache<QName, DatastoreIdentifier> CACHE = CacheBuilder.newBuilder().weakValues()
index 5d8f678def11f9c0a82ea652c3ea8edf8cf21265..e2298784bbd6e16a4eefda9ccd770b584ad80a8c 100644 (file)
@@ -13,7 +13,6 @@ import static org.junit.Assert.assertThrows;
 import static org.junit.Assert.assertTrue;
 
 import com.google.common.collect.UnmodifiableIterator;
-import java.net.URI;
 import java.util.Collections;
 import java.util.HashMap;
 import java.util.Map;
@@ -22,6 +21,7 @@ import org.junit.Test;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.common.QNameModule;
 import org.opendaylight.yangtools.yang.common.Revision;
+import org.opendaylight.yangtools.yang.common.XMLNamespace;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifierWithPredicates;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.PathArgument;
 
@@ -72,7 +72,7 @@ public class PathArgumentListTest {
 
     @Test
     public void testPathArgument() {
-        final QNameModule qNameModule = QNameModule.create(URI.create("urn:opendaylight.test2"),
+        final QNameModule qNameModule = QNameModule.create(XMLNamespace.of("urn:opendaylight.test2"),
             Revision.of("2015-08-08"));
         final QName qNameRoot = QName.create(qNameModule, "root");
         final QName qNameList = QName.create(qNameModule, "list");
index 2941d473bda09ef067dafa925ed893f2e46fb198..2d62b9b8d5fea94d83a79b034e42e02ac8d7a98b 100644 (file)
@@ -17,7 +17,6 @@ import static org.mockito.Mockito.doReturn;
 import static org.mockito.Mockito.mock;
 
 import java.io.IOException;
-import java.net.URI;
 import java.util.Set;
 import javax.xml.transform.dom.DOMSource;
 import org.junit.Before;
@@ -25,6 +24,7 @@ import org.junit.Test;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.common.QNameModule;
 import org.opendaylight.yangtools.yang.common.Revision;
+import org.opendaylight.yangtools.yang.common.XMLNamespace;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifierWithPredicates;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeWithValue;
@@ -53,7 +53,7 @@ public class NormalizedNodeWriterTest {
 
     @Before
     public void setUp() {
-        bazModule = QNameModule.create(URI.create("baz-namespace"), Revision.of("1970-01-01"));
+        bazModule = QNameModule.create(XMLNamespace.of("baz-namespace"), Revision.of("1970-01-01"));
         myKeyedList = QName.create(bazModule, "my-keyed-list");
         myKeyLeaf = QName.create(bazModule, "my-key-leaf");
         myLeafList = QName.create(bazModule, "my-leaf-list");
index a8065a22c79b41ab63780e8ee8672a13a1d2b661..13680b494b3a901dba8f3bbf5db58d6a6d4844d8 100644 (file)
@@ -12,7 +12,6 @@ import static java.util.Objects.requireNonNull;
 import com.google.common.cache.CacheBuilder;
 import com.google.common.cache.CacheLoader;
 import com.google.common.cache.LoadingCache;
-import java.net.URI;
 import java.util.Objects;
 import java.util.concurrent.ExecutionException;
 import org.eclipse.jdt.annotation.NonNull;
@@ -21,6 +20,7 @@ import org.opendaylight.yangtools.concepts.Immutable;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.common.QNameModule;
 import org.opendaylight.yangtools.yang.common.Revision;
+import org.opendaylight.yangtools.yang.common.XMLNamespace;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier;
 
 final class QNameFactory {
@@ -116,7 +116,7 @@ final class QNameFactory {
         }
 
         QNameModule toQNameModule() {
-            return QNameModule.create(URI.create(namespace), Revision.ofNullable(revision));
+            return QNameModule.create(XMLNamespace.of(namespace), Revision.ofNullable(revision));
         }
     }
 
index 0263ef9dad7659d92557c82d941d8a64162b1311..3daa0554019e3b84bd0d793202a8d403d1d3b8c3 100644 (file)
@@ -12,8 +12,8 @@ import static java.util.Objects.requireNonNull;
 
 import com.google.gson.stream.JsonWriter;
 import java.io.IOException;
-import java.net.URI;
 import java.util.Iterator;
+import org.opendaylight.yangtools.yang.common.XMLNamespace;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
 import org.opendaylight.yangtools.yang.data.util.AbstractModuleStringInstanceIdentifierCodec;
 import org.opendaylight.yangtools.yang.data.util.DataSchemaContextTree;
@@ -41,7 +41,7 @@ abstract class JSONInstanceIdentifierCodec extends AbstractModuleStringInstanceI
     }
 
     @Override
-    protected final String prefixForNamespace(final URI namespace) {
+    protected final String prefixForNamespace(final XMLNamespace namespace) {
         final Iterator<? extends Module> modules = context.findModules(namespace).iterator();
         return modules.hasNext() ? modules.next().getName() : null;
     }
index 21ab3bd8bc5b59b61bbf5605f4a196918a44ab87..dcbb94b3660a70cb291b871a2b2b53cfc72d9689 100644 (file)
@@ -16,13 +16,13 @@ import com.google.common.collect.ClassToInstanceMap;
 import com.google.common.collect.ImmutableClassToInstanceMap;
 import com.google.gson.stream.JsonWriter;
 import java.io.IOException;
-import java.net.URI;
 import java.util.regex.Pattern;
 import javax.xml.transform.dom.DOMSource;
 import org.checkerframework.checker.regex.qual.Regex;
 import org.opendaylight.yangtools.rfc8528.data.api.MountPointContext;
 import org.opendaylight.yangtools.rfc8528.data.api.MountPointIdentifier;
 import org.opendaylight.yangtools.rfc8528.data.api.StreamWriterMountPointExtension;
+import org.opendaylight.yangtools.yang.common.XMLNamespace;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.AugmentationIdentifier;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifierWithPredicates;
@@ -129,7 +129,7 @@ public abstract class JSONNormalizedNodeStreamWriter implements NormalizedNodeSt
      * @return A stream writer instance
      */
     public static NormalizedNodeStreamWriter createExclusiveWriter(final JSONCodecFactory codecFactory,
-            final SchemaPath path, final URI initialNs, final JsonWriter jsonWriter) {
+            final SchemaPath path, final XMLNamespace initialNs, final JsonWriter jsonWriter) {
         return new Exclusive(codecFactory, SchemaTracker.create(codecFactory.getEffectiveModelContext(), path),
             jsonWriter, new JSONStreamWriterExclusiveRootContext(initialNs));
     }
@@ -156,7 +156,7 @@ public abstract class JSONNormalizedNodeStreamWriter implements NormalizedNodeSt
      * @return A stream writer instance
      */
     public static NormalizedNodeStreamWriter createExclusiveWriter(final JSONCodecFactory codecFactory,
-            final Absolute path, final URI initialNs, final JsonWriter jsonWriter) {
+            final Absolute path, final XMLNamespace initialNs, final JsonWriter jsonWriter) {
         return new Exclusive(codecFactory, SchemaTracker.create(codecFactory.getEffectiveModelContext(), path),
             jsonWriter, new JSONStreamWriterExclusiveRootContext(initialNs));
     }
@@ -183,7 +183,7 @@ public abstract class JSONNormalizedNodeStreamWriter implements NormalizedNodeSt
      * @return A stream writer instance
      */
     public static NormalizedNodeStreamWriter createExclusiveWriter(final JSONCodecFactory codecFactory,
-            final DataNodeContainer rootNode, final URI initialNs, final JsonWriter jsonWriter) {
+            final DataNodeContainer rootNode, final XMLNamespace initialNs, final JsonWriter jsonWriter) {
         return new Exclusive(codecFactory, SchemaTracker.create(rootNode), jsonWriter,
             new JSONStreamWriterExclusiveRootContext(initialNs));
     }
@@ -208,7 +208,7 @@ public abstract class JSONNormalizedNodeStreamWriter implements NormalizedNodeSt
      * @return A stream writer instance
      */
     public static NormalizedNodeStreamWriter createNestedWriter(final JSONCodecFactory codecFactory,
-            final SchemaPath path, final URI initialNs, final JsonWriter jsonWriter) {
+            final SchemaPath path, final XMLNamespace initialNs, final JsonWriter jsonWriter) {
         return new Nested(codecFactory, SchemaTracker.create(codecFactory.getEffectiveModelContext(), path), jsonWriter,
             new JSONStreamWriterSharedRootContext(initialNs));
     }
@@ -233,7 +233,7 @@ public abstract class JSONNormalizedNodeStreamWriter implements NormalizedNodeSt
      * @return A stream writer instance
      */
     public static NormalizedNodeStreamWriter createNestedWriter(final JSONCodecFactory codecFactory,
-            final Absolute path, final URI initialNs, final JsonWriter jsonWriter) {
+            final Absolute path, final XMLNamespace initialNs, final JsonWriter jsonWriter) {
         return new Nested(codecFactory, SchemaTracker.create(codecFactory.getEffectiveModelContext(), path), jsonWriter,
             new JSONStreamWriterSharedRootContext(initialNs));
     }
@@ -258,7 +258,7 @@ public abstract class JSONNormalizedNodeStreamWriter implements NormalizedNodeSt
      * @return A stream writer instance
      */
     public static NormalizedNodeStreamWriter createNestedWriter(final JSONCodecFactory codecFactory,
-            final DataNodeContainer rootNode, final URI initialNs, final JsonWriter jsonWriter) {
+            final DataNodeContainer rootNode, final XMLNamespace initialNs, final JsonWriter jsonWriter) {
         return new Nested(codecFactory, SchemaTracker.create(rootNode), jsonWriter,
             new JSONStreamWriterSharedRootContext(initialNs));
     }
index 9f34573162ad7b6c5247aeb5cc0b1d454939ff78..80b4fa6fe221feb784326c7ce859f237d381df34 100644 (file)
@@ -14,11 +14,11 @@ import com.google.common.base.MoreObjects;
 import com.google.common.base.MoreObjects.ToStringHelper;
 import com.google.gson.stream.JsonWriter;
 import java.io.IOException;
-import java.net.URI;
 import java.util.Optional;
 import org.eclipse.jdt.annotation.NonNull;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.common.QNameModule;
+import org.opendaylight.yangtools.yang.common.XMLNamespace;
 import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext;
 import org.opendaylight.yangtools.yang.model.api.Module;
 
@@ -94,7 +94,7 @@ abstract class JSONStreamWriterContext {
      *
      * @return Namespace as URI
      */
-    protected abstract @NonNull URI getNamespace();
+    protected abstract @NonNull XMLNamespace getNamespace();
 
     /**
      * Emit the start of an element.
index 7fed467695be955f698176fe6e1b8453c5031939..314b87287a8739ef3d91004a11036624e14238b6 100644 (file)
@@ -9,11 +9,11 @@ package org.opendaylight.yangtools.yang.data.codec.gson;
 
 import com.google.gson.stream.JsonWriter;
 import java.io.IOException;
-import java.net.URI;
+import org.opendaylight.yangtools.yang.common.XMLNamespace;
 import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext;
 
 final class JSONStreamWriterExclusiveRootContext extends JSONStreamWriterRootContext {
-    JSONStreamWriterExclusiveRootContext(final URI namespace) {
+    JSONStreamWriterExclusiveRootContext(final XMLNamespace namespace) {
         super(namespace, true);
     }
 
index 3c00d0275303d27869dc106f90b64935503c72c9..67132b89045a3c0edcd407a63818ab51ae42bf30 100644 (file)
@@ -9,8 +9,8 @@ package org.opendaylight.yangtools.yang.data.codec.gson;
 
 import static java.util.Objects.requireNonNull;
 
-import java.net.URI;
 import org.opendaylight.yangtools.yang.common.QName;
+import org.opendaylight.yangtools.yang.common.XMLNamespace;
 
 /**
  * Abstract base class for {@link JSONNormalizedNodeStreamWriter} recursion
@@ -34,7 +34,7 @@ abstract class JSONStreamWriterQNameContext extends JSONStreamWriterContext {
     }
 
     @Override
-    protected final URI getNamespace() {
+    protected final XMLNamespace getNamespace() {
         return qname.getNamespace();
     }
 }
index 0ac5aad36b46765f44cb4ce335116966f19935c1..912fa4ea729eaca1f64caad6bfc6326ca7bcd148 100644 (file)
@@ -7,14 +7,14 @@
  */
 package org.opendaylight.yangtools.yang.data.codec.gson;
 
-import java.net.URI;
+import org.opendaylight.yangtools.yang.common.XMLNamespace;
 
 /**
  * The root node of a particular {@link JSONNormalizedNodeStreamWriter} instance.
  * It holds the base namespace and can never be removed from the stack.
  */
 abstract class JSONStreamWriterRootContext extends JSONStreamWriterURIContext {
-    JSONStreamWriterRootContext(final URI namespace, final boolean mandatory) {
+    JSONStreamWriterRootContext(final XMLNamespace namespace, final boolean mandatory) {
         super(null, namespace, mandatory);
     }
 }
index 858637af2b0b811b3b52c6b4390ba3983eea4959..96a704586e36c8ee597f8b752ba25265049186d9 100644 (file)
@@ -9,10 +9,10 @@ package org.opendaylight.yangtools.yang.data.codec.gson;
 
 import com.google.gson.stream.JsonWriter;
 import java.io.IOException;
-import java.net.URI;
+import org.opendaylight.yangtools.yang.common.XMLNamespace;
 
 final class JSONStreamWriterSharedRootContext extends JSONStreamWriterRootContext {
-    JSONStreamWriterSharedRootContext(final URI namespace) {
+    JSONStreamWriterSharedRootContext(final XMLNamespace namespace) {
         super(namespace, false);
     }
 
index 212c077ae42caa12a7a21774c7c1d4fc06338f7b..889f737c1c34a031d48a09710bdf12f592ec7d23 100644 (file)
@@ -9,7 +9,7 @@ package org.opendaylight.yangtools.yang.data.codec.gson;
 
 import com.google.gson.stream.JsonWriter;
 import java.io.IOException;
-import java.net.URI;
+import org.opendaylight.yangtools.yang.common.XMLNamespace;
 import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext;
 
 /**
@@ -17,19 +17,20 @@ import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext;
  * recursion. It only tracks the namespace associated with this node.
  */
 abstract class JSONStreamWriterURIContext extends JSONStreamWriterContext {
-    private final URI namespace;
+    private final XMLNamespace namespace;
 
-    JSONStreamWriterURIContext(final JSONStreamWriterContext parent, final URI namespace) {
+    JSONStreamWriterURIContext(final JSONStreamWriterContext parent, final XMLNamespace namespace) {
         this(parent, namespace, false);
     }
 
-    JSONStreamWriterURIContext(final JSONStreamWriterContext parent, final URI namespace, final boolean mandatory) {
+    JSONStreamWriterURIContext(final JSONStreamWriterContext parent, final XMLNamespace namespace,
+            final boolean mandatory) {
         super(parent, mandatory);
         this.namespace = namespace;
     }
 
     @Override
-    protected final URI getNamespace() {
+    protected final XMLNamespace getNamespace() {
         return namespace;
     }
 
index 371d98c0456610da0073064fb90961c31ec07d83..a1d2e49bb7469b92f953a08105441b847662e0b4 100644 (file)
@@ -21,7 +21,6 @@ import java.io.Closeable;
 import java.io.EOFException;
 import java.io.Flushable;
 import java.io.IOException;
-import java.net.URI;
 import java.util.AbstractMap.SimpleImmutableEntry;
 import java.util.ArrayDeque;
 import java.util.Deque;
@@ -32,6 +31,7 @@ import java.util.Set;
 import javax.xml.transform.dom.DOMSource;
 import org.eclipse.jdt.annotation.NonNull;
 import org.opendaylight.yangtools.util.xml.UntrustedXML;
+import org.opendaylight.yangtools.yang.common.XMLNamespace;
 import org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeStreamWriter;
 import org.opendaylight.yangtools.yang.data.util.AbstractNodeDataWithSchema;
 import org.opendaylight.yangtools.yang.data.util.AnyXmlNodeDataWithSchema;
@@ -67,7 +67,7 @@ public final class JsonParserStream implements Closeable, Flushable {
     static final String ANYXML_ARRAY_ELEMENT_ID = "array-element";
 
     private static final Logger LOG = LoggerFactory.getLogger(JsonParserStream.class);
-    private final Deque<URI> namespaces = new ArrayDeque<>();
+    private final Deque<XMLNamespace> namespaces = new ArrayDeque<>();
     private final NormalizedNodeStreamWriter writer;
     private final JSONCodecFactory codecs;
     private final DataSchemaNode parentNode;
@@ -280,9 +280,10 @@ public final class JsonParserStream implements Closeable, Flushable {
                 while (in.hasNext()) {
                     final String jsonElementName = in.nextName();
                     final DataSchemaNode parentSchema = parent.getSchema();
-                    final Entry<String, URI> namespaceAndName = resolveNamespace(jsonElementName, parentSchema);
+                    final Entry<String, XMLNamespace> namespaceAndName =
+                        resolveNamespace(jsonElementName, parentSchema);
                     final String localName = namespaceAndName.getKey();
-                    final URI namespace = namespaceAndName.getValue();
+                    final XMLNamespace namespace = namespaceAndName.getValue();
                     if (lenient && (localName == null || namespace == null)) {
                         LOG.debug("Schema node with name {} was not found under {}", localName,
                             parentSchema.getQName());
@@ -349,15 +350,15 @@ public final class JsonParserStream implements Closeable, Flushable {
         namespaces.pop();
     }
 
-    private void addNamespace(final URI namespace) {
+    private void addNamespace(final XMLNamespace namespace) {
         namespaces.push(namespace);
     }
 
-    private Entry<String, URI> resolveNamespace(final String childName, final DataSchemaNode dataSchemaNode) {
+    private Entry<String, XMLNamespace> resolveNamespace(final String childName, final DataSchemaNode dataSchemaNode) {
         final int lastIndexOfColon = childName.lastIndexOf(':');
         String moduleNamePart = null;
         String nodeNamePart = null;
-        URI namespace = null;
+        XMLNamespace namespace = null;
         if (lastIndexOfColon != -1) {
             moduleNamePart = childName.substring(0, lastIndexOfColon);
             nodeNamePart = childName.substring(lastIndexOfColon + 1);
@@ -370,7 +371,7 @@ public final class JsonParserStream implements Closeable, Flushable {
         }
 
         if (namespace == null) {
-            final Set<URI> potentialUris = resolveAllPotentialNamespaces(nodeNamePart, dataSchemaNode);
+            final Set<XMLNamespace> potentialUris = resolveAllPotentialNamespaces(nodeNamePart, dataSchemaNode);
             if (potentialUris.contains(getCurrentNamespace())) {
                 namespace = getCurrentNamespace();
             } else if (potentialUris.size() == 1) {
@@ -387,9 +388,9 @@ public final class JsonParserStream implements Closeable, Flushable {
         return new SimpleImmutableEntry<>(nodeNamePart, namespace);
     }
 
-    private String toModuleNames(final Set<URI> potentialUris) {
+    private String toModuleNames(final Set<XMLNamespace> potentialUris) {
         final StringBuilder builder = new StringBuilder();
-        for (final URI potentialUri : potentialUris) {
+        for (final XMLNamespace potentialUri : potentialUris) {
             builder.append('\n');
             //FIXME how to get information about revision from JSON input? currently first available is used.
             builder.append(codecs.getEffectiveModelContext().findModules(potentialUri).iterator().next().getName());
@@ -397,8 +398,9 @@ public final class JsonParserStream implements Closeable, Flushable {
         return builder.toString();
     }
 
-    private Set<URI> resolveAllPotentialNamespaces(final String elementName, final DataSchemaNode dataSchemaNode) {
-        final Set<URI> potentialUris = new HashSet<>();
+    private Set<XMLNamespace> resolveAllPotentialNamespaces(final String elementName,
+            final DataSchemaNode dataSchemaNode) {
+        final Set<XMLNamespace> potentialUris = new HashSet<>();
         final Set<ChoiceSchemaNode> choices = new HashSet<>();
         if (dataSchemaNode instanceof DataNodeContainer) {
             for (final DataSchemaNode childSchemaNode : ((DataNodeContainer) dataSchemaNode).getChildNodes()) {
@@ -418,7 +420,7 @@ public final class JsonParserStream implements Closeable, Flushable {
         return potentialUris;
     }
 
-    private URI getCurrentNamespace() {
+    private XMLNamespace getCurrentNamespace() {
         return namespaces.peek();
     }
 
index 41a34b3db9749796e962dac081bd52f4d8763549..b1aed2332f3a7f6c931232d0934454f291487cef 100644 (file)
@@ -18,7 +18,6 @@ import java.io.FileReader;
 import java.io.IOException;
 import java.io.StringWriter;
 import java.io.Writer;
-import java.net.URI;
 import java.net.URISyntaxException;
 import java.nio.charset.StandardCharsets;
 import java.util.Base64;
@@ -28,6 +27,7 @@ import org.junit.Test;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.common.QNameModule;
 import org.opendaylight.yangtools.yang.common.Revision;
+import org.opendaylight.yangtools.yang.common.XMLNamespace;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier;
 import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode;
 import org.opendaylight.yangtools.yang.data.api.schema.LeafNode;
@@ -42,7 +42,7 @@ import org.opendaylight.yangtools.yang.test.util.YangParserTestUtils;
 
 public class Bug5446Test {
 
-    private static final QNameModule FOO_MODULE = QNameModule.create(URI.create("foo"), Revision.of("2015-11-05"));
+    private static final QNameModule FOO_MODULE = QNameModule.create(XMLNamespace.of("foo"), Revision.of("2015-11-05"));
     private static final QName ROOT_QNAME = QName.create(FOO_MODULE, "root");
     private static final QName IP_ADDRESS_QNAME = QName.create(FOO_MODULE, "ip-address");
     private static EffectiveModelContext schemaContext;
index 960ccdce46272404a0b60c48ce59d70d6095186a..7d25227d46a6dc9f0083a6f863097b7c181a7bc2 100644 (file)
@@ -16,10 +16,10 @@ import java.io.FileReader;
 import java.io.IOException;
 import java.io.StringWriter;
 import java.io.Writer;
-import java.net.URI;
 import java.nio.charset.StandardCharsets;
 import org.junit.Test;
 import org.opendaylight.yangtools.yang.common.QName;
+import org.opendaylight.yangtools.yang.common.XMLNamespace;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier;
 import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode;
 import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
@@ -65,7 +65,7 @@ public class Bug7246Test {
 
         final NormalizedNodeStreamWriter jsonStream = JSONNormalizedNodeStreamWriter.createExclusiveWriter(
                 JSONCodecFactorySupplier.DRAFT_LHOTKA_NETMOD_YANG_JSON_02.getShared(schemaContext), path,
-                URI.create(NS), JsonWriterFactory.createJsonWriter(writer, 2));
+                XMLNamespace.of(NS), JsonWriterFactory.createJsonWriter(writer, 2));
         final NormalizedNodeWriter nodeWriter = NormalizedNodeWriter.forStreamWriter(jsonStream);
         nodeWriter.write(inputStructure);
 
index ba6ede5e170a915a8f4d8643aec56592fb9fb501..ae2371876b9542519c49dbcaa45caba8befa8be5 100644 (file)
@@ -23,7 +23,6 @@ import com.google.gson.stream.JsonReader;
 import com.google.gson.stream.JsonWriter;
 import java.io.IOException;
 import java.io.StringReader;
-import java.net.URI;
 import java.net.URISyntaxException;
 import org.junit.AfterClass;
 import org.junit.BeforeClass;
@@ -31,6 +30,7 @@ import org.junit.Test;
 import org.mockito.ArgumentCaptor;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.common.QNameModule;
+import org.opendaylight.yangtools.yang.common.XMLNamespace;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.AugmentationIdentifier;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier;
@@ -50,8 +50,8 @@ import org.opendaylight.yangtools.yang.model.api.type.InstanceIdentifierTypeDefi
 import org.opendaylight.yangtools.yang.test.util.YangParserTestUtils;
 
 public class Bug8083Test {
-    private static final QNameModule FOOMOD = QNameModule.create(URI.create("http://example.com/foomod"));
-    private static final QNameModule BARMOD = QNameModule.create(URI.create("http://example.com/barmod"));
+    private static final QNameModule FOOMOD = QNameModule.create(XMLNamespace.of("http://example.com/foomod"));
+    private static final QNameModule BARMOD = QNameModule.create(XMLNamespace.of("http://example.com/barmod"));
 
     private static final QName FOO_QNAME = QName.create(FOOMOD, "foo");
     private static final QName FOOLIST_QNAME = QName.create(FOOMOD, "foo-list");
index 12c02cd16a4fab6d17101eaceb9128aafba69973..61e1c20ca8e8a9ef7709f27ab2b91d68fd58de71 100644 (file)
@@ -9,11 +9,11 @@ package org.opendaylight.yangtools.yang.data.codec.gson;
 
 import com.google.common.collect.ImmutableMap;
 import com.google.common.collect.ImmutableSet;
-import java.net.URI;
 import java.util.Arrays;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.common.QNameModule;
 import org.opendaylight.yangtools.yang.common.Revision;
+import org.opendaylight.yangtools.yang.common.XMLNamespace;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.AugmentationIdentifier;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier;
@@ -31,10 +31,10 @@ import org.opendaylight.yangtools.yang.data.api.schema.UnkeyedListNode;
 import org.opendaylight.yangtools.yang.data.impl.schema.Builders;
 
 public final class TestingNormalizedNodeStructuresCreator {
-    private static final QNameModule COMPLEX_JSON = QNameModule.create(URI.create("ns:complex:json"),
-        Revision.of("2014-08-11"));
-    private static final QNameModule COMPLEX_JSON_AUG = QNameModule.create(URI.create("ns:complex:json:augmentation"),
-        Revision.of("2014-08-14"));
+    private static final QNameModule COMPLEX_JSON =
+        QNameModule.create(XMLNamespace.of("ns:complex:json"), Revision.of("2014-08-11"));
+    private static final QNameModule COMPLEX_JSON_AUG =
+        QNameModule.create(XMLNamespace.of("ns:complex:json:augmentation"), Revision.of("2014-08-14"));
 
     private TestingNormalizedNodeStructuresCreator() {
         throw new UnsupportedOperationException();
index e0d9b7d1ec9df90a12bb8bec4b1874ee7564faa0..e1b9506da281765e65e8ca64db44c1986ec55de1 100644 (file)
@@ -10,7 +10,6 @@ package org.opendaylight.yangtools.yang.data.codec.xml;
 import static com.google.common.base.Preconditions.checkArgument;
 import static java.util.Objects.requireNonNull;
 
-import java.net.URI;
 import java.util.Iterator;
 import java.util.Map.Entry;
 import javax.xml.namespace.NamespaceContext;
@@ -18,6 +17,7 @@ import javax.xml.stream.XMLStreamException;
 import javax.xml.stream.XMLStreamWriter;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.common.QNameModule;
+import org.opendaylight.yangtools.yang.common.XMLNamespace;
 import org.opendaylight.yangtools.yang.data.util.codec.IdentityCodecUtil;
 import org.opendaylight.yangtools.yang.data.util.codec.QNameCodecUtil;
 import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext;
@@ -45,7 +45,8 @@ final class IdentityrefXmlCodec implements XmlCodec<QName> {
             }
 
             final String prefixedNS = ctx.getNamespaceURI(prefix);
-            final Iterator<? extends Module> modules = schemaContext.findModules(URI.create(prefixedNS)).iterator();
+            final Iterator<? extends Module> modules =
+                schemaContext.findModules(XMLNamespace.of(prefixedNS)).iterator();
             checkArgument(modules.hasNext(), "Could not find module for namespace %s", prefixedNS);
             return modules.next().getQNameModule();
         }).getQName();
@@ -56,7 +57,7 @@ final class IdentityrefXmlCodec implements XmlCodec<QName> {
         final RandomPrefix prefixes = new RandomPrefix(ctx.getNamespaceContext());
         final String str = QNameCodecUtil.encodeQName(value, uri -> prefixes.encodePrefix(uri.getNamespace()));
 
-        for (Entry<URI, String> e : prefixes.getPrefixes()) {
+        for (Entry<XMLNamespace, String> e : prefixes.getPrefixes()) {
             ctx.writeNamespace(e.getValue(), e.getKey().toString());
         }
         ctx.writeCharacters(str);
index 674efb19085c2e9c4743d2a9ec0b9f2c259a7dd7..bc3213b9e9a5aa69ed8793b61a9f809bd2204daa 100644 (file)
@@ -12,10 +12,10 @@ import static com.google.common.base.Preconditions.checkArgument;
 import com.google.common.annotations.VisibleForTesting;
 import com.google.common.collect.BiMap;
 import com.google.common.collect.HashBiMap;
-import java.net.URI;
 import java.util.Map.Entry;
 import javax.xml.XMLConstants;
 import javax.xml.namespace.NamespaceContext;
+import org.opendaylight.yangtools.yang.common.XMLNamespace;
 
 class RandomPrefix {
     // 32 characters, carefully chosen
@@ -26,18 +26,18 @@ class RandomPrefix {
     private int counter = 0;
 
     // BiMap to make values lookup faster
-    private final BiMap<URI, String> prefixes = HashBiMap.create();
+    private final BiMap<XMLNamespace, String> prefixes = HashBiMap.create();
     private final NamespaceContext context;
 
     RandomPrefix(final NamespaceContext context) {
         this.context = context;
     }
 
-    Iterable<Entry<URI, String>> getPrefixes() {
+    Iterable<Entry<XMLNamespace, String>> getPrefixes() {
         return prefixes.entrySet();
     }
 
-    String encodePrefix(final URI namespace) {
+    String encodePrefix(final XMLNamespace namespace) {
         String prefix = prefixes.get(namespace);
         if (prefix != null) {
             return prefix;
index 68a5ae20bc84db8ea173f96df1edbd41a7aaa091..1fb1cf577326f37c1e26ea8b3227f13b2d715551 100644 (file)
@@ -7,11 +7,11 @@
  */
 package org.opendaylight.yangtools.yang.data.codec.xml;
 
-import java.net.URI;
 import java.util.Map.Entry;
 import javax.xml.namespace.NamespaceContext;
 import org.eclipse.jdt.annotation.NonNull;
 import org.opendaylight.yangtools.yang.common.QName;
+import org.opendaylight.yangtools.yang.common.XMLNamespace;
 import org.opendaylight.yangtools.yang.data.util.AbstractStringInstanceIdentifierCodec;
 import org.opendaylight.yangtools.yang.data.util.DataSchemaContextTree;
 import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext;
@@ -26,12 +26,12 @@ final class RandomPrefixInstanceIdentifierSerializer extends AbstractStringInsta
         prefixes = new RandomPrefix(nsContext);
     }
 
-    Iterable<Entry<URI, String>> getPrefixes() {
+    Iterable<Entry<XMLNamespace, String>> getPrefixes() {
         return prefixes.getPrefixes();
     }
 
     @Override
-    protected String prefixForNamespace(final URI namespace) {
+    protected String prefixForNamespace(final XMLNamespace namespace) {
         return prefixes.encodePrefix(namespace);
     }
 
index c929dcee202927720b2e00a80ec4b6ab35421e78..32ad7d523337c07ef0935075d7696a8bd10130a1 100644 (file)
@@ -10,10 +10,10 @@ package org.opendaylight.yangtools.yang.data.codec.xml;
 import static com.google.common.base.Verify.verifyNotNull;
 import static java.util.Objects.requireNonNull;
 
-import java.net.URI;
 import java.util.Map.Entry;
 import javax.xml.stream.XMLStreamException;
 import org.eclipse.jdt.annotation.NonNull;
+import org.opendaylight.yangtools.yang.common.XMLNamespace;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
 import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext;
 import org.opendaylight.yangtools.yang.model.api.EffectiveModelContextProvider;
@@ -42,7 +42,7 @@ final class SchemaAwareXMLStreamWriterUtils extends XMLStreamWriterUtils impleme
             writer.getNamespaceContext());
         String serializedValue = iiCodec.serialize(value);
 
-        for (Entry<URI, String> e : iiCodec.getPrefixes()) {
+        for (Entry<XMLNamespace, String> e : iiCodec.getPrefixes()) {
             writer.writeNamespace(e.getValue(), e.getKey().toString());
         }
 
index 24949d37a85a74bd146b312655858bed034921a8..28b18398b5bcce974aa4de642c64ad41c7f00c23 100644 (file)
@@ -11,7 +11,6 @@ import static java.util.Objects.requireNonNull;
 
 import com.google.common.base.Strings;
 import java.io.IOException;
-import java.net.URI;
 import java.util.Set;
 import java.util.concurrent.ConcurrentHashMap;
 import javax.xml.XMLConstants;
@@ -21,6 +20,7 @@ import javax.xml.stream.XMLStreamException;
 import javax.xml.stream.XMLStreamReader;
 import javax.xml.stream.XMLStreamWriter;
 import org.opendaylight.yangtools.yang.common.QName;
+import org.opendaylight.yangtools.yang.common.XMLNamespace;
 import org.opendaylight.yangtools.yang.data.api.schema.NormalizedAnydata;
 import org.opendaylight.yangtools.yang.data.util.SingleChildDataNodeContainer;
 import org.slf4j.Logger;
@@ -117,7 +117,7 @@ final class StreamWriterFacade extends ValueWriter {
         }
     }
 
-    String getPrefix(final URI uri, final String str) throws XMLStreamException {
+    String getPrefix(final XMLNamespace uri, final String str) throws XMLStreamException {
         final String prefix = writer.getPrefix(str);
         if (prefix != null) {
             return prefix;
index c2e0961c831ba20df3284ff9ae15c7b2778221eb..ab7255b3f09a83049d23b028964ab2a8d0969d34 100644 (file)
@@ -18,7 +18,6 @@ import com.google.common.collect.ImmutableMap;
 import java.io.Closeable;
 import java.io.Flushable;
 import java.io.IOException;
-import java.net.URI;
 import java.net.URISyntaxException;
 import java.util.AbstractMap.SimpleImmutableEntry;
 import java.util.Deque;
@@ -52,6 +51,7 @@ import org.opendaylight.yangtools.rfc8528.model.api.MountPointSchemaNode;
 import org.opendaylight.yangtools.rfc8528.model.api.SchemaMountConstants;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.common.QNameModule;
+import org.opendaylight.yangtools.yang.common.XMLNamespace;
 import org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeStreamWriter;
 import org.opendaylight.yangtools.yang.data.util.AbstractMountPointDataWithSchema;
 import org.opendaylight.yangtools.yang.data.util.AbstractNodeDataWithSchema;
@@ -110,7 +110,7 @@ public final class XmlParserStream implements Closeable, Flushable {
      *             annotations.
      */
     @Deprecated
-    public static final QNameModule LEGACY_ATTRIBUTE_NAMESPACE = QNameModule.create(URI.create("")).intern();
+    public static final QNameModule LEGACY_ATTRIBUTE_NAMESPACE = QNameModule.create(XMLNamespace.of("")).intern();
 
     private static final Logger LOG = LoggerFactory.getLogger(XmlParserStream.class);
     private static final String XML_STANDARD_VERSION = "1.0";
@@ -459,7 +459,7 @@ public final class XmlParserStream implements Closeable, Flushable {
                     final String elementNS = in.getNamespaceURI();
                     final boolean added = namesakes.add(new SimpleImmutableEntry<>(elementNS, xmlElementName));
 
-                    final URI nsUri;
+                    final XMLNamespace nsUri;
                     try {
                         nsUri = rawXmlNamespace(elementNS).getNamespace();
                     } catch (IllegalArgumentException e) {
@@ -546,8 +546,8 @@ public final class XmlParserStream implements Closeable, Flushable {
         return last instanceof ListSchemaNode || last instanceof LeafListSchemaNode;
     }
 
-    private static void addMountPointChild(final MountPointData mount, final URI namespace, final String localName,
-            final DOMSource source) {
+    private static void addMountPointChild(final MountPointData mount, final XMLNamespace namespace,
+            final String localName, final DOMSource source) {
         final DOMSourceMountPointChild child = new DOMSourceMountPointChild(source);
         if (YangLibraryConstants.MODULE_NAMESPACE.equals(namespace)) {
             final Optional<ContainerName> optName = ContainerName.forLocalName(localName);
@@ -648,13 +648,13 @@ public final class XmlParserStream implements Closeable, Flushable {
 
     private Optional<QNameModule> resolveXmlNamespace(final String xmlNamespace) {
         return resolvedNamespaces.computeIfAbsent(xmlNamespace, nsUri -> {
-            final Iterator<? extends Module> it = codecs.getEffectiveModelContext().findModules(URI.create(nsUri))
+            final Iterator<? extends Module> it = codecs.getEffectiveModelContext().findModules(XMLNamespace.of(nsUri))
                     .iterator();
             return it.hasNext() ? Optional.of(it.next().getQNameModule()) : Optional.empty();
         });
     }
 
     private QNameModule rawXmlNamespace(final String xmlNamespace) {
-        return rawNamespaces.computeIfAbsent(xmlNamespace, nsUri -> QNameModule.create(URI.create(nsUri)));
+        return rawNamespaces.computeIfAbsent(xmlNamespace, nsUri -> QNameModule.create(XMLNamespace.of(nsUri)));
     }
 }
index 126a3343ce38f8e9a74e43fd6946a69493f26d99..47bd2ba769923804cc413301693cb1be974a9840 100644 (file)
@@ -10,7 +10,6 @@ package org.opendaylight.yangtools.yang.data.codec.xml;
 import static com.google.common.base.Preconditions.checkArgument;
 import static java.util.Objects.requireNonNull;
 
-import java.net.URI;
 import java.util.ArrayDeque;
 import java.util.Deque;
 import java.util.Iterator;
@@ -18,6 +17,7 @@ import javax.xml.namespace.NamespaceContext;
 import javax.xml.stream.XMLStreamException;
 import javax.xml.stream.XMLStreamWriter;
 import org.eclipse.jdt.annotation.NonNull;
+import org.opendaylight.yangtools.yang.common.XMLNamespace;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
 import org.opendaylight.yangtools.yang.data.util.AbstractModuleStringInstanceIdentifierCodec;
 import org.opendaylight.yangtools.yang.data.util.DataSchemaContextTree;
@@ -44,12 +44,12 @@ final class XmlStringInstanceIdentifierCodec extends AbstractModuleStringInstanc
     @Override
     protected Module moduleForPrefix(final String prefix) {
         final String prefixedNS = getNamespaceContext().getNamespaceURI(prefix);
-        final Iterator<? extends Module> modules = context.findModules(URI.create(prefixedNS)).iterator();
+        final Iterator<? extends Module> modules = context.findModules(XMLNamespace.of(prefixedNS)).iterator();
         return modules.hasNext() ? modules.next() : null;
     }
 
     @Override
-    protected String prefixForNamespace(final URI namespace) {
+    protected String prefixForNamespace(final XMLNamespace namespace) {
         final Iterator<? extends Module> modules = context.findModules(namespace).iterator();
         return modules.hasNext() ? modules.next().getName() : null;
     }
index 34d6362f5602e426fdaab4ba6dc38d920d85bed9..6d9383b765c855c118ff782a4dcb0a398b209b17 100644 (file)
@@ -13,7 +13,6 @@ import static org.junit.Assert.assertTrue;
 import static org.junit.Assert.fail;
 
 import java.io.InputStream;
-import java.net.URI;
 import javax.xml.stream.XMLStreamReader;
 import org.junit.Before;
 import org.junit.Test;
@@ -21,6 +20,7 @@ import org.opendaylight.yangtools.util.xml.UntrustedXML;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.common.QNameModule;
 import org.opendaylight.yangtools.yang.common.Revision;
+import org.opendaylight.yangtools.yang.common.XMLNamespace;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier;
 import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode;
 import org.opendaylight.yangtools.yang.data.api.schema.DataContainerChild;
@@ -39,8 +39,8 @@ public class Bug5396Test {
     private EffectiveModelContext schemaContext;
 
     @Before
-    public void setUp() throws Exception {
-        fooModuleQName = QNameModule.create(new URI("foo"), Revision.of("2016-03-22"));
+    public void setUp() {
+        fooModuleQName = QNameModule.create(XMLNamespace.of("foo"), Revision.of("2016-03-22"));
         schemaContext = YangParserTestUtils.parseYangResource("/bug5396/yang/foo.yang");
     }
 
index 0aed2b63391fec5cf3671455cac0b03cc7e6fdd8..ba0c1c784505de7cb57480d82b5e1e1c5d6a632d 100644 (file)
@@ -12,7 +12,6 @@ import static java.util.Objects.requireNonNull;
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.StringWriter;
-import java.net.URI;
 import java.util.Base64;
 import javax.xml.stream.XMLStreamException;
 import javax.xml.stream.XMLStreamWriter;
@@ -31,6 +30,7 @@ import org.opendaylight.yangtools.util.xml.UntrustedXML;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.common.QNameModule;
 import org.opendaylight.yangtools.yang.common.Revision;
+import org.opendaylight.yangtools.yang.common.XMLNamespace;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier;
 import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode;
 import org.opendaylight.yangtools.yang.data.api.schema.DataContainerChild;
@@ -47,7 +47,7 @@ import org.w3c.dom.Node;
 import org.xml.sax.SAXException;
 
 public class Bug5446Test extends XMLTestCase {
-    private static final QNameModule FOO_MODULE = QNameModule.create(URI.create("foo"), Revision.of("2015-11-05"));
+    private static final QNameModule FOO_MODULE = QNameModule.create(XMLNamespace.of("foo"), Revision.of("2015-11-05"));
     private static final QName ROOT_QNAME = QName.create(FOO_MODULE, "root");
     private static final QName IP_ADDRESS_QNAME = QName.create(FOO_MODULE, "ip-address");
 
index c95f1c4e81964507cbc1ef73186d14719f434d43..d58d5363cc07eb33c0dbd3d8afab17fece18aaa5 100644 (file)
@@ -12,7 +12,6 @@ import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertTrue;
 
 import java.io.InputStream;
-import java.net.URI;
 import java.util.Collection;
 import java.util.Optional;
 import javax.xml.stream.XMLStreamReader;
@@ -22,6 +21,7 @@ import org.opendaylight.yangtools.util.xml.UntrustedXML;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.common.QNameModule;
 import org.opendaylight.yangtools.yang.common.Revision;
+import org.opendaylight.yangtools.yang.common.XMLNamespace;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifierWithPredicates;
 import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode;
@@ -38,7 +38,7 @@ import org.opendaylight.yangtools.yang.model.api.Module;
 import org.opendaylight.yangtools.yang.test.util.YangParserTestUtils;
 
 public class Bug890Test {
-    private static final QNameModule FOO_MODULE = QNameModule.create(URI.create("foo"), Revision.of("2018-07-10"));
+    private static final QNameModule FOO_MODULE = QNameModule.create(XMLNamespace.of("foo"), Revision.of("2018-07-10"));
     private static final QName OUTGOING_LABELS_QNAME = QName.create(FOO_MODULE, "outgoing-labels");
     private static final QName INDEX_QNAME = QName.create(FOO_MODULE, "index");
 
index 9e6d5f5a15d99c44e3c2f0ddb7763bb2f55210e6..fefd76779f1fcfd9f0ffc2d3f0466e442a811b7a 100644 (file)
@@ -20,7 +20,6 @@ import com.google.common.collect.ImmutableSet;
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.StringWriter;
-import java.net.URI;
 import java.util.Arrays;
 import java.util.Collection;
 import java.util.HashSet;
@@ -47,6 +46,7 @@ import org.opendaylight.yangtools.util.xml.UntrustedXML;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.common.Revision;
 import org.opendaylight.yangtools.yang.common.Uint32;
+import org.opendaylight.yangtools.yang.common.XMLNamespace;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.AugmentationIdentifier;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifierWithPredicates;
@@ -226,7 +226,7 @@ public class NormalizedNodeXmlTranslationTest {
     }
 
     private static NodeIdentifier getNodeIdentifier(final String localName) {
-        return new NodeIdentifier(QName.create(URI.create(NAMESPACE), REVISION, localName));
+        return new NodeIdentifier(QName.create(XMLNamespace.of(NAMESPACE), REVISION, localName));
     }
 
     private static AugmentationIdentifier getAugmentIdentifier(final String... childNames) {
index b69ec8b7cd8f5880a267f8e2e7bc01775153c826..5043b809f6fdade98a36008bb62cf04150917b63 100644 (file)
@@ -14,7 +14,6 @@ import com.google.common.collect.ImmutableSet;
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.StringWriter;
-import java.net.URI;
 import java.util.Collection;
 import java.util.HashMap;
 import java.util.Map;
@@ -43,6 +42,7 @@ import org.junit.runners.Parameterized;
 import org.opendaylight.yangtools.util.xml.UntrustedXML;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.common.QNameModule;
+import org.opendaylight.yangtools.yang.common.XMLNamespace;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.AugmentationIdentifier;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifierWithPredicates;
@@ -115,7 +115,7 @@ public class NormalizedNodesToXmlTest {
 
     @Before
     public void setup() {
-        bazModule = QNameModule.create(URI.create("baz-namespace"));
+        bazModule = QNameModule.create(XMLNamespace.of("baz-namespace"));
 
         outerContainer = QName.create(bazModule, "outer-container");
 
index 7a2d4e17ba5233ae9eb6d8ba551999c9b4ad7db1..4928b0339b884a7d069b35f53b3d4e28c4e9ef0d 100644 (file)
@@ -11,7 +11,6 @@ import static org.hamcrest.MatcherAssert.assertThat;
 import static org.junit.Assert.assertEquals;
 
 import com.google.common.collect.Iterables;
-import java.net.URI;
 import java.util.ArrayList;
 import java.util.HashSet;
 import java.util.List;
@@ -20,6 +19,7 @@ import org.junit.Test;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.common.QNameModule;
 import org.opendaylight.yangtools.yang.common.Revision;
+import org.opendaylight.yangtools.yang.common.XMLNamespace;
 
 public class RandomPrefixTest {
     static final int MAX_COUNTER = 4000;
@@ -41,13 +41,13 @@ public class RandomPrefixTest {
     }
 
     @Test
-    public void testQNameWithPrefix() throws Exception {
+    public void testQNameWithPrefix() {
         final RandomPrefix a = new RandomPrefix(null);
 
         final List<String> allGenerated = new ArrayList<>();
         for (int i = 0; i < MAX_COUNTER; i++) {
             final String prefix = RandomPrefix.encode(i);
-            final URI uri = new URI("localhost:" + prefix);
+            final XMLNamespace uri = XMLNamespace.of("localhost:" + prefix);
             final QName qname = QName.create(QNameModule.create(uri, Revision.of("2000-01-01")), "local-name");
             allGenerated.add(a.encodePrefix(qname.getNamespace()));
         }
@@ -67,7 +67,7 @@ public class RandomPrefixTest {
     public void test2QNames1Namespace() throws Exception {
         final RandomPrefix a = new RandomPrefix(null);
 
-        final URI uri = URI.create("localhost");
+        final XMLNamespace uri = XMLNamespace.of("localhost");
         final QName qname = QName.create(QNameModule.create(uri, Revision.of("2000-01-01")), "local-name");
         final QName qname2 = QName.create(QNameModule.create(uri, Revision.of("2000-01-01")), "local-name");
 
@@ -78,12 +78,12 @@ public class RandomPrefixTest {
     public void testQNameNoPrefix() throws Exception {
         final RandomPrefix a = new RandomPrefix(null);
 
-        final URI uri = URI.create("localhost");
+        final XMLNamespace uri = XMLNamespace.of("localhost");
         QName qname = QName.create(uri, Revision.of("2000-01-01"), "local-name");
         assertEquals("a", a.encodePrefix(qname.getNamespace()));
         qname = QName.create(QNameModule.create(uri, Revision.of("2000-01-01")), "local-name");
         assertEquals("a", a.encodePrefix(qname.getNamespace()));
-        qname = QName.create(QNameModule.create(URI.create("second"), Revision.of("2000-01-01")), "local-name");
+        qname = QName.create(QNameModule.create(XMLNamespace.of("second"), Revision.of("2000-01-01")), "local-name");
         assertEquals("b", a.encodePrefix(qname.getNamespace()));
 
     }
index 55742cfbdaf44229680d245d518187b4b64b6d26..04e6169b68fcb2f60bfab42452b111b51ca44a9c 100644 (file)
@@ -14,7 +14,6 @@ import com.google.common.collect.ImmutableSet;
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.StringWriter;
-import java.net.URI;
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.HashMap;
@@ -44,6 +43,7 @@ import org.opendaylight.yangtools.util.xml.UntrustedXML;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.common.QNameModule;
 import org.opendaylight.yangtools.yang.common.Revision;
+import org.opendaylight.yangtools.yang.common.XMLNamespace;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.AugmentationIdentifier;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifierWithPredicates;
@@ -118,7 +118,7 @@ public class SchemalessXMLStreamNormalizedNodeStreamWriterTest {
 
     @Before
     public void setup() {
-        foobarModule = QNameModule.create(URI.create("foobar-namespace"), Revision.of("2016-09-19"));
+        foobarModule = QNameModule.create(XMLNamespace.of("foobar-namespace"), Revision.of("2016-09-19"));
 
         outerContainer = QName.create(foobarModule, "outer-container");
 
index 4e4fbf8e55b25088af2f47e6ed52a6f1f406c4f5..4536f99ca8465cc84bc0fb0270868b21aeb96975 100644 (file)
@@ -30,6 +30,7 @@ import org.junit.Test;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.common.QNameModule;
 import org.opendaylight.yangtools.yang.common.Revision;
+import org.opendaylight.yangtools.yang.common.XMLNamespace;
 import org.opendaylight.yangtools.yang.model.api.DataNodeContainer;
 import org.opendaylight.yangtools.yang.model.api.DataSchemaNode;
 import org.opendaylight.yangtools.yang.model.api.LeafSchemaNode;
@@ -68,7 +69,7 @@ public class XmlStreamUtilsTest {
 
     @Test
     public void testWriteIdentityRef() throws Exception {
-        final QNameModule parent = QNameModule.create(URI.create("parent:uri"), Revision.of("2000-01-01"));
+        final QNameModule parent = QNameModule.create(XMLNamespace.of("parent:uri"), Revision.of("2000-01-01"));
 
         String xmlAsString = createXml(writer -> {
             writer.writeStartElement("element");
index 93e3d647002736f99b4e0b6b00801cc03b22719a..c03ed287ae411575f8772937646cd9dc74c7822a 100644 (file)
@@ -17,7 +17,6 @@ import com.google.common.collect.ImmutableList;
 import com.google.common.collect.ImmutableSet;
 import java.io.IOException;
 import java.io.InputStream;
-import java.net.URI;
 import java.net.URISyntaxException;
 import java.util.HashMap;
 import java.util.Map;
@@ -30,6 +29,7 @@ import org.junit.Test;
 import org.opendaylight.yangtools.util.xml.UntrustedXML;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.common.QNameModule;
+import org.opendaylight.yangtools.yang.common.XMLNamespace;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.AugmentationIdentifier;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifierWithPredicates;
@@ -53,10 +53,10 @@ import org.xml.sax.SAXException;
 
 public class XmlToNormalizedNodesTest {
 
-    private static final QNameModule FOO_MODULE = QNameModule.create(URI.create("foo-namespace"));
+    private static final QNameModule FOO_MODULE = QNameModule.create(XMLNamespace.of("foo-namespace"));
     private static final QName PARENT_CONTAINER = QName.create(FOO_MODULE, "parent-container");
 
-    private static final QNameModule BAZ_MODULE = QNameModule.create(URI.create("baz-namespace"));
+    private static final QNameModule BAZ_MODULE = QNameModule.create(XMLNamespace.of("baz-namespace"));
     private static final QName OUTER_CONTAINER = QName.create(BAZ_MODULE, "outer-container");
 
     private static final QName MY_CONTAINER_1 = QName.create(BAZ_MODULE, "my-container-1");
index 6e69ba3fd2064d19c5512e017ce431537ba972c5..5ac539d44c565fabbe9adb8f3ab46bc43c81bb1f 100644 (file)
@@ -12,7 +12,6 @@ import static java.util.Objects.requireNonNull;
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.StringWriter;
-import java.net.URI;
 import java.util.Collection;
 import javax.xml.stream.XMLOutputFactory;
 import javax.xml.stream.XMLStreamException;
@@ -37,6 +36,7 @@ import org.junit.runners.Parameterized;
 import org.opendaylight.yangtools.util.xml.UntrustedXML;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.common.QNameModule;
+import org.opendaylight.yangtools.yang.common.XMLNamespace;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier;
 import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
@@ -82,7 +82,7 @@ public class YT1108Test {
 
     @Before
     public void setup() {
-        fooModule = QNameModule.create(URI.create("foo-namespace"));
+        fooModule = QNameModule.create(XMLNamespace.of("foo-namespace"));
         fooLeafContainer = QName.create(fooModule, "leaf-container");
 
         fooIdentity = QName.create(fooModule, "ident-one");
@@ -122,7 +122,7 @@ public class YT1108Test {
         new XMLTestCase() {}.assertXMLEqual(diff, true);
     }
 
-    private DOMResult convertNormalizedNodeToXml(NormalizedNode normalizedNode)
+    private DOMResult convertNormalizedNodeToXml(final NormalizedNode normalizedNode)
             throws XMLStreamException, IOException {
         final DOMResult domResult = new DOMResult(UntrustedXML.newDocumentBuilder().newDocument());
 
index 577d76f260e7d2790c890ddc34243a088da5920c..5a70ec7a3ed38f6a6690eabce1702b717a95e524 100644 (file)
@@ -12,10 +12,10 @@ import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.fail;
 import static org.opendaylight.yangtools.yang.data.impl.codec.TypeDefinitionAwareCodecTestHelper.getCodec;
 
-import java.net.URI;
 import org.junit.Test;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.common.QNameModule;
+import org.opendaylight.yangtools.yang.common.XMLNamespace;
 import org.opendaylight.yangtools.yang.data.api.codec.StringCodec;
 import org.opendaylight.yangtools.yang.model.api.ContainerSchemaNode;
 import org.opendaylight.yangtools.yang.model.api.LeafSchemaNode;
@@ -35,7 +35,7 @@ public class StringPatternCheckingCodecTest {
             "/string-pattern-checking-codec-test.yang");
         assertNotNull(schemaContext);
 
-        final QNameModule testModuleQName = QNameModule.create(URI.create("string-pattern-checking-codec-test"));
+        final QNameModule testModuleQName = QNameModule.create(XMLNamespace.of("string-pattern-checking-codec-test"));
 
         final Module testModule = schemaContext.findModules("string-pattern-checking-codec-test").iterator().next();
         final ContainerSchemaNode testContainer = (ContainerSchemaNode) testModule.findDataChildByName(
index 9c8ca831f92e7e9a6c3b5be1c673bd828a16d1f9..def573928dfaef1650a95f57ebb5b3594a49a3c7 100644 (file)
@@ -13,11 +13,11 @@ import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertTrue;
 
 import com.google.common.collect.ImmutableList;
-import java.net.URI;
 import java.util.Map;
 import org.junit.Test;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.common.QNameModule;
+import org.opendaylight.yangtools.yang.common.XMLNamespace;
 import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext;
 import org.opendaylight.yangtools.yang.test.util.YangParserTestUtils;
 
@@ -37,7 +37,7 @@ public class Bug7844Test {
         final Map<QName, LeafRefContext> referencingChilds = leafRefContext.getReferencingChilds();
         assertEquals(7, referencingChilds.size());
 
-        final QNameModule bazQNameModule = QNameModule.create(URI.create(BAZ_NS));
+        final QNameModule bazQNameModule = QNameModule.create(XMLNamespace.of(BAZ_NS));
         final LeafRefPath expectedPathToBazTarget = LeafRefPath.create(true,
                 new QNameWithPredicateImpl(bazQNameModule, "root", ImmutableList.of()),
                 new QNameWithPredicateImpl(bazQNameModule, "target", ImmutableList.of()));
@@ -49,7 +49,7 @@ public class Bug7844Test {
         assertLeafRef(referencingChilds.get(bar("my-leafref-in-bar")), expectedPathToBazTarget);
         assertLeafRef(referencingChilds.get(bar("my-leafref-in-bar-2")), expectedPathToBazTarget);
 
-        final QNameModule barQNameModule = QNameModule.create(URI.create(BAR_NS));
+        final QNameModule barQNameModule = QNameModule.create(XMLNamespace.of(BAR_NS));
         final LeafRefPath expectedPathToBarTarget = LeafRefPath.create(true,
                 new QNameWithPredicateImpl(barQNameModule, "bar-target", ImmutableList.of()));
         assertLeafRef(referencingChilds.get(foo("direct-leafref")), expectedPathToBarTarget);
index e858968805313d99c221a69d25962d437d7d6945..b616ecc1f0dfdd9102f464f76a13b2f359b89805 100644 (file)
@@ -13,8 +13,6 @@ import static org.junit.Assert.assertNotNull;
 
 import com.google.common.collect.ImmutableSet;
 import java.io.IOException;
-import java.net.URI;
-import java.net.URISyntaxException;
 import java.text.ParseException;
 import java.util.ArrayList;
 import java.util.HashMap;
@@ -26,6 +24,7 @@ import org.junit.Test;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.common.QNameModule;
 import org.opendaylight.yangtools.yang.common.Revision;
+import org.opendaylight.yangtools.yang.common.XMLNamespace;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.AugmentationIdentifier;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifierWithPredicates;
@@ -83,8 +82,8 @@ public class ImmutableNormalizedNodeStreamWriterTest {
     private DOMSource anyxmlDomSource;
 
     @Before
-    public void setup() throws URISyntaxException, ParseException {
-        bazModule = QNameModule.create(new URI("baz-namespace"), Revision.of("1970-01-01"));
+    public void setup() throws ParseException {
+        bazModule = QNameModule.create(XMLNamespace.of("baz-namespace"), Revision.of("1970-01-01"));
 
         outerContainer = QName.create(bazModule, "outer-container");
 
index 6bc1c8451fd85bc0057f5f6a8d3fadf6862e4cce..8073f21ab608384621bdac48a9c39b74bd4ce9d0 100644 (file)
@@ -11,12 +11,12 @@ import static com.google.common.base.Preconditions.checkState;
 
 import com.google.common.collect.ImmutableSet;
 import java.io.File;
-import java.net.URI;
 import java.net.URISyntaxException;
 import java.util.Collections;
 import org.junit.Before;
 import org.junit.Test;
 import org.opendaylight.yangtools.yang.common.QName;
+import org.opendaylight.yangtools.yang.common.XMLNamespace;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.AugmentationIdentifier;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifierWithPredicates;
@@ -179,7 +179,7 @@ public class NormalizedDataBuilderTest {
     }
 
     private static QName getQName(final String localName) {
-        return QName.create(URI.create("namespace"), localName);
+        return QName.create(XMLNamespace.of("namespace"), localName);
     }
 
     private static NodeIdentifier getNodeIdentifier(final String localName) {
index c2b047f75d72716ad7e0ff8664f835f4b4777de5..604c858cdef1f10d45a6f211738524c31358ff82 100644 (file)
@@ -9,11 +9,11 @@ package org.opendaylight.yangtools.yang.data.impl.schema.tree;
 
 import com.google.common.collect.ImmutableMap;
 import com.google.common.collect.ImmutableMap.Builder;
-import java.net.URI;
 import org.junit.Before;
 import org.junit.Test;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.common.QNameModule;
+import org.opendaylight.yangtools.yang.common.XMLNamespace;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifierWithPredicates;
@@ -45,7 +45,7 @@ public class Bug4295Test {
 
     @Before
     public void init() {
-        foo = QNameModule.create(URI.create("foo"));
+        foo = QNameModule.create(XMLNamespace.of("foo"));
         root = QName.create(foo, "root");
         subRoot = QName.create(foo, "sub-root");
         outerList = QName.create(foo, "outer-list");
index f9ec399c152785e3057874a6a3e64079325234ea..17c0d2c92c55dc52026bf9390cdd0f9690d17bdc 100644 (file)
@@ -12,12 +12,12 @@ import static org.junit.Assert.assertTrue;
 import static org.junit.Assert.fail;
 
 import com.google.common.collect.ImmutableMap;
-import java.net.URI;
 import java.util.Optional;
 import org.junit.Before;
 import org.junit.Test;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.common.QNameModule;
+import org.opendaylight.yangtools.yang.common.XMLNamespace;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifierWithPredicates;
@@ -53,7 +53,7 @@ public class OrderedListTest {
 
     @Before
     public void setup() {
-        testModule = QNameModule.create(URI.create("ordered-list-modification-test"));
+        testModule = QNameModule.create(XMLNamespace.of("ordered-list-modification-test"));
         parentContainer = QName.create(testModule, "parent-container");
         childContainer = QName.create(testModule, "child-container");
         parentOrderedList = QName.create(testModule, "parent-ordered-list");
index d92c9eb28a8990a49ad17cef4714ecd7dea82337..89b0e415ea1e025d83f0a4b911c96ebe6153742a 100644 (file)
@@ -10,13 +10,13 @@ package org.opendaylight.yangtools.yang.data.util;
 import static com.google.common.base.Preconditions.checkArgument;
 
 import com.google.common.base.Splitter;
-import java.net.URI;
 import java.util.Iterator;
 import org.eclipse.jdt.annotation.NonNull;
 import org.eclipse.jdt.annotation.Nullable;
 import org.opendaylight.yangtools.concepts.AbstractIllegalArgumentCodec;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.common.QNameModule;
+import org.opendaylight.yangtools.yang.common.XMLNamespace;
 
 abstract class AbstractNamespaceCodec<T> extends AbstractIllegalArgumentCodec<String, T> {
     private static final Splitter COLON_SPLITTER = Splitter.on(':');
@@ -27,7 +27,7 @@ abstract class AbstractNamespaceCodec<T> extends AbstractIllegalArgumentCodec<St
      * @param namespace Namespace to map
      * @return Allocated unique prefix, or null if the prefix cannot be mapped.
      */
-    protected abstract @Nullable String prefixForNamespace(@NonNull URI namespace);
+    protected abstract @Nullable String prefixForNamespace(@NonNull XMLNamespace namespace);
 
     /**
      * Create a QName for a prefix and local name.
index 64107a770f9d82cd223398c30302833311eb7c16..30573d92574e5e0136d7c9bbb3e108303b3890af 100644 (file)
@@ -10,10 +10,10 @@ package org.opendaylight.yangtools.yang.data.util;
 import static java.util.Objects.requireNonNull;
 
 import com.google.common.annotations.Beta;
-import java.net.URI;
 import java.util.Iterator;
 import org.eclipse.jdt.annotation.NonNull;
 import org.opendaylight.yangtools.yang.common.QNameModule;
+import org.opendaylight.yangtools.yang.common.XMLNamespace;
 import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext;
 import org.opendaylight.yangtools.yang.model.api.EffectiveModelContextProvider;
 import org.opendaylight.yangtools.yang.model.api.Module;
@@ -43,7 +43,7 @@ public abstract class ModuleStringIdentityrefCodec extends AbstractModuleStringI
     }
 
     @Override
-    protected String prefixForNamespace(final URI namespace) {
+    protected String prefixForNamespace(final XMLNamespace namespace) {
         final Iterator<? extends Module> modules = context.findModules(namespace).iterator();
         return modules.hasNext() ? modules.next().getName() : null;
     }
index d98030e8ad9450b5c3785493ab83b090f9e22b90..453d01dadbeb1c283f4895ee082cffff35e38757 100644 (file)
@@ -8,13 +8,13 @@
 
 package org.opendaylight.yangtools.yang.data.util;
 
-import java.net.URI;
 import java.util.ArrayDeque;
 import java.util.ArrayList;
 import java.util.Deque;
 import java.util.List;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.common.Revision;
+import org.opendaylight.yangtools.yang.common.XMLNamespace;
 import org.opendaylight.yangtools.yang.model.api.CaseSchemaNode;
 import org.opendaylight.yangtools.yang.model.api.ChoiceSchemaNode;
 import org.opendaylight.yangtools.yang.model.api.DataNodeContainer;
@@ -34,7 +34,7 @@ public final class ParserStreamUtils {
      *         (where n is number of choices through it was passed)
      */
     public static Deque<DataSchemaNode> findSchemaNodeByNameAndNamespace(final DataSchemaNode dataSchemaNode,
-                                                                   final String childName, final URI namespace) {
+            final String childName, final XMLNamespace namespace) {
         final Deque<DataSchemaNode> result = new ArrayDeque<>();
         final List<ChoiceSchemaNode> childChoices = new ArrayList<>();
         DataSchemaNode potentialChildNode = null;
index 7c9048e2c32c1f34604106a0d8f5636be7c004fc..9b9d745837009c577b99b330240db63921b5e04f 100644 (file)
@@ -10,19 +10,19 @@ package org.opendaylight.yangtools.yang.data.util.codec;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertTrue;
 
-import java.net.URI;
 import java.util.Optional;
 import org.junit.AfterClass;
 import org.junit.BeforeClass;
 import org.junit.Test;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.common.QNameModule;
+import org.opendaylight.yangtools.yang.common.XMLNamespace;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
 import org.opendaylight.yangtools.yang.data.util.DataSchemaContextTree;
 import org.opendaylight.yangtools.yang.test.util.YangParserTestUtils;
 
 public class DataSchemaContextTreeTest {
-    private static final QNameModule MODULE = QNameModule.create(URI.create("dataschemacontext"));
+    private static final QNameModule MODULE = QNameModule.create(XMLNamespace.of("dataschemacontext"));
     private static final QName FOO = QName.create(MODULE, "foo");
     private static final QName BAR = QName.create(MODULE, "bar");
     private static final QName BAZ = QName.create(MODULE, "baz");
index 3a554fb73fc2e4c2eeb21bc43a7a9047cc0fa69e..bda6262ba82943de05b3fb5222c9a8e45ae88c8b 100644 (file)
@@ -11,16 +11,16 @@ import static com.google.common.base.Preconditions.checkState;
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertThrows;
 
-import java.net.URI;
 import org.junit.AfterClass;
 import org.junit.BeforeClass;
 import org.junit.Test;
 import org.opendaylight.yangtools.yang.common.QNameModule;
+import org.opendaylight.yangtools.yang.common.XMLNamespace;
 import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext;
 import org.opendaylight.yangtools.yang.test.util.YangParserTestUtils;
 
 public class IdentityCodecUtilTest {
-    private static final QNameModule MODULE = QNameModule.create(URI.create("yangtools846"));
+    private static final QNameModule MODULE = QNameModule.create(XMLNamespace.of("yangtools846"));
     private static EffectiveModelContext SCHEMA_CONTEXT;
 
     @BeforeClass
index 7fa0bcafa6792f58b32eccef34214dd970285064..281c9cde06a061454422e066251fb1122dbd1492 100644 (file)
@@ -7,11 +7,11 @@
  */
 package org.opendaylight.yangtools.yang.model.api;
 
-import java.net.URI;
 import java.util.Optional;
 import org.eclipse.jdt.annotation.NonNull;
 import org.opendaylight.yangtools.yang.common.QNameModule;
 import org.opendaylight.yangtools.yang.common.Revision;
+import org.opendaylight.yangtools.yang.common.XMLNamespace;
 
 public interface QNameModuleAware {
     /**
@@ -21,8 +21,7 @@ public interface QNameModuleAware {
      */
     @NonNull QNameModule getQNameModule();
 
-    @Deprecated
-    default @NonNull URI getNamespace() {
+    default @NonNull XMLNamespace getNamespace() {
         return getQNameModule().getNamespace();
     }
 
index 9198dde5b1b415506925d07502165411d47e1efc..fbe0a60287b629d8967342c9638889cf0cfd7b41 100644 (file)
@@ -12,7 +12,6 @@ import static java.util.Objects.requireNonNull;
 import com.google.common.annotations.Beta;
 import com.google.common.collect.Collections2;
 import com.google.common.collect.ImmutableSet;
-import java.net.URI;
 import java.util.Collection;
 import java.util.Collections;
 import java.util.Optional;
@@ -22,6 +21,7 @@ import org.opendaylight.yangtools.concepts.Immutable;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.common.QNameModule;
 import org.opendaylight.yangtools.yang.common.Revision;
+import org.opendaylight.yangtools.yang.common.XMLNamespace;
 import org.opendaylight.yangtools.yang.xpath.api.YangXPathExpression.QualifiedBound;
 
 /**
@@ -40,7 +40,7 @@ public interface SchemaContext extends ContainerLike, Immutable {
      * QName of NETCONF top-level data node.
      */
     // FIXME: YANGTOOLS-1074: we do not want this name
-    @NonNull QName NAME = QName.create(URI.create("urn:ietf:params:xml:ns:netconf:base:1.0"), "data").intern();
+    @NonNull QName NAME = QName.create(XMLNamespace.of("urn:ietf:params:xml:ns:netconf:base:1.0"), "data").intern();
 
     /**
      * Returns data schema node instances which represents direct subnodes (like
@@ -94,7 +94,7 @@ public interface SchemaContext extends ContainerLike, Immutable {
      * @return module instance which has name and revision the same as are the values specified in parameters
      *         <code>namespace</code> and no revision.
      */
-    default Optional<Module> findModule(final @NonNull URI namespace) {
+    default Optional<Module> findModule(final @NonNull XMLNamespace namespace) {
         return findModule(QNameModule.create(namespace));
     }
 
@@ -106,7 +106,7 @@ public interface SchemaContext extends ContainerLike, Immutable {
      * @return module instance which has name and revision the same as are the values specified in parameters
      *         <code>namespace</code> and <code>revision</code>.
      */
-    default Optional<Module> findModule(final @NonNull URI namespace, final @Nullable Revision revision) {
+    default Optional<Module> findModule(final @NonNull XMLNamespace namespace, final @Nullable Revision revision) {
         return findModule(QNameModule.create(namespace, revision));
     }
 
@@ -118,7 +118,8 @@ public interface SchemaContext extends ContainerLike, Immutable {
      * @return module instance which has name and revision the same as are the values specified in parameters
      *         <code>namespace</code> and <code>revision</code>.
      */
-    default Optional<Module> findModule(final @NonNull URI namespace, final @NonNull Optional<Revision> revision) {
+    default Optional<Module> findModule(final @NonNull XMLNamespace namespace,
+            final @NonNull Optional<Revision> revision) {
         return findModule(QNameModule.create(namespace, revision));
     }
 
@@ -166,8 +167,7 @@ public interface SchemaContext extends ContainerLike, Immutable {
      * Returns module instances (from the context) with a concrete name. Returned Set is required to have its iteration
      * order guarantee that the latest revision is encountered first.
      *
-     * @param name
-     *            string with the module name
+     * @param name string with the module name
      * @return set of module instances with specified name.
      */
     default @NonNull Collection<? extends @NonNull Module> findModules(final String name) {
@@ -178,12 +178,10 @@ public interface SchemaContext extends ContainerLike, Immutable {
      * Returns module instance (from the context) with concrete namespace. Returned Set is required to have its
      * iteration order guarantee that the latest revision is encountered first.
      *
-     * @param namespace
-     *            URI instance with specified namespace
-     * @return module instance which has namespace equal to the
-     *         <code>namespace</code> or <code>null</code> in other cases
+     * @param namespace XMLNamespace instance with specified namespace
+     * @return module instance which has namespace equal to the {@code namespace} or {@code null} in other cases
      */
-    default @NonNull Collection<? extends @NonNull Module> findModules(final URI namespace) {
+    default @NonNull Collection<? extends @NonNull Module> findModules(final XMLNamespace namespace) {
         return Collections2.filter(getModules(), m -> namespace.equals(m.getNamespace()));
     }
 
index fbe0101ccc4c011e27727aaf80f21b6ea40f2903..080856d0d3aabc67376db169ae1ac35b77cf982b 100644 (file)
@@ -8,13 +8,13 @@
 package org.opendaylight.yangtools.yang.model.api.stmt;
 
 import com.google.common.annotations.Beta;
-import java.net.URI;
+import org.opendaylight.yangtools.yang.common.XMLNamespace;
 import org.opendaylight.yangtools.yang.model.api.YangStmtMapping;
 import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
 import org.opendaylight.yangtools.yang.model.api.meta.StatementDefinition;
 
 @Beta
-public interface NamespaceEffectiveStatement extends EffectiveStatement<URI, NamespaceStatement> {
+public interface NamespaceEffectiveStatement extends EffectiveStatement<XMLNamespace, NamespaceStatement> {
     @Override
     default StatementDefinition statementDefinition() {
         return YangStmtMapping.NAMESPACE;
index 01bb0f064d3fb1d133c7d2de43f9e67916030dbf..29c083fc628ba56fef7384028095a2c987a39952 100644 (file)
@@ -7,12 +7,12 @@
  */
 package org.opendaylight.yangtools.yang.model.api.stmt;
 
-import java.net.URI;
+import org.opendaylight.yangtools.yang.common.XMLNamespace;
 import org.opendaylight.yangtools.yang.model.api.YangStmtMapping;
 import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
 import org.opendaylight.yangtools.yang.model.api.meta.StatementDefinition;
 
-public interface NamespaceStatement extends DeclaredStatement<URI> {
+public interface NamespaceStatement extends DeclaredStatement<XMLNamespace> {
     @Override
     default StatementDefinition statementDefinition() {
         return YangStmtMapping.NAMESPACE;
index 88b28a918aac77aeac62479de5eb29f1398d341d..a46c1e75c3072ec936e81ab0b988f6785511f175 100644 (file)
@@ -11,11 +11,11 @@ import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertNull;
 
-import java.net.URI;
 import org.junit.BeforeClass;
 import org.junit.Test;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.common.Revision;
+import org.opendaylight.yangtools.yang.common.XMLNamespace;
 import org.opendaylight.yangtools.yang.model.api.ChoiceSchemaNode;
 import org.opendaylight.yangtools.yang.model.api.ContainerSchemaNode;
 import org.opendaylight.yangtools.yang.model.api.DataNodeContainer;
@@ -40,7 +40,7 @@ public class SchemaContextUtilTest {
     @BeforeClass
     public static void beforeClass() {
         context = YangParserTestUtils.parseYangResourceDirectory("/schema-context-util");
-        myModule = context.findModule(URI.create("uri:my-module"), Revision.of("2014-10-07")).get();
+        myModule = context.findModule(XMLNamespace.of("uri:my-module"), Revision.of("2014-10-07")).get();
     }
 
     @Test
@@ -285,7 +285,7 @@ public class SchemaContextUtilTest {
 
     @Test
     public void findDataSchemaNodeTest() {
-        final Module importedModule = context.findModule(URI.create("uri:imported-module"),
+        final Module importedModule = context.findModule(XMLNamespace.of("uri:imported-module"),
             Revision.of("2014-10-07")).get();
 
         final SchemaNode testNode = ((ContainerSchemaNode) importedModule.getDataChildByName(QName.create(
index 6d0ebb787520d47b1cc2afa1d1a09ece30df1ead..fe55927edc3dd3491c1f6ff58cd899b4a55eef4e 100644 (file)
@@ -16,7 +16,6 @@ import com.google.common.collect.Multimaps;
 import com.google.common.collect.SetMultimap;
 import java.lang.invoke.MethodHandles;
 import java.lang.invoke.VarHandle;
-import java.net.URI;
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Collections;
@@ -33,6 +32,7 @@ import org.eclipse.jdt.annotation.NonNull;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.common.QNameModule;
 import org.opendaylight.yangtools.yang.common.Revision;
+import org.opendaylight.yangtools.yang.common.XMLNamespace;
 import org.opendaylight.yangtools.yang.model.api.DataSchemaNode;
 import org.opendaylight.yangtools.yang.model.api.ExtensionDefinition;
 import org.opendaylight.yangtools.yang.model.api.GroupingDefinition;
@@ -93,7 +93,7 @@ public abstract class AbstractSchemaContext implements SchemaContext {
      *
      * @return Map of modules where key is namespace
      */
-    protected abstract SetMultimap<URI, Module> getNamespaceToModules();
+    protected abstract SetMultimap<XMLNamespace, Module> getNamespaceToModules();
 
     /**
      * Returns the module name-to-module mapping.
@@ -162,7 +162,7 @@ public abstract class AbstractSchemaContext implements SchemaContext {
     }
 
     @Override
-    public Collection<? extends Module> findModules(final URI namespace) {
+    public Collection<? extends Module> findModules(final XMLNamespace namespace) {
         return getNamespaceToModules().get(namespace);
     }
 
index d858276c901dd803a94a8f887b44fe63dbec9850..632afd282049d717e7a4a066431c45a25568220e 100644 (file)
@@ -22,7 +22,6 @@ import com.google.common.collect.Multimap;
 import com.google.common.collect.Multimaps;
 import com.google.common.collect.SetMultimap;
 import com.google.common.collect.TreeMultimap;
-import java.net.URI;
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Collections;
@@ -36,6 +35,7 @@ import java.util.function.Function;
 import org.eclipse.jdt.annotation.NonNull;
 import org.opendaylight.yangtools.yang.common.QNameModule;
 import org.opendaylight.yangtools.yang.common.Revision;
+import org.opendaylight.yangtools.yang.common.XMLNamespace;
 import org.opendaylight.yangtools.yang.model.api.Module;
 import org.opendaylight.yangtools.yang.model.api.ModuleImport;
 import org.opendaylight.yangtools.yang.model.api.ModuleLike;
@@ -49,7 +49,7 @@ public final class FilteringSchemaContextProxy extends AbstractSchemaContext {
     private final ImmutableSet<Module> filteredModules;
 
     //collections to be filled in with filtered data
-    private final ImmutableSetMultimap<URI, Module> namespaceToModules;
+    private final ImmutableSetMultimap<XMLNamespace, Module> namespaceToModules;
     private final ImmutableSetMultimap<String, Module> nameToModules;
 
     /**
@@ -91,7 +91,7 @@ public final class FilteringSchemaContextProxy extends AbstractSchemaContext {
         sortedModules.sort(NAME_REVISION_COMPARATOR);
         this.filteredModules = ImmutableSet.copyOf(sortedModules);
 
-        final SetMultimap<URI, Module> nsMap = Multimaps.newSetMultimap(new TreeMap<>(),
+        final SetMultimap<XMLNamespace, Module> nsMap = Multimaps.newSetMultimap(new TreeMap<>(),
             AbstractSchemaContext::createModuleSet);
         final SetMultimap<String, Module> nameMap = Multimaps.newSetMultimap(new TreeMap<>(),
             AbstractSchemaContext::createModuleSet);
@@ -165,7 +165,7 @@ public final class FilteringSchemaContextProxy extends AbstractSchemaContext {
     }
 
     @Override
-    protected SetMultimap<URI, Module> getNamespaceToModules() {
+    protected SetMultimap<XMLNamespace, Module> getNamespaceToModules() {
         return namespaceToModules;
     }
 
index 5e9ba484de9d0cb5432f03bd1e5cbcf6368d7f4e..fc6a458d958d130b4cd2e397b8ed7d43f71ace63 100644 (file)
@@ -11,7 +11,6 @@ import com.google.common.annotations.Beta;
 import com.google.common.collect.HashBasedTable;
 import com.google.common.collect.Lists;
 import com.google.common.collect.Table;
-import java.net.URI;
 import java.util.Arrays;
 import java.util.Collection;
 import java.util.HashMap;
@@ -25,6 +24,7 @@ import org.opendaylight.yangtools.util.TopologicalSort;
 import org.opendaylight.yangtools.util.TopologicalSort.Node;
 import org.opendaylight.yangtools.util.TopologicalSort.NodeImpl;
 import org.opendaylight.yangtools.yang.common.Revision;
+import org.opendaylight.yangtools.yang.common.XMLNamespace;
 import org.opendaylight.yangtools.yang.common.YangVersion;
 import org.opendaylight.yangtools.yang.model.api.Module;
 import org.opendaylight.yangtools.yang.model.api.ModuleImport;
@@ -89,13 +89,13 @@ public final class ModuleDependencySort {
      */
     private static void processDependencies(final Table<String, Optional<Revision>, ModuleNodeImpl> moduleGraph,
             final Collection<? extends Module> mmbs) {
-        final Map<URI, Module> allNS = new HashMap<>();
+        final Map<XMLNamespace, Module> allNS = new HashMap<>();
 
         // Create edges in graph
         for (final Module module : mmbs) {
             final Map<String, Optional<Revision>> imported = new HashMap<>();
             final String fromName = module.getName();
-            final URI ns = module.getNamespace();
+            final XMLNamespace ns = module.getNamespace();
             final Optional<Revision> fromRevision = module.getRevision();
 
             // check for existence of module with same namespace
@@ -250,18 +250,10 @@ public final class ModuleDependencySort {
                 return false;
             }
             final ModuleNodeImpl other = (ModuleNodeImpl) obj;
-            if (name == null) {
-                if (other.name != null) {
-                    return false;
-                }
-            } else if (!name.equals(other.name)) {
+            if (!Objects.equals(name, other.name)) {
                 return false;
             }
-            if (revision == null) {
-                if (other.revision != null) {
-                    return false;
-                }
-            } else if (!revision.equals(other.revision)) {
+            if (!Objects.equals(revision, other.revision)) {
                 return false;
             }
             return true;
index 3603810ff471e81ba3c8ac2bc389ab37b9f50861..2130a130a96eae9e3b665165be5cf3b7b6197719 100644 (file)
@@ -18,7 +18,6 @@ import com.google.common.collect.ImmutableSet;
 import com.google.common.collect.ImmutableSetMultimap;
 import com.google.common.collect.Multimaps;
 import com.google.common.collect.SetMultimap;
-import java.net.URI;
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.List;
@@ -31,6 +30,7 @@ import org.opendaylight.yangtools.rfc7952.model.api.AnnotationSchemaNode;
 import org.opendaylight.yangtools.rfc7952.model.api.AnnotationSchemaNodeAwareSchemaContext;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.common.QNameModule;
+import org.opendaylight.yangtools.yang.common.XMLNamespace;
 import org.opendaylight.yangtools.yang.model.api.Module;
 
 /**
@@ -40,7 +40,7 @@ import org.opendaylight.yangtools.yang.model.api.Module;
  */
 @Beta
 public class SimpleSchemaContext extends AbstractSchemaContext implements AnnotationSchemaNodeAwareSchemaContext {
-    private final ImmutableSetMultimap<URI, Module> namespaceToModules;
+    private final ImmutableSetMultimap<XMLNamespace, Module> namespaceToModules;
     private final ImmutableSetMultimap<String, Module> nameToModules;
     private final ImmutableMap<QNameModule, Module> moduleMap;
     private final ImmutableSet<Module> modules;
@@ -66,7 +66,7 @@ public class SimpleSchemaContext extends AbstractSchemaContext implements Annota
          *
          * Invest some quality time in building up lookup tables for both.
          */
-        final SetMultimap<URI, Module> nsMap = Multimaps.newSetMultimap(new TreeMap<>(),
+        final SetMultimap<XMLNamespace, Module> nsMap = Multimaps.newSetMultimap(new TreeMap<>(),
             AbstractSchemaContext::createModuleSet);
         final SetMultimap<String, Module> nameMap = Multimaps.newSetMultimap(new TreeMap<>(),
             AbstractSchemaContext::createModuleSet);
@@ -107,7 +107,7 @@ public class SimpleSchemaContext extends AbstractSchemaContext implements Annota
     }
 
     @Override
-    protected final SetMultimap<URI, Module> getNamespaceToModules() {
+    protected final SetMultimap<XMLNamespace, Module> getNamespaceToModules() {
         return namespaceToModules;
     }
 
index 3c4fe6e1ebb51ee1a9b3146353543cf841eb1763..4885257d46e57cff8138c765d7d090018bcdfbf0 100644 (file)
@@ -12,7 +12,6 @@ import static org.junit.Assert.assertEquals;
 import static org.mockito.Mockito.doReturn;
 
 import com.google.common.collect.ImmutableSet;
-import java.net.URI;
 import java.util.List;
 import java.util.Optional;
 import org.junit.Before;
@@ -21,6 +20,7 @@ import org.junit.runner.RunWith;
 import org.mockito.Mock;
 import org.mockito.junit.MockitoJUnitRunner;
 import org.opendaylight.yangtools.yang.common.QNameModule;
+import org.opendaylight.yangtools.yang.common.XMLNamespace;
 import org.opendaylight.yangtools.yang.common.YangVersion;
 import org.opendaylight.yangtools.yang.model.api.Module;
 import org.opendaylight.yangtools.yang.model.api.ModuleImport;
@@ -28,8 +28,8 @@ import org.opendaylight.yangtools.yang.model.api.Submodule;
 
 @RunWith(MockitoJUnitRunner.class)
 public class ModuleDependencySortTest {
-    public static final QNameModule FOO_MODULE = QNameModule.create(URI.create("foo"));
-    public static final QNameModule BAR_MODULE = QNameModule.create(URI.create("bar"));
+    public static final QNameModule FOO_MODULE = QNameModule.create(XMLNamespace.of("foo"));
+    public static final QNameModule BAR_MODULE = QNameModule.create(XMLNamespace.of("bar"));
 
     @Mock
     public Module fooNoRev;
index d9942c271f143a42e1f02d72d4555cdbe3cd2763..d17567d14337992b1e444cdc4cce5c1a064211dd 100644 (file)
@@ -27,6 +27,7 @@ import org.opendaylight.yangtools.concepts.SemVer;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.common.QNameModule;
 import org.opendaylight.yangtools.yang.common.Revision;
+import org.opendaylight.yangtools.yang.common.XMLNamespace;
 import org.opendaylight.yangtools.yang.model.api.ContainerSchemaNode;
 import org.opendaylight.yangtools.yang.model.api.DataSchemaNode;
 import org.opendaylight.yangtools.yang.model.api.ExtensionDefinition;
@@ -669,7 +670,7 @@ public class SchemaContextProxyTest {
     private static void mockModuleLike(final ModuleLike mockedModule, final String name) {
         doReturn(name).when(mockedModule).getName();
         doReturn(Optional.of(REVISION)).when(mockedModule).getRevision();
-        final URI newNamespace = URI.create(NAMESPACE.toString() + ":" + name);
+        final XMLNamespace newNamespace = XMLNamespace.of(NAMESPACE.toString() + ":" + name);
         doReturn(newNamespace).when(mockedModule).getNamespace();
         doReturn(QNameModule.create(newNamespace, REVISION)).when(mockedModule).getQNameModule();
         doReturn(new HashSet<>()).when(mockedModule).getSubmodules();
index 92bfa0f1234288f2fa74a49394bb9c484ba8b129..291378590644d1b4ce76c6413bafa956fc5c0857 100644 (file)
@@ -16,7 +16,6 @@ import static org.mockito.Mockito.mock;
 
 import com.google.common.base.Splitter;
 import com.google.common.collect.ImmutableList;
-import java.net.URI;
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.List;
@@ -29,6 +28,7 @@ import org.mockito.junit.MockitoJUnitRunner;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.common.QNameModule;
 import org.opendaylight.yangtools.yang.common.Revision;
+import org.opendaylight.yangtools.yang.common.XMLNamespace;
 import org.opendaylight.yangtools.yang.model.api.Module;
 import org.opendaylight.yangtools.yang.model.api.PathExpression;
 import org.opendaylight.yangtools.yang.model.api.SchemaContext;
@@ -39,7 +39,7 @@ import org.opendaylight.yangtools.yang.model.util.type.BaseTypes;
 @RunWith(MockitoJUnitRunner.StrictStubs.class)
 public class SchemaContextUtilTest {
     public static final Splitter SPACE_SPLITTER = Splitter.on(' ');
-    public static final URI NAMESPACE = URI.create("abc");
+    public static final XMLNamespace NAMESPACE = XMLNamespace.of("abc");
 
     @Mock
     public SchemaContext mockSchemaContext;
@@ -138,7 +138,7 @@ public class SchemaContextUtilTest {
     @Test
     public void findDataSchemaNodeIllegalArgumentTest2() {
         assertThrows(NullPointerException.class, () -> SchemaContextUtil.findDataSchemaNode(null,
-            SchemaPath.create(true, QName.create(URI.create("uri:my-module"), Revision.of("2014-10-07"), "foo"))));
+            SchemaPath.create(true, QName.create(XMLNamespace.of("uri:my-module"), Revision.of("2014-10-07"), "foo"))));
     }
 
     @Test
index 34c9fddb64094ddcf4e9465d3f26f3f54bc32d96..69adaf67258bb378d9758904c629574ed19b45a4 100644 (file)
@@ -13,7 +13,6 @@ import static org.mockito.Mockito.mock;
 
 import com.google.common.collect.ImmutableList;
 import com.google.common.collect.ImmutableSet;
-import java.net.URI;
 import java.util.Collection;
 import java.util.List;
 import java.util.Optional;
@@ -21,6 +20,7 @@ import java.util.Set;
 import org.junit.Test;
 import org.opendaylight.yangtools.yang.common.QNameModule;
 import org.opendaylight.yangtools.yang.common.Revision;
+import org.opendaylight.yangtools.yang.common.XMLNamespace;
 import org.opendaylight.yangtools.yang.model.api.Module;
 
 public class SimpleSchemaContextTest {
@@ -45,7 +45,7 @@ public class SimpleSchemaContextTest {
         assertFindModules(expected, "foo", foo2, foo0, foo1);
         assertFindModules(expected, "foo", foo2, foo1, foo0);
 
-        final URI uri = URI.create("foo");
+        final XMLNamespace uri = XMLNamespace.of("foo");
         assertFindModules(expected, uri, foo0, foo1, foo2);
         assertFindModules(expected, uri, foo0, foo2, foo1);
         assertFindModules(expected, uri, foo1, foo0, foo2);
@@ -65,14 +65,15 @@ public class SimpleSchemaContextTest {
         assertArrayEquals(expected.toArray(), actual.toArray());
     }
 
-    private static void assertFindModules(final List<Module> expected, final URI uri, final Module... modules) {
+    private static void assertFindModules(final List<Module> expected, final XMLNamespace uri,
+            final Module... modules) {
         final Collection<? extends Module> actual = SimpleSchemaContext.forModules(ImmutableSet.copyOf(modules))
                 .findModules(uri);
         assertArrayEquals(expected.toArray(), actual.toArray());
     }
 
     private static Module mockModule(final String name, final Optional<Revision> revision) {
-        final QNameModule mod = QNameModule.create(URI.create(name), revision);
+        final QNameModule mod = QNameModule.create(XMLNamespace.of(name), revision);
         final Module ret = mock(Module.class);
         doReturn(name).when(ret).getName();
         doReturn(mod.getNamespace()).when(ret).getNamespace();
index 80fba57f96bbffe4868423f8422186faf5a8f1f9..6cafef6803e0befa3fb58582afd7b9757044f4e1 100644 (file)
@@ -19,7 +19,6 @@ import com.google.common.base.Throwables;
 import com.google.common.collect.ImmutableSetMultimap;
 import com.google.common.collect.SetMultimap;
 import com.google.common.util.concurrent.ListenableFuture;
-import java.net.URI;
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.concurrent.ExecutionException;
@@ -27,6 +26,7 @@ import org.junit.Test;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.common.QNameModule;
 import org.opendaylight.yangtools.yang.common.Revision;
+import org.opendaylight.yangtools.yang.common.XMLNamespace;
 import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext;
 import org.opendaylight.yangtools.yang.model.api.SchemaContext;
 import org.opendaylight.yangtools.yang.model.api.SchemaPath;
@@ -45,9 +45,9 @@ public class SchemaContextFactoryDeviationsTest {
     private static final String FOOBAR = "/bug9195/foobar.yang";
     private static final String BAR_INVALID = "/bug9195/bar-invalid.yang";
     private static final String BAZ_INVALID = "/bug9195/baz-invalid.yang";
-    private static final URI FOO_NS = URI.create("foo-ns");
-    private static final URI BAR_NS = URI.create("bar-ns");
-    private static final URI BAZ_NS = URI.create("baz-ns");
+    private static final XMLNamespace FOO_NS = XMLNamespace.of("foo-ns");
+    private static final XMLNamespace BAR_NS = XMLNamespace.of("bar-ns");
+    private static final XMLNamespace BAZ_NS = XMLNamespace.of("baz-ns");
     private static final Revision REVISION = Revision.of("2017-05-16");
     private static final QNameModule FOO_MODULE = QNameModule.create(FOO_NS, REVISION);
     private static final QName MY_FOO_CONT_A = QName.create(FOO_MODULE, "my-foo-cont-a");
index 190c1d550169ad4f0880b99f1491808dc8f48e3e..87245f42e34cf8808f4682618491463739d0b933 100644 (file)
@@ -15,7 +15,6 @@ import static java.util.Objects.requireNonNull;
 import com.google.common.collect.HashMultimap;
 import com.google.common.collect.ImmutableList;
 import com.google.common.collect.Multimap;
-import java.net.URI;
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Iterator;
@@ -27,6 +26,7 @@ import org.eclipse.jdt.annotation.NonNull;
 import org.opendaylight.yangtools.concepts.Mutable;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.common.QNameModule;
+import org.opendaylight.yangtools.yang.common.XMLNamespace;
 import org.opendaylight.yangtools.yang.common.YangVersion;
 import org.opendaylight.yangtools.yang.model.repo.api.SourceIdentifier;
 import org.opendaylight.yangtools.yang.parser.spi.meta.InferenceException;
@@ -365,7 +365,7 @@ final class SourceSpecificContext implements NamespaceStorageNode, NamespaceBeha
 
     private PrefixToModule preLinkagePrefixes() {
         final PrefixToModuleMap preLinkagePrefixes = new PrefixToModuleMap();
-        final Map<String, URI> prefixToNamespaceMap = getAllFromLocalStorage(ImpPrefixToNamespace.class);
+        final Map<String, XMLNamespace> prefixToNamespaceMap = getAllFromLocalStorage(ImpPrefixToNamespace.class);
         if (prefixToNamespaceMap == null) {
             //:FIXME if it is a submodule without any import, the map is null. Handle also submodules and includes...
             return null;
index 88055adcf1306408e2b2e1777c87a24ded1c7aae..c52802f29e922817afb9b7454278260ec470d10f 100644 (file)
@@ -15,12 +15,11 @@ import com.google.common.annotations.Beta;
 import com.google.common.cache.CacheBuilder;
 import com.google.common.cache.CacheLoader;
 import com.google.common.cache.LoadingCache;
-import java.net.URI;
-import java.net.URISyntaxException;
 import java.util.Optional;
 import javax.xml.transform.TransformerException;
 import org.opendaylight.yangtools.concepts.AbstractSimpleIdentifiable;
 import org.opendaylight.yangtools.yang.common.QName;
+import org.opendaylight.yangtools.yang.common.XMLNamespace;
 import org.opendaylight.yangtools.yang.common.YangVersion;
 import org.opendaylight.yangtools.yang.model.api.meta.ArgumentDefinition;
 import org.opendaylight.yangtools.yang.model.api.meta.StatementDefinition;
@@ -53,11 +52,11 @@ import org.w3c.dom.NodeList;
 public final class YinStatementStreamSource extends AbstractSimpleIdentifiable<SourceIdentifier>
         implements StatementStreamSource {
     private static final Logger LOG = LoggerFactory.getLogger(YinStatementStreamSource.class);
-    private static final LoadingCache<String, URI> URI_CACHE = CacheBuilder.newBuilder().weakValues().build(
-        new CacheLoader<String, URI>() {
+    private static final LoadingCache<String, XMLNamespace> NS_CACHE = CacheBuilder.newBuilder().weakValues().build(
+        new CacheLoader<String, XMLNamespace>() {
             @Override
-            public URI load(final String key) throws URISyntaxException {
-                return new URI(key);
+            public XMLNamespace load(final String key) {
+                return XMLNamespace.of(key).intern();
             }
         });
     private final Node root;
@@ -77,7 +76,7 @@ public final class YinStatementStreamSource extends AbstractSimpleIdentifiable<S
 
     private static StatementDefinition getValidDefinition(final Node node, final StatementWriter writer,
             final QNameToStatementDefinition stmtDef, final StatementSourceReference ref) {
-        final URI uri = URI_CACHE.getUnchecked(node.getNamespaceURI());
+        final XMLNamespace uri = NS_CACHE.getUnchecked(node.getNamespaceURI());
         final StatementDefinition def = stmtDef.getByNamespaceAndLocalName(uri, node.getLocalName());
 
         if (def == null) {
index 21c661a435a5a97bb116ccd229d1e69ca6912cfd..e6c34914e0a4f66d4c899367b5633655168cb8e6 100644 (file)
@@ -16,11 +16,11 @@ import static org.opendaylight.yangtools.yang.parser.spi.meta.StmtContextUtils.f
 
 import com.google.common.annotations.Beta;
 import com.google.common.collect.ImmutableList;
-import java.net.URI;
 import java.util.Collection;
 import org.eclipse.jdt.annotation.NonNull;
 import org.opendaylight.yangtools.openconfig.model.api.OpenConfigStatements;
 import org.opendaylight.yangtools.yang.common.Empty;
+import org.opendaylight.yangtools.yang.common.XMLNamespace;
 import org.opendaylight.yangtools.yang.model.api.YangStmtMapping;
 import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
 import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
@@ -95,7 +95,7 @@ public final class ImportStatementSupport
             public void apply(final InferenceContext ctx) {
                 final StmtContext<?, ?, ?> importedModuleContext = imported.resolve(ctx);
                 verify(moduleName.equals(importedModuleContext.getRawArgument()));
-                final URI importedModuleNamespace = verifyNotNull(
+                final XMLNamespace importedModuleNamespace = verifyNotNull(
                     importedModuleContext.getFromNamespace(ModuleNameToNamespace.class, moduleName));
                 final String impPrefix = SourceException.throwIfNull(
                     firstAttributeOf(stmt.declaredSubstatements(), PrefixStatement.class), stmt,
index 21dfbe72d23290d06742c5f3dd1020328e166e97..50c31f2299c91c2d629fee81be2109b774050c39 100644 (file)
@@ -14,7 +14,6 @@ import static org.opendaylight.yangtools.yang.parser.spi.meta.StmtContextUtils.f
 
 import com.google.common.annotations.Beta;
 import com.google.common.collect.ImmutableList;
-import java.net.URI;
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.List;
@@ -26,6 +25,7 @@ import org.opendaylight.yangtools.yang.common.Empty;
 import org.opendaylight.yangtools.yang.common.QNameModule;
 import org.opendaylight.yangtools.yang.common.Revision;
 import org.opendaylight.yangtools.yang.common.UnqualifiedQName;
+import org.opendaylight.yangtools.yang.common.XMLNamespace;
 import org.opendaylight.yangtools.yang.model.api.DataNodeContainer;
 import org.opendaylight.yangtools.yang.model.api.SchemaNode;
 import org.opendaylight.yangtools.yang.model.api.Submodule;
@@ -157,7 +157,7 @@ public final class ModuleStatementSupport
     public void onPreLinkageDeclared(final Mutable<UnqualifiedQName, ModuleStatement, ModuleEffectiveStatement> stmt) {
         final String moduleName = stmt.getRawArgument();
 
-        final URI moduleNs = SourceException.throwIfNull(
+        final XMLNamespace moduleNs = SourceException.throwIfNull(
             firstAttributeOf(stmt.declaredSubstatements(), NamespaceStatement.class), stmt,
             "Namespace of the module [%s] is missing", moduleName);
         stmt.addToNs(ModuleNameToNamespace.class, moduleName, moduleNs);
@@ -178,7 +178,7 @@ public final class ModuleStatementSupport
 
     @Override
     public void onLinkageDeclared(final Mutable<UnqualifiedQName, ModuleStatement, ModuleEffectiveStatement> stmt) {
-        final URI moduleNs = SourceException.throwIfNull(
+        final XMLNamespace moduleNs = SourceException.throwIfNull(
             firstAttributeOf(stmt.declaredSubstatements(), NamespaceStatement.class), stmt,
             "Namespace of the module [%s] is missing", stmt.argument());
 
index 1c6f228588c05989db1b6f5d978a93c4a3c5f12a..acdf51304314e9069e88323e00d7e4f76022bd3d 100644 (file)
@@ -7,12 +7,12 @@
  */
 package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.namespace;
 
-import java.net.URI;
+import org.opendaylight.yangtools.yang.common.XMLNamespace;
 import org.opendaylight.yangtools.yang.model.api.stmt.NamespaceEffectiveStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.NamespaceStatement;
 import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.AbstractDeclaredEffectiveStatement.DefaultArgument;
 
-final class EmptyNamespaceEffectiveStatement extends DefaultArgument<URI, NamespaceStatement>
+final class EmptyNamespaceEffectiveStatement extends DefaultArgument<XMLNamespace, NamespaceStatement>
         implements NamespaceEffectiveStatement {
     EmptyNamespaceEffectiveStatement(final NamespaceStatement declared) {
         super(declared);
index b6d74585b7b38911824d4771a8176c767fd4c645..fe59f6a74f0ee2fb3bb55fe5f9f5271447c77c02 100644 (file)
@@ -7,12 +7,12 @@
  */
 package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.namespace;
 
-import java.net.URI;
+import org.opendaylight.yangtools.yang.common.XMLNamespace;
 import org.opendaylight.yangtools.yang.model.api.stmt.NamespaceStatement;
 import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.AbstractDeclaredStatement.ArgumentToString;
 
-final class EmptyNamespaceStatement extends ArgumentToString<URI> implements NamespaceStatement {
-    EmptyNamespaceStatement(final URI argument) {
+final class EmptyNamespaceStatement extends ArgumentToString<XMLNamespace> implements NamespaceStatement {
+    EmptyNamespaceStatement(final XMLNamespace argument) {
         super(argument);
     }
 }
index 8883ae88fae5e041ec06e3feba669c33edcd34dc..c3db65944fcf565a3b879de2fbbc115e6d0657a9 100644 (file)
@@ -8,9 +8,8 @@
 package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.namespace;
 
 import com.google.common.collect.ImmutableList;
-import java.net.URI;
-import java.net.URISyntaxException;
 import org.eclipse.jdt.annotation.NonNull;
+import org.opendaylight.yangtools.yang.common.XMLNamespace;
 import org.opendaylight.yangtools.yang.model.api.YangStmtMapping;
 import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
 import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
@@ -23,7 +22,7 @@ import org.opendaylight.yangtools.yang.parser.spi.meta.SubstatementValidator;
 import org.opendaylight.yangtools.yang.parser.spi.source.SourceException;
 
 public final class NamespaceStatementSupport
-        extends AbstractStatementSupport<URI, NamespaceStatement, NamespaceEffectiveStatement> {
+        extends AbstractStatementSupport<XMLNamespace, NamespaceStatement, NamespaceEffectiveStatement> {
     private static final SubstatementValidator SUBSTATEMENT_VALIDATOR = SubstatementValidator.builder(YangStmtMapping
         .NAMESPACE)
         .build();
@@ -38,10 +37,10 @@ public final class NamespaceStatementSupport
     }
 
     @Override
-    public URI parseArgumentValue(final StmtContext<?, ?,?> ctx, final String value) {
+    public XMLNamespace parseArgumentValue(final StmtContext<?, ?,?> ctx, final String value) {
         try {
-            return new URI(value);
-        } catch (URISyntaxException e) {
+            return XMLNamespace.of(value).intern();
+        } catch (IllegalArgumentException e) {
             throw new SourceException(ctx, e, "Invalid namespace \"%s\"", value);
         }
     }
@@ -52,18 +51,18 @@ public final class NamespaceStatementSupport
     }
 
     @Override
-    protected NamespaceStatement createDeclared(@NonNull final StmtContext<URI, NamespaceStatement, ?> ctx,
+    protected NamespaceStatement createDeclared(@NonNull final StmtContext<XMLNamespace, NamespaceStatement, ?> ctx,
             final ImmutableList<? extends DeclaredStatement<?>> substatements) {
         return new RegularNamespaceStatement(ctx.getArgument(), substatements);
     }
 
     @Override
-    protected NamespaceStatement createEmptyDeclared(final StmtContext<URI, NamespaceStatement, ?> ctx) {
+    protected NamespaceStatement createEmptyDeclared(final StmtContext<XMLNamespace, NamespaceStatement, ?> ctx) {
         return new EmptyNamespaceStatement(ctx.getArgument());
     }
 
     @Override
-    protected NamespaceEffectiveStatement createEffective(final Current<URI, NamespaceStatement> stmt,
+    protected NamespaceEffectiveStatement createEffective(final Current<XMLNamespace, NamespaceStatement> stmt,
             final ImmutableList<? extends EffectiveStatement<?, ?>> substatements) {
         return substatements.isEmpty() ? new EmptyNamespaceEffectiveStatement(stmt.declared())
             : new RegularNamespaceEffectiveStatement(stmt.declared(), substatements);
index 9686fc20c9eb383425bfe5edf000657163ac82f6..6cba23e233e50a387dcb4d193219d2d61c89352e 100644 (file)
@@ -8,13 +8,13 @@
 package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.namespace;
 
 import com.google.common.collect.ImmutableList;
-import java.net.URI;
+import org.opendaylight.yangtools.yang.common.XMLNamespace;
 import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.NamespaceEffectiveStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.NamespaceStatement;
 import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.AbstractDeclaredEffectiveStatement.DefaultArgument.WithSubstatements;
 
-final class RegularNamespaceEffectiveStatement extends WithSubstatements<URI, NamespaceStatement>
+final class RegularNamespaceEffectiveStatement extends WithSubstatements<XMLNamespace, NamespaceStatement>
         implements NamespaceEffectiveStatement {
     RegularNamespaceEffectiveStatement(final NamespaceStatement declared,
             final ImmutableList<? extends EffectiveStatement<?, ?>> substatements) {
index 02fd876b195ef4bda740687635ebf68f8e936f46..1b656ee450d7266425c61e5f1a7b7914991ddb5b 100644 (file)
@@ -8,13 +8,13 @@
 package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.namespace;
 
 import com.google.common.collect.ImmutableList;
-import java.net.URI;
+import org.opendaylight.yangtools.yang.common.XMLNamespace;
 import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.NamespaceStatement;
 import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.AbstractDeclaredStatement.ArgumentToString.WithSubstatements;
 
-final class RegularNamespaceStatement extends WithSubstatements<URI> implements NamespaceStatement {
-    RegularNamespaceStatement(final URI argument,
+final class RegularNamespaceStatement extends WithSubstatements<XMLNamespace> implements NamespaceStatement {
+    RegularNamespaceStatement(final XMLNamespace argument,
             final ImmutableList<? extends DeclaredStatement<?>> substatements) {
         super(argument, substatements);
     }
index 4d3f01631f37b15d16a69fe95fe718eacd07e726..5eff39db71d8d3e4395cc78054f62d0929c5c6d8 100644 (file)
@@ -14,10 +14,10 @@ import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertTrue;
 import static org.opendaylight.yangtools.yang.stmt.StmtTestUtils.sourceForResource;
 
-import java.net.URI;
 import org.junit.Test;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.common.QNameModule;
+import org.opendaylight.yangtools.yang.common.XMLNamespace;
 import org.opendaylight.yangtools.yang.model.api.AnyxmlSchemaNode;
 import org.opendaylight.yangtools.yang.model.api.CaseSchemaNode;
 import org.opendaylight.yangtools.yang.model.api.ChoiceSchemaNode;
@@ -35,8 +35,8 @@ public class AugmentProcessTest {
     private static final StatementStreamSource AUGMENTED = sourceForResource("/stmt-test/augments/augmented.yang");
     private static final StatementStreamSource ROOT = sourceForResource("/stmt-test/augments/aug-root.yang");
 
-    private static final QNameModule ROOT_QNAME_MODULE = QNameModule.create(URI.create("root"));
-    private static final QNameModule AUGMENTED_QNAME_MODULE = QNameModule.create(URI.create("aug"));
+    private static final QNameModule ROOT_QNAME_MODULE = QNameModule.create(XMLNamespace.of("root"));
+    private static final QNameModule AUGMENTED_QNAME_MODULE = QNameModule.create(XMLNamespace.of("aug"));
 
     private final QName augParent1 = QName.create(AUGMENTED_QNAME_MODULE,
             "aug-parent1");
index 3f398334e904c204880a7061923ca52a0dbf0ea7..65127364b6988f7d6e69ecf0ae3a49725422a59a 100644 (file)
@@ -13,7 +13,6 @@ import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertTrue;
 import static org.opendaylight.yangtools.yang.stmt.StmtTestUtils.assertPathEquals;
 
-import java.net.URI;
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.List;
@@ -21,6 +20,7 @@ import org.junit.Test;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.common.QNameModule;
 import org.opendaylight.yangtools.yang.common.Revision;
+import org.opendaylight.yangtools.yang.common.XMLNamespace;
 import org.opendaylight.yangtools.yang.model.api.AugmentationSchemaNode;
 import org.opendaylight.yangtools.yang.model.api.CaseSchemaNode;
 import org.opendaylight.yangtools.yang.model.api.ChoiceSchemaNode;
@@ -39,11 +39,11 @@ import org.opendaylight.yangtools.yang.model.util.BaseTypes;
 
 public class AugmentTest {
     private static final QNameModule FOO = QNameModule.create(
-        URI.create("urn:opendaylight.foo"), Revision.of("2013-10-13"));
+        XMLNamespace.of("urn:opendaylight.foo"), Revision.of("2013-10-13"));
     private static final QNameModule BAR = QNameModule.create(
-        URI.create("urn:opendaylight.bar"), Revision.of("2013-10-14"));
+        XMLNamespace.of("urn:opendaylight.bar"), Revision.of("2013-10-14"));
     private static final QNameModule BAZ = QNameModule.create(
-        URI.create("urn:opendaylight.baz"), Revision.of("2013-10-15"));
+        XMLNamespace.of("urn:opendaylight.baz"), Revision.of("2013-10-15"));
 
     private static final QName Q0 = QName.create(BAR, "interfaces");
     private static final QName Q1 = QName.create(BAR, "ifEntry");
@@ -325,8 +325,8 @@ public class AugmentTest {
     @Test
     public void testAugmentRpc() throws Exception {
         final SchemaContext context = TestUtils.loadModules(getClass().getResource("/augment-test/rpc").toURI());
-        final URI NS_BAR = URI.create("urn:opendaylight:bar");
-        final URI NS_FOO = URI.create("urn:opendaylight:foo");
+        final XMLNamespace NS_BAR = XMLNamespace.of("urn:opendaylight:bar");
+        final XMLNamespace NS_FOO = XMLNamespace.of("urn:opendaylight:foo");
         final Revision revision = Revision.of("2013-10-11");
         final Module bar = TestUtils.findModule(context, "bar").get();
         final Collection<? extends RpcDefinition> rpcs = bar.getRpcs();
index f3552c327dbce0c294e769c4a55bedc87ec64ad0..e9710de65e49a462da3e965540686c5b9596e9f1 100644 (file)
@@ -10,13 +10,13 @@ package org.opendaylight.yangtools.yang.stmt;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
 
-import java.net.URI;
 import java.util.Collection;
 import org.junit.Test;
 import org.opendaylight.yangtools.yang.common.Empty;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.common.QNameModule;
 import org.opendaylight.yangtools.yang.common.Revision;
+import org.opendaylight.yangtools.yang.common.XMLNamespace;
 import org.opendaylight.yangtools.yang.model.api.ContainerSchemaNode;
 import org.opendaylight.yangtools.yang.model.api.Module;
 import org.opendaylight.yangtools.yang.model.api.stmt.UnrecognizedStatement;
@@ -41,7 +41,7 @@ public class Bug1412Test {
         assertEquals(1, unknownNodes.size());
         final UnrecognizedStatement action = unknownNodes.iterator().next();
 
-        final QNameModule qm = QNameModule.create(URI.create("urn:test:bug1412"), Revision.of("2014-07-25"));
+        final QNameModule qm = QNameModule.create(XMLNamespace.of("urn:test:bug1412"), Revision.of("2014-07-25"));
         QName expectedNodeType = QName.create("urn:test:bug1412:ext:definitions", "2014-07-25", "action");
         assertEquals(expectedNodeType, action.statementDefinition().getStatementName());
         assertEquals("hello", action.argument());
index 78d5221a84f771980644e01d7007a88c87157a39..75303aa1effdc1b612a6431f5be893d4e3607a49 100644 (file)
@@ -11,13 +11,13 @@ import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertTrue;
 
-import java.net.URI;
 import java.util.ArrayList;
 import java.util.List;
 import org.junit.Test;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.common.QNameModule;
 import org.opendaylight.yangtools.yang.common.Revision;
+import org.opendaylight.yangtools.yang.common.XMLNamespace;
 import org.opendaylight.yangtools.yang.model.api.DataSchemaNode;
 import org.opendaylight.yangtools.yang.model.api.LeafSchemaNode;
 import org.opendaylight.yangtools.yang.model.api.SchemaContext;
@@ -31,7 +31,7 @@ public class Bug2872Test {
         final SchemaContext schema = StmtTestUtils.parseYangSources("/bugs/bug2872");
         assertNotNull(schema);
 
-        final QNameModule bug2872module = QNameModule.create(URI.create("bug2872"), Revision.of("2016-06-08"));
+        final QNameModule bug2872module = QNameModule.create(XMLNamespace.of("bug2872"), Revision.of("2016-06-08"));
         final QName foo = QName.create(bug2872module, "bar");
 
         final DataSchemaNode dataSchemaNode = schema.getDataChildByName(foo);
index 428f05908cdf62548c55c45a42d45ea763464175..8991e540b4b972668687da7063e59703652bab64 100644 (file)
@@ -9,11 +9,11 @@ package org.opendaylight.yangtools.yang.stmt;
 
 import static org.junit.Assert.assertNotNull;
 
-import java.net.URI;
 import org.junit.Test;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.common.QNameModule;
 import org.opendaylight.yangtools.yang.common.Revision;
+import org.opendaylight.yangtools.yang.common.XMLNamespace;
 import org.opendaylight.yangtools.yang.model.api.SchemaContext;
 import org.opendaylight.yangtools.yang.model.api.SchemaNode;
 import org.opendaylight.yangtools.yang.model.api.SchemaPath;
@@ -27,7 +27,7 @@ public class Bug4231Test {
 
         assertNotNull(context);
 
-        QNameModule foo = QNameModule.create(new URI("foo"), Revision.of("2015-09-02"));
+        QNameModule foo = QNameModule.create(XMLNamespace.of("foo"), Revision.of("2015-09-02"));
 
         SchemaPath targetPath = SchemaPath
                 .create(true, QName.create(foo, "augment-target"))
index 46c6179ec03d207758fe9a1d9b276288bf75358c..974c9ae80210ae43d72141ce6b0f1bd50a16f944 100644 (file)
@@ -11,10 +11,10 @@ import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.fail;
 
-import java.net.URI;
 import java.util.Collection;
 import java.util.Set;
 import org.junit.Test;
+import org.opendaylight.yangtools.yang.common.XMLNamespace;
 import org.opendaylight.yangtools.yang.model.api.ExtensionDefinition;
 import org.opendaylight.yangtools.yang.model.api.Module;
 import org.opendaylight.yangtools.yang.model.api.SchemaContext;
@@ -26,7 +26,7 @@ public class Bug4456Test {
         SchemaContext schema = StmtTestUtils.parseYangSources("/bugs/bug4456");
         assertNotNull(schema);
 
-        Set<Module> modules = (Set<Module>) schema.findModules(URI.create("foo"));
+        Set<Module> modules = (Set<Module>) schema.findModules(XMLNamespace.of("foo"));
         assertEquals(1, modules.size());
         Module moduleFoo = modules.iterator().next();
 
index 02b319a6ce91009070816bc2b7dad12adfd29c06..af39510f5e67f4d4605652134d9f28dbc736278b 100644 (file)
@@ -10,11 +10,11 @@ package org.opendaylight.yangtools.yang.stmt;
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertTrue;
 
-import java.net.URI;
 import org.junit.Test;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.common.QNameModule;
 import org.opendaylight.yangtools.yang.common.Revision;
+import org.opendaylight.yangtools.yang.common.XMLNamespace;
 import org.opendaylight.yangtools.yang.model.api.SchemaContext;
 import org.opendaylight.yangtools.yang.model.api.SchemaNode;
 import org.opendaylight.yangtools.yang.model.api.SchemaPath;
@@ -29,8 +29,8 @@ public class Bug4610Test {
         SchemaContext context = StmtTestUtils.parseYangSources("/bugs/bug4610");
 
         Revision revision = Revision.of("2015-12-12");
-        QNameModule foo = QNameModule.create(URI.create("foo"), revision);
-        QNameModule bar = QNameModule.create(URI.create("bar"), revision);
+        QNameModule foo = QNameModule.create(XMLNamespace.of("foo"), revision);
+        QNameModule bar = QNameModule.create(XMLNamespace.of("bar"), revision);
 
         QName g1 = QName.create(bar, "g1");
         QName g2 = QName.create(bar, "g2");
index 0e2ba93ae26b828998abae784585a28c3c7c747a..6082e43fff9015b492f2b415fb153dae2b993fdf 100644 (file)
@@ -13,11 +13,11 @@ import static org.junit.Assert.assertNotNull;
 
 import com.google.common.collect.Range;
 import java.io.File;
-import java.net.URI;
 import java.util.Collection;
 import java.util.List;
 import org.junit.Test;
 import org.opendaylight.yangtools.yang.common.QName;
+import org.opendaylight.yangtools.yang.common.XMLNamespace;
 import org.opendaylight.yangtools.yang.model.api.LeafSchemaNode;
 import org.opendaylight.yangtools.yang.model.api.Module;
 import org.opendaylight.yangtools.yang.model.api.SchemaContext;
@@ -40,7 +40,7 @@ public class Bug4623Test {
         final SchemaContext schemaContext = TestUtils.parseYangSources(extdef, stringWithExt);
 
         final LeafSchemaNode leaf = (LeafSchemaNode) typesModule(schemaContext).getDataChildByName(
-            QName.create(URI.create("urn:custom.types.demo"), "leaf-length-pattern-unknown"));
+            QName.create(XMLNamespace.of("urn:custom.types.demo"), "leaf-length-pattern-unknown"));
 
         // then
         final TypeDefinition<?> type = leaf.getType();
@@ -76,7 +76,7 @@ public class Bug4623Test {
         final SchemaContext schemaContext = TestUtils.parseYangSources(extdef, stringWithExt);
 
         final LeafSchemaNode leaf = (LeafSchemaNode) typesModule(schemaContext).getDataChildByName(
-                QName.create(URI.create("urn:custom.types.demo"), "leaf-length-unknown-pattern"));
+                QName.create(XMLNamespace.of("urn:custom.types.demo"), "leaf-length-unknown-pattern"));
 
         // then
         assertNotNull(leaf);
@@ -112,7 +112,7 @@ public class Bug4623Test {
         final SchemaContext schemaContext = TestUtils.parseYangSources(extdef, stringWithExt);
 
         final LeafSchemaNode leaf = (LeafSchemaNode) typesModule(schemaContext).getDataChildByName(
-                QName.create(URI.create("urn:custom.types.demo"), "leaf-unknown-length-pattern"));
+                QName.create(XMLNamespace.of("urn:custom.types.demo"), "leaf-unknown-length-pattern"));
 
         // then
         assertNotNull(leaf);
index abf30252f00b706d1a9b7be71d464193736ca186..34294e62e733d23a301a92a3eb5511e5463b9181 100644 (file)
@@ -14,10 +14,10 @@ import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertTrue;
 
-import java.net.URI;
 import org.junit.Test;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.common.QNameModule;
+import org.opendaylight.yangtools.yang.common.XMLNamespace;
 import org.opendaylight.yangtools.yang.model.api.ContainerSchemaNode;
 import org.opendaylight.yangtools.yang.model.api.LeafSchemaNode;
 import org.opendaylight.yangtools.yang.model.api.TypeDefinition;
@@ -30,7 +30,7 @@ public class Bug7038Test {
     @Test
     public void unknownNodeTest() throws Exception {
         final ModuleStatement bar = StmtTestUtils.parseYangSources("/bugs/bug7038")
-            .getModuleStatement(QNameModule.create(URI.create("bar"))).getDeclared();
+            .getModuleStatement(QNameModule.create(XMLNamespace.of("bar"))).getDeclared();
         final UnrecognizedStatement decimal64 = bar.findFirstDeclaredSubstatement(UnrecognizedStatement.class)
             .orElseThrow();
         assertEquals("decimal64", decimal64.argument());
index 94b4d19b51a3dc15cb8e944b6a214dc67a2620a6..a3668a2bd7e00db6a6d12d57e4cd78fe36ac6569 100644 (file)
@@ -12,10 +12,10 @@ import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertTrue;
 import static org.junit.Assert.fail;
 
-import java.net.URI;
 import java.util.Collection;
 import org.junit.Test;
 import org.opendaylight.yangtools.yang.common.Revision;
+import org.opendaylight.yangtools.yang.common.XMLNamespace;
 import org.opendaylight.yangtools.yang.model.api.Module;
 import org.opendaylight.yangtools.yang.model.api.SchemaContext;
 import org.opendaylight.yangtools.yang.model.api.Submodule;
@@ -31,18 +31,18 @@ public class Bug7480Test {
         final Collection<? extends Module> modules = context.getModules();
         assertEquals(8, modules.size());
 
-        assertNotNull(context.findModule(new URI("foo-imp"), Revision.of("2017-01-23")));
-        assertEquals(1, context.findModules(new URI("foo-imp-2")).size());
-        assertEquals(1, context.findModules(new URI("foo-imp-imp")).size());
-        assertEquals(1, context.findModules(new URI("bar")).size());
-        assertEquals(1, context.findModules(new URI("baz")).size());
-        assertTrue(context.findModule(new URI("baz-imp"), Revision.of("2002-01-01")).isPresent());
-        final Collection<? extends Module> foo = context.findModules(new URI("foo"));
+        assertNotNull(context.findModule(XMLNamespace.of("foo-imp"), Revision.of("2017-01-23")));
+        assertEquals(1, context.findModules(XMLNamespace.of("foo-imp-2")).size());
+        assertEquals(1, context.findModules(XMLNamespace.of("foo-imp-imp")).size());
+        assertEquals(1, context.findModules(XMLNamespace.of("bar")).size());
+        assertEquals(1, context.findModules(XMLNamespace.of("baz")).size());
+        assertTrue(context.findModule(XMLNamespace.of("baz-imp"), Revision.of("2002-01-01")).isPresent());
+        final Collection<? extends Module> foo = context.findModules(XMLNamespace.of("foo"));
         assertEquals(1, foo.size());
         final Collection<? extends Submodule> subFoos = foo.iterator().next().getSubmodules();
         assertEquals(1, subFoos.size());
 
-        final Module parentMod = context.findModule(new URI("parent-mod-ns"), Revision.of("2017-09-07")).get();
+        final Module parentMod = context.findModule(XMLNamespace.of("parent-mod-ns"), Revision.of("2017-09-07")).get();
         assertEquals(1, parentMod.getSubmodules().size());
     }
 
index 29c8c2127e5f695c40ad70a2f9861f57a552356a..4231aed974625af40ebcb400a0b02fee683b7ecd 100644 (file)
@@ -15,11 +15,11 @@ import static org.opendaylight.yangtools.yang.stmt.StmtTestUtils.sourceForResour
 
 import com.google.common.collect.ImmutableSetMultimap;
 import com.google.common.collect.SetMultimap;
-import java.net.URI;
 import org.junit.Test;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.common.QNameModule;
 import org.opendaylight.yangtools.yang.common.Revision;
+import org.opendaylight.yangtools.yang.common.XMLNamespace;
 import org.opendaylight.yangtools.yang.model.api.SchemaContext;
 import org.opendaylight.yangtools.yang.model.api.SchemaPath;
 import org.opendaylight.yangtools.yang.model.util.SchemaContextUtil;
@@ -39,9 +39,9 @@ public class Bug8307Test {
     private static final StatementStreamSource BAR_INVALID_MODULE = sourceForResource("/bugs/bug8307/bar-invalid.yang");
     private static final StatementStreamSource BAZ_INVALID_MODULE = sourceForResource("/bugs/bug8307/baz-invalid.yang");
 
-    private static final URI FOO_NS = URI.create("foo-ns");
-    private static final URI BAR_NS = URI.create("bar-ns");
-    private static final URI BAZ_NS = URI.create("baz-ns");
+    private static final XMLNamespace FOO_NS = XMLNamespace.of("foo-ns");
+    private static final XMLNamespace BAR_NS = XMLNamespace.of("bar-ns");
+    private static final XMLNamespace BAZ_NS = XMLNamespace.of("baz-ns");
 
     private static final Revision REVISION = Revision.of("2017-05-16");
     private static final QNameModule FOO = QNameModule.create(FOO_NS, REVISION);
index 7b321752c35dacaf9655a5b2834104c74eeea6de..ee03318aa84d60b8ca7e51226c577b77661dace1 100644 (file)
@@ -11,13 +11,13 @@ import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertThrows;
 
-import java.net.URI;
 import java.util.Optional;
 import org.junit.Before;
 import org.junit.Test;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.common.QNameModule;
 import org.opendaylight.yangtools.yang.common.Revision;
+import org.opendaylight.yangtools.yang.common.XMLNamespace;
 import org.opendaylight.yangtools.yang.model.api.CaseSchemaNode;
 import org.opendaylight.yangtools.yang.model.api.ChoiceSchemaNode;
 import org.opendaylight.yangtools.yang.model.api.ContainerSchemaNode;
@@ -48,8 +48,8 @@ public class CaseStmtTest {
         rootBar = schema.findModule("bar", rev).get();
         assertNotNull(rootFoo);
         assertNotNull(rootBar);
-        qnameFoo = QNameModule.create(URI.create("foo"), rev);
-        qnameBar = QNameModule.create(URI.create("bar"), rev);
+        qnameFoo = QNameModule.create(XMLNamespace.of("foo"), rev);
+        qnameBar = QNameModule.create(XMLNamespace.of("bar"), rev);
         assertNotNull(qnameFoo);
         assertNotNull(qnameBar);
     }
index dbec3114b05a71f2d34f248264bc0e8420260974..6667a4805e007a18d72723229b2e41b52c92ccc1 100644 (file)
@@ -14,12 +14,12 @@ import static org.opendaylight.yangtools.yang.stmt.StmtTestUtils.assertPathEqual
 import static org.opendaylight.yangtools.yang.stmt.StmtTestUtils.sourceForResource;
 
 import java.io.FileNotFoundException;
-import java.net.URI;
 import java.net.URISyntaxException;
 import java.util.Collection;
 import org.junit.Test;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.common.QNameModule;
+import org.opendaylight.yangtools.yang.common.XMLNamespace;
 import org.opendaylight.yangtools.yang.model.api.ContainerSchemaNode;
 import org.opendaylight.yangtools.yang.model.api.DataSchemaNode;
 import org.opendaylight.yangtools.yang.model.api.GroupingDefinition;
@@ -35,7 +35,7 @@ public class EffectiveBuildTest {
 
     private static final StatementStreamSource SIMPLE_MODULE = sourceForResource(
             "/stmt-test/effective-build/simple-module.yang");
-    private static final QNameModule SIMPLE_MODULE_QNAME = QNameModule.create(URI.create("simple.yang"));
+    private static final QNameModule SIMPLE_MODULE_QNAME = QNameModule.create(XMLNamespace.of("simple.yang"));
     private static final StatementStreamSource YANG_EXT = sourceForResource(
             "/stmt-test/extensions/yang-ext.yang");
 
index 27c7241e64723feb0d4fa0f5846827214fa4d54c..0ee7f97694ca1d5b8cf938265e478cc3c761f595 100644 (file)
@@ -12,13 +12,13 @@ import static org.junit.Assert.assertNotNull;
 import static org.opendaylight.yangtools.yang.stmt.StmtTestUtils.assertPathEquals;
 import static org.opendaylight.yangtools.yang.stmt.StmtTestUtils.sourceForResource;
 
-import java.net.URI;
 import java.util.Collection;
 import java.util.Optional;
 import org.junit.Test;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.common.QNameModule;
 import org.opendaylight.yangtools.yang.common.Revision;
+import org.opendaylight.yangtools.yang.common.XMLNamespace;
 import org.opendaylight.yangtools.yang.common.YangVersion;
 import org.opendaylight.yangtools.yang.model.api.AugmentationSchemaNode;
 import org.opendaylight.yangtools.yang.model.api.ContainerSchemaNode;
@@ -50,7 +50,7 @@ public class EffectiveModuleTest {
     private static final StatementStreamSource SUBMODULE = sourceForResource(
             "/semantic-statement-parser/effective-module/submod.yang");
 
-    private static final QNameModule ROOT_MODULE_QNAME = QNameModule.create(URI.create("root-ns"));
+    private static final QNameModule ROOT_MODULE_QNAME = QNameModule.create(XMLNamespace.of("root-ns"));
 
     private static final QName CONT = QName.create(ROOT_MODULE_QNAME, "cont");
     private static final QName FEATURE1 = QName.create(ROOT_MODULE_QNAME, "feature1");
@@ -106,7 +106,7 @@ public class EffectiveModuleTest {
         assertEquals(1, deviations.size());
         final Deviation deviationStmt = deviations.iterator().next();
         assertNotNull(deviationStmt);
-        final QNameModule importedModuleQName = QNameModule.create(URI.create("imported"), REVISION);
+        final QNameModule importedModuleQName = QNameModule.create(XMLNamespace.of("imported"), REVISION);
         final QName importedContQName = QName.create(importedModuleQName, "cont");
         assertEquals(Absolute.of(importedContQName), deviationStmt.getTargetPath());
         assertEquals(DeviateKind.ADD, deviationStmt.getDeviates().iterator().next().getDeviateType());
index 305723d2e9bd0289dbd4f90f6fe190ec1547460a..120000a3bafe6286a2b82b7f608f553d67ef957a 100644 (file)
@@ -12,12 +12,12 @@ import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertNotNull;
 import static org.opendaylight.yangtools.yang.stmt.StmtTestUtils.sourceForResource;
 
-import java.net.URI;
 import java.util.Collection;
 import java.util.Optional;
 import org.junit.Test;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.common.QNameModule;
+import org.opendaylight.yangtools.yang.common.XMLNamespace;
 import org.opendaylight.yangtools.yang.model.api.DataSchemaNode;
 import org.opendaylight.yangtools.yang.model.api.Module;
 import org.opendaylight.yangtools.yang.model.api.SchemaContext;
@@ -39,7 +39,7 @@ public class EffectiveModulesAndSubmodulesTest {
     private static final StatementStreamSource SUBMODULE_TO_SUBMODULE_1 = sourceForResource(
             "/stmt-test/submodules/submodule-to-submodule-1.yang");
 
-    private static final QNameModule ROOT = QNameModule.create(URI.create("root-module"));
+    private static final QNameModule ROOT = QNameModule.create(XMLNamespace.of("root-module"));
 
     @Test
     public void modulesAndSubmodulesSimpleReferencesTest() throws ReactorException {
@@ -164,8 +164,8 @@ public class EffectiveModulesAndSubmodulesTest {
 
     private static void findModulesSubTest(final SchemaContext result, final Module root, final Module imported) {
         final Module foundRoot = result.findModule("root-module").get();
-        final Collection<? extends Module> foundRoots = result.findModules(URI.create("root-module"));
-        final Module foundRoot3 = result.findModule(URI.create("root-module")).get();
+        final Collection<? extends Module> foundRoots = result.findModules(XMLNamespace.of("root-module"));
+        final Module foundRoot3 = result.findModule(XMLNamespace.of("root-module")).get();
 
         assertNotNull(foundRoot);
         assertNotNull(foundRoots);
@@ -180,8 +180,8 @@ public class EffectiveModulesAndSubmodulesTest {
         assertEquals(root, foundRoot3);
 
         final Module foundImported = result.findModule("imported-module").get();
-        final Collection<? extends Module> foundImporteds = result.findModules(URI.create("imported-module"));
-        final Module foundImported3 = result.findModule(URI.create("imported-module")).get();
+        final Collection<? extends Module> foundImporteds = result.findModules(XMLNamespace.of("imported-module"));
+        final Module foundImported3 = result.findModule(XMLNamespace.of("imported-module")).get();
 
         assertNotNull(foundImported);
         assertNotNull(foundImporteds);
index 5fdbc7f528f172d09b03b1a763af168c78b78ec2..5a15a0a25f3089b746665866352cb784b716e15e 100644 (file)
@@ -14,7 +14,6 @@ import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertTrue;
 
 import java.io.IOException;
-import java.net.URI;
 import java.net.URISyntaxException;
 import java.text.ParseException;
 import java.util.Collection;
@@ -23,6 +22,7 @@ import java.util.Set;
 import org.junit.Test;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.common.Revision;
+import org.opendaylight.yangtools.yang.common.XMLNamespace;
 import org.opendaylight.yangtools.yang.model.api.DataSchemaNode;
 import org.opendaylight.yangtools.yang.model.api.ExtensionDefinition;
 import org.opendaylight.yangtools.yang.model.api.Module;
@@ -72,7 +72,7 @@ public class EffectiveSchemaContextTest {
         assertNull(schemaContext.dataChildByName(QName.create("foo-namespace", "2016-09-21", "foo-cont")));
 
         assertFalse(schemaContext.findModule("foo", Revision.of("2016-08-21")).isPresent());
-        assertFalse(schemaContext.findModule(URI.create("foo-namespace"), Revision.of("2016-08-21")).isPresent());
+        assertFalse(schemaContext.findModule(XMLNamespace.of("foo-namespace"), Revision.of("2016-08-21")).isPresent());
 
         assertFalse(schemaContext.isAugmenting());
         assertFalse(schemaContext.isAddedByUses());
index 8bf7494cd5395bac77d45b209c18a179aa5d6213..c3650094f0d9c25b0c545814af7368b613722a96 100644 (file)
@@ -15,7 +15,6 @@ import static org.junit.Assert.assertTrue;
 import static org.opendaylight.yangtools.yang.stmt.StmtTestUtils.assertPathEquals;
 
 import java.io.IOException;
-import java.net.URI;
 import java.text.ParseException;
 import java.util.Collection;
 import java.util.Map;
@@ -25,6 +24,7 @@ import org.junit.Test;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.common.QNameModule;
 import org.opendaylight.yangtools.yang.common.Revision;
+import org.opendaylight.yangtools.yang.common.XMLNamespace;
 import org.opendaylight.yangtools.yang.model.api.AnyxmlSchemaNode;
 import org.opendaylight.yangtools.yang.model.api.AugmentationSchemaNode;
 import org.opendaylight.yangtools.yang.model.api.CaseSchemaNode;
@@ -422,7 +422,7 @@ public class GroupingTest {
         assertNotNull(gz);
         assertNotNull(gzz);
 
-        final QNameModule expectedModule = QNameModule.create(URI.create("urn:grouping:cascade-uses"),
+        final QNameModule expectedModule = QNameModule.create(XMLNamespace.of("urn:grouping:cascade-uses"),
             Revision.of("2013-07-18"));
 
         // grouping-U
index e3f9e1982740b5af54c40f7ec28ccd103a92df6d..a9fa293a522b44b4ae52ec8db5c6a7f59d43f815 100644 (file)
@@ -13,13 +13,13 @@ import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertTrue;
 import static org.opendaylight.yangtools.yang.stmt.StmtTestUtils.sourceForResource;
 
-import java.net.URI;
 import java.util.Collection;
 import java.util.Optional;
 import org.junit.Test;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.common.QNameModule;
 import org.opendaylight.yangtools.yang.common.Revision;
+import org.opendaylight.yangtools.yang.common.XMLNamespace;
 import org.opendaylight.yangtools.yang.model.api.ContainerSchemaNode;
 import org.opendaylight.yangtools.yang.model.api.DataSchemaNode;
 import org.opendaylight.yangtools.yang.model.api.LeafSchemaNode;
@@ -124,7 +124,7 @@ public class MoreRevisionsTest {
     }
 
     private static void checkContentFullTest(final SchemaContext context) {
-        URI yangTypesNS = URI.create("urn:ietf:params:xml:ns:yang:ietf-yang-types");
+        final XMLNamespace yangTypesNS = XMLNamespace.of("urn:ietf:params:xml:ns:yang:ietf-yang-types");
 
         final Revision rev20100924 = Revision.of("2010-09-24");
         final Revision rev20130516 = Revision.of("2013-05-16");
@@ -187,7 +187,7 @@ public class MoreRevisionsTest {
     }
 
     private static void checkContentSimpleTest(final SchemaContext context) {
-        URI yangTypesNS = URI.create("urn:ietf:params:xml:ns:yang:ietf-yang-types");
+        final XMLNamespace yangTypesNS = XMLNamespace.of("urn:ietf:params:xml:ns:yang:ietf-yang-types");
 
         final Revision rev20100924 = Revision.of("2010-09-24");
         final Revision rev20130516 = Revision.of("2013-05-16");
@@ -214,7 +214,7 @@ public class MoreRevisionsTest {
 
     private static void checkInterfacesModuleSimpleTest(final SchemaContext context,
             final Revision rev20100924, final QName dateTimeTypeDef20100924) {
-        URI interfacesNS = URI.create("urn:ietf:params:xml:ns:yang:ietf-interfaces");
+        XMLNamespace interfacesNS = XMLNamespace.of("urn:ietf:params:xml:ns:yang:ietf-interfaces");
         Revision rev20121115 = Revision.of("2012-11-15");
         final QNameModule interfacesNS20121115 = QNameModule.create(interfacesNS, rev20121115);
         QName lastChange = QName.create(interfacesNS20121115, "last-change");
@@ -236,7 +236,7 @@ public class MoreRevisionsTest {
 
     private static void checkNetconfMonitoringModuleSimpleTest(final SchemaContext context,
             final Revision rev20130715, final QName dateTimeTypeDef20130715) {
-        URI monitoringNS = URI.create("urn:ietf:params:xml:ns:yang:ietf-netconf-monitoring");
+        final XMLNamespace monitoringNS = XMLNamespace.of("urn:ietf:params:xml:ns:yang:ietf-netconf-monitoring");
         final QNameModule monitoring19700101 = QNameModule.create(monitoringNS);
         QName lockedTime = QName.create(monitoring19700101, "locked-time");
 
index 9ce505bd4966430e191edb0b2f79a3f295299f22..629fdde467849cea96f6d5575d6cbc201d953f5f 100644 (file)
@@ -16,7 +16,6 @@ import static org.opendaylight.yangtools.yang.stmt.StmtTestUtils.sourceForResour
 
 import com.google.common.collect.Iterables;
 import com.google.common.collect.Range;
-import java.net.URI;
 import java.util.Collection;
 import java.util.Iterator;
 import java.util.List;
@@ -26,6 +25,7 @@ import org.junit.Test;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.common.Revision;
 import org.opendaylight.yangtools.yang.common.Uint32;
+import org.opendaylight.yangtools.yang.common.XMLNamespace;
 import org.opendaylight.yangtools.yang.model.api.IdentitySchemaNode;
 import org.opendaylight.yangtools.yang.model.api.LeafSchemaNode;
 import org.opendaylight.yangtools.yang.model.api.Module;
@@ -291,7 +291,7 @@ public class TypesResolutionTest {
         assertEquals(Status.CURRENT, testedType.getStatus());
 
         QName testedTypeQName = testedType.getQName();
-        assertEquals(URI.create("urn:ietf:params:xml:ns:yang:iana-timezones"), testedTypeQName.getNamespace());
+        assertEquals(XMLNamespace.of("urn:ietf:params:xml:ns:yang:iana-timezones"), testedTypeQName.getNamespace());
         assertEquals(Revision.ofNullable("2012-07-09"), testedTypeQName.getRevision());
         assertEquals("iana-timezone", testedTypeQName.getLocalName());
 
@@ -324,7 +324,7 @@ public class TypesResolutionTest {
         assertEquals("^(?:\\d*(\\.\\d*){1,127})$", pattern.getJavaPatternString());
 
         QName testedTypeQName = testedType.getQName();
-        assertEquals(URI.create("urn:ietf:params:xml:ns:yang:ietf-yang-types"), testedTypeQName.getNamespace());
+        assertEquals(XMLNamespace.of("urn:ietf:params:xml:ns:yang:ietf-yang-types"), testedTypeQName.getNamespace());
         assertEquals(Revision.ofNullable("2010-09-24"), testedTypeQName.getRevision());
         assertEquals("object-identifier-128", testedTypeQName.getLocalName());
 
@@ -337,7 +337,8 @@ public class TypesResolutionTest {
                 pattern.getJavaPatternString());
 
         QName testedTypeBaseQName = testedTypeBase.getQName();
-        assertEquals(URI.create("urn:ietf:params:xml:ns:yang:ietf-yang-types"), testedTypeBaseQName.getNamespace());
+        assertEquals(XMLNamespace.of("urn:ietf:params:xml:ns:yang:ietf-yang-types"),
+            testedTypeBaseQName.getNamespace());
         assertEquals(Revision.ofNullable("2010-09-24"), testedTypeBaseQName.getRevision());
         assertEquals("object-identifier", testedTypeBaseQName.getLocalName());
     }
@@ -349,7 +350,7 @@ public class TypesResolutionTest {
         TypeDefinition<?> testedType = TestUtils.findTypedef(typedefs, "service-type-ref");
         IdentityrefTypeDefinition baseType = (IdentityrefTypeDefinition) testedType.getBaseType();
         QName identity = baseType.getIdentities().iterator().next().getQName();
-        assertEquals(URI.create("urn:custom.types.demo"), identity.getNamespace());
+        assertEquals(XMLNamespace.of("urn:custom.types.demo"), identity.getNamespace());
         assertEquals(Revision.ofNullable("2012-04-16"), identity.getRevision());
         assertEquals("service-type", identity.getLocalName());
 
index 27a28a2b0d07c5689243555bfd82c5b902e44691..df392794cf53d3a375de9d5dfe42b6afe75b15c4 100644 (file)
@@ -14,7 +14,6 @@ import static org.junit.Assert.assertTrue;
 import static org.opendaylight.yangtools.yang.stmt.StmtTestUtils.assertPathEquals;
 
 import java.io.IOException;
-import java.net.URI;
 import java.net.URISyntaxException;
 import java.util.ArrayDeque;
 import java.util.Collection;
@@ -24,6 +23,7 @@ import org.junit.Test;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.common.QNameModule;
 import org.opendaylight.yangtools.yang.common.Revision;
+import org.opendaylight.yangtools.yang.common.XMLNamespace;
 import org.opendaylight.yangtools.yang.model.api.ChoiceSchemaNode;
 import org.opendaylight.yangtools.yang.model.api.ContainerSchemaNode;
 import org.opendaylight.yangtools.yang.model.api.DataSchemaNode;
@@ -43,9 +43,9 @@ import org.opendaylight.yangtools.yang.parser.spi.meta.ReactorException;
 public class UsesAugmentTest {
 
     private static final QNameModule UG = QNameModule.create(
-        URI.create("urn:opendaylight:params:xml:ns:yang:uses-grouping"), Revision.of("2013-07-30"));
+        XMLNamespace.of("urn:opendaylight:params:xml:ns:yang:uses-grouping"), Revision.of("2013-07-30"));
     private static final QNameModule GD = QNameModule.create(
-        URI.create("urn:opendaylight:params:xml:ns:yang:grouping-definitions"), Revision.of("2013-09-04"));
+        XMLNamespace.of("urn:opendaylight:params:xml:ns:yang:grouping-definitions"), Revision.of("2013-09-04"));
 
     private SchemaContext context;
 
index 95ee12b471bc1f658922b1a9ad3109c2f20a83cf..b17f4545fae0f1d6fccc928b96c9e4269a31f6c9 100644 (file)
@@ -10,9 +10,9 @@ package org.opendaylight.yangtools.yang.stmt;
 import static org.junit.Assert.assertNotSame;
 import static org.junit.Assert.assertSame;
 
-import java.net.URI;
 import org.junit.Test;
 import org.opendaylight.yangtools.yang.common.QNameModule;
+import org.opendaylight.yangtools.yang.common.XMLNamespace;
 import org.opendaylight.yangtools.yang.model.api.stmt.GroupingEffectiveStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.KeyEffectiveStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.ListEffectiveStatement;
@@ -22,7 +22,7 @@ public class YT1195Test {
     @Test
     public void testKeyStatementReuse() throws Exception {
         final ModuleEffectiveStatement module = StmtTestUtils.parseYangSource("/bugs/YT1195/key.yang")
-            .getModuleStatement(QNameModule.create(URI.create("foo")));
+            .getModuleStatement(QNameModule.create(XMLNamespace.of("foo")));
 
         final ListEffectiveStatement grpFoo = module
             .findFirstEffectiveSubstatement(GroupingEffectiveStatement.class).orElseThrow()
index 03a4547bd648fc2d854044219daa6c68a6365467..295f3f341b13805375726d4fda00b43b538ec39d 100644 (file)
@@ -12,11 +12,11 @@ import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertNotSame;
 import static org.junit.Assert.assertSame;
 
-import java.net.URI;
 import java.util.List;
 import java.util.stream.Collectors;
 import org.junit.Test;
 import org.opendaylight.yangtools.yang.common.QNameModule;
+import org.opendaylight.yangtools.yang.common.XMLNamespace;
 import org.opendaylight.yangtools.yang.model.api.stmt.AugmentEffectiveStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.CaseEffectiveStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.ChoiceEffectiveStatement;
@@ -34,7 +34,7 @@ public class YT1208Test {
     @Test
     public void testAugmentStatementReuse() throws Exception {
         final ModuleEffectiveStatement module = StmtTestUtils.parseYangSource("/bugs/YT1208/augment.yang")
-            .getModuleStatement(QNameModule.create(URI.create("foo")));
+            .getModuleStatement(QNameModule.create(XMLNamespace.of("foo")));
 
         final NotificationEffectiveStatement notif = module
             .findFirstEffectiveSubstatement(NotificationEffectiveStatement.class).orElseThrow();
@@ -54,7 +54,7 @@ public class YT1208Test {
     @Test
     public void testCaseStatementReuse() throws Exception {
         final ModuleEffectiveStatement module = StmtTestUtils.parseYangSource("/bugs/YT1208/case.yang")
-            .getModuleStatement(QNameModule.create(URI.create("foo")));
+            .getModuleStatement(QNameModule.create(XMLNamespace.of("foo")));
 
         final NotificationEffectiveStatement notif = module
             .findFirstEffectiveSubstatement(NotificationEffectiveStatement.class).orElseThrow();
@@ -74,7 +74,7 @@ public class YT1208Test {
     @Test
     public void testChoiceStatementReuse() throws Exception {
         final ModuleEffectiveStatement module = StmtTestUtils.parseYangSource("/bugs/YT1208/choice.yang")
-            .getModuleStatement(QNameModule.create(URI.create("foo")));
+            .getModuleStatement(QNameModule.create(XMLNamespace.of("foo")));
 
         final NotificationEffectiveStatement notif = module
             .findFirstEffectiveSubstatement(NotificationEffectiveStatement.class).orElseThrow();
@@ -92,7 +92,7 @@ public class YT1208Test {
     @Test
     public void testGroupingStatementReuse() throws Exception {
         final ModuleEffectiveStatement module = StmtTestUtils.parseYangSource("/bugs/YT1208/grouping.yang")
-            .getModuleStatement(QNameModule.create(URI.create("foo")));
+            .getModuleStatement(QNameModule.create(XMLNamespace.of("foo")));
 
         final NotificationEffectiveStatement notif = module
             .findFirstEffectiveSubstatement(NotificationEffectiveStatement.class).orElseThrow();
@@ -112,7 +112,7 @@ public class YT1208Test {
     @Test
     public void testLeafStatementReuse() throws Exception {
         final ModuleEffectiveStatement module = StmtTestUtils.parseYangSource("/bugs/YT1208/leaf.yang")
-            .getModuleStatement(QNameModule.create(URI.create("foo")));
+            .getModuleStatement(QNameModule.create(XMLNamespace.of("foo")));
         assertNotNull(module);
 
         final NotificationEffectiveStatement notif = module
@@ -131,7 +131,7 @@ public class YT1208Test {
     @Test
     public void testLeafListStatementReuse() throws Exception {
         final ModuleEffectiveStatement module = StmtTestUtils.parseYangSource("/bugs/YT1208/leaflist.yang")
-            .getModuleStatement(QNameModule.create(URI.create("foo")));
+            .getModuleStatement(QNameModule.create(XMLNamespace.of("foo")));
 
         final NotificationEffectiveStatement notif = module
             .findFirstEffectiveSubstatement(NotificationEffectiveStatement.class).orElseThrow();
@@ -149,7 +149,7 @@ public class YT1208Test {
     @Test
     public void testListStatementReuse() throws Exception {
         final ModuleEffectiveStatement module = StmtTestUtils.parseYangSource("/bugs/YT1208/list.yang")
-            .getModuleStatement(QNameModule.create(URI.create("foo")));
+            .getModuleStatement(QNameModule.create(XMLNamespace.of("foo")));
 
         final NotificationEffectiveStatement notif = module
             .findFirstEffectiveSubstatement(NotificationEffectiveStatement.class).orElseThrow();
@@ -167,7 +167,7 @@ public class YT1208Test {
     @Test
     public void testTypedefStatementReuse() throws Exception {
         final ModuleEffectiveStatement module = StmtTestUtils.parseYangSource("/bugs/YT1208/typedef.yang")
-            .getModuleStatement(QNameModule.create(URI.create("foo")));
+            .getModuleStatement(QNameModule.create(XMLNamespace.of("foo")));
 
         final TypedefEffectiveStatement grpBar = module
             .findFirstEffectiveSubstatement(GroupingEffectiveStatement.class).orElseThrow()
@@ -183,7 +183,7 @@ public class YT1208Test {
     @Test
     public void testUsesStatementReuse() throws Exception {
         final ModuleEffectiveStatement module = StmtTestUtils.parseYangSource("/bugs/YT1208/uses.yang")
-            .getModuleStatement(QNameModule.create(URI.create("foo")));
+            .getModuleStatement(QNameModule.create(XMLNamespace.of("foo")));
         assertNotNull(module);
         final List<GroupingEffectiveStatement> groupings = module
             .streamEffectiveSubstatements(GroupingEffectiveStatement.class).collect(Collectors.toList());
index 8518166d1331e04a550271cb284eb0b172326df1..c22c2d53218d986a5fd663ac41a355d95e42ea5a 100644 (file)
@@ -10,9 +10,9 @@ package org.opendaylight.yangtools.yang.stmt;
 import static org.junit.Assert.assertNotSame;
 import static org.junit.Assert.assertSame;
 
-import java.net.URI;
 import org.junit.Test;
 import org.opendaylight.yangtools.yang.common.QNameModule;
+import org.opendaylight.yangtools.yang.common.XMLNamespace;
 import org.opendaylight.yangtools.yang.model.api.stmt.GroupingEffectiveStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.LeafEffectiveStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.ModuleEffectiveStatement;
@@ -22,7 +22,7 @@ public class YT1209Test {
     @Test
     public void testWhenStatementReuse() throws Exception {
         final ModuleEffectiveStatement module = StmtTestUtils.parseYangSource("/bugs/YT1209/when.yang")
-            .getModuleStatement(QNameModule.create(URI.create("foo")));
+            .getModuleStatement(QNameModule.create(XMLNamespace.of("foo")));
 
         final LeafEffectiveStatement grpFoo = module
             .findFirstEffectiveSubstatement(GroupingEffectiveStatement.class).orElseThrow()
index 7da45d5b7d2c42609186b4517675e5018aa8ab94..70c2d67d5e62ee140af5c1c9bec60e5d41345260 100644 (file)
@@ -11,11 +11,11 @@ import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotSame;
 import static org.junit.Assert.assertSame;
 
-import java.net.URI;
 import java.util.List;
 import java.util.stream.Collectors;
 import org.junit.Test;
 import org.opendaylight.yangtools.yang.common.QNameModule;
+import org.opendaylight.yangtools.yang.common.XMLNamespace;
 import org.opendaylight.yangtools.yang.model.api.stmt.AnyxmlEffectiveStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.ContainerEffectiveStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.GroupingEffectiveStatement;
@@ -27,7 +27,7 @@ public class YT1212Test {
     @Test
     public void testActiontatementReuse() throws Exception {
         final ModuleEffectiveStatement module = StmtTestUtils.parseYangSource("/bugs/YT1212/anyxml.yang")
-            .getModuleStatement(QNameModule.create(URI.create("foo")));
+            .getModuleStatement(QNameModule.create(XMLNamespace.of("foo")));
 
         final AnyxmlEffectiveStatement grpFoo = module
             .findFirstEffectiveSubstatement(GroupingEffectiveStatement.class).orElseThrow()
@@ -46,7 +46,7 @@ public class YT1212Test {
     @Test
     public void testLeafStatementReuse() throws Exception {
         final ModuleEffectiveStatement module = StmtTestUtils.parseYangSource("/bugs/YT1212/leaf.yang")
-            .getModuleStatement(QNameModule.create(URI.create("foo")));
+            .getModuleStatement(QNameModule.create(XMLNamespace.of("foo")));
 
         final LeafEffectiveStatement grpFoo = module
             .findFirstEffectiveSubstatement(GroupingEffectiveStatement.class).orElseThrow()
@@ -65,7 +65,7 @@ public class YT1212Test {
     @Test
     public void testContainerStatementReuse() throws Exception {
         final ModuleEffectiveStatement module = StmtTestUtils.parseYangSource("/bugs/YT1212/container.yang")
-            .getModuleStatement(QNameModule.create(URI.create("foo")));
+            .getModuleStatement(QNameModule.create(XMLNamespace.of("foo")));
 
         final NotificationEffectiveStatement notif =
             module.findFirstEffectiveSubstatement(NotificationEffectiveStatement.class).orElseThrow();
index 24662de6d91a0bc13019bdf6c5c3d73d2dc75fe0..b51a60a6b206e5e21246976f0605c88a1e090673 100644 (file)
@@ -9,11 +9,11 @@ package org.opendaylight.yangtools.yang.stmt;
 
 import static org.junit.Assert.assertNotNull;
 
-import java.net.URI;
 import org.junit.Test;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.common.QNameModule;
 import org.opendaylight.yangtools.yang.common.Revision;
+import org.opendaylight.yangtools.yang.common.XMLNamespace;
 import org.opendaylight.yangtools.yang.model.api.Module;
 import org.opendaylight.yangtools.yang.model.api.SchemaContext;
 import org.opendaylight.yangtools.yang.model.api.SchemaNode;
@@ -21,7 +21,7 @@ import org.opendaylight.yangtools.yang.model.api.SchemaPath;
 import org.opendaylight.yangtools.yang.model.util.SchemaContextUtil;
 
 public class YT841Test {
-    private static final QNameModule FOO = QNameModule.create(URI.create("foo"), Revision.of("2018-01-02"));
+    private static final QNameModule FOO = QNameModule.create(XMLNamespace.of("foo"), Revision.of("2018-01-02"));
 
     @Test
     public void testFindDataSchemaNode() throws Exception {
index d25e300cbba64ea0f26f09e7e0aea01863b99c40..d103d07fe98f7ab56eefdf48a9304b146f3370f1 100644 (file)
@@ -13,13 +13,13 @@ import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
 
 import java.io.IOException;
-import java.net.URI;
 import java.net.URISyntaxException;
 import java.util.Optional;
 import org.junit.Test;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.common.QNameModule;
 import org.opendaylight.yangtools.yang.common.Revision;
+import org.opendaylight.yangtools.yang.common.XMLNamespace;
 import org.opendaylight.yangtools.yang.model.api.ContainerSchemaNode;
 import org.opendaylight.yangtools.yang.model.api.DataSchemaNode;
 import org.opendaylight.yangtools.yang.model.api.LeafSchemaNode;
@@ -30,7 +30,7 @@ import org.opendaylight.yangtools.yang.model.parser.api.YangSyntaxErrorException
 import org.opendaylight.yangtools.yang.parser.spi.meta.ReactorException;
 
 public class YT971Test {
-    private static final QNameModule NAMESPACE = QNameModule.create(URI.create("test"), Revision.of("2019-03-25"));
+    private static final QNameModule NAMESPACE = QNameModule.create(XMLNamespace.of("test"), Revision.of("2019-03-25"));
 
     @Test
     public void testEscapeLexer() throws URISyntaxException, IOException, YangSyntaxErrorException, ReactorException {
index 58c1d59121208d2186875d5c86760f270f1811cb..ec06bba087cc3ca45596e53995a328c19f6acff5 100644 (file)
@@ -13,7 +13,6 @@ import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertTrue;
 import static org.opendaylight.yangtools.yang.stmt.StmtTestUtils.assertPathEquals;
 
-import java.net.URI;
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.List;
@@ -23,6 +22,7 @@ import org.junit.Test;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.common.QNameModule;
 import org.opendaylight.yangtools.yang.common.Revision;
+import org.opendaylight.yangtools.yang.common.XMLNamespace;
 import org.opendaylight.yangtools.yang.model.api.AnydataSchemaNode;
 import org.opendaylight.yangtools.yang.model.api.AnyxmlSchemaNode;
 import org.opendaylight.yangtools.yang.model.api.ContainerSchemaNode;
@@ -38,7 +38,7 @@ import org.opendaylight.yangtools.yang.model.api.TypeDefinition;
 import org.opendaylight.yangtools.yang.model.api.UsesNode;
 
 public class YangParserSimpleTest {
-    private static final QNameModule SN = QNameModule.create(URI.create("urn:opendaylight:simple-nodes"),
+    private static final QNameModule SN = QNameModule.create(XMLNamespace.of("urn:opendaylight:simple-nodes"),
         Revision.of("2013-07-30"));
     private static final QName SN_NODES = QName.create(SN, "nodes");
     private static final SchemaPath SN_NODES_PATH = SchemaPath.create(true, SN_NODES);
@@ -221,7 +221,7 @@ public class YangParserSimpleTest {
     }
 
 
-    private static final URI NS = URI.create("urn:opendaylight:simple-nodes");
+    private static final XMLNamespace NS = XMLNamespace.of("urn:opendaylight:simple-nodes");
 
     private static SchemaPath createPath(final String... names) {
         final Revision rev = Revision.of("2013-07-30");
index 78d702cbbfb055533d9d6b0d58241c1ae7a336d6..417a0a5e73387643d36e9648152eeba157a1b31f 100644 (file)
@@ -18,7 +18,6 @@ import static org.opendaylight.yangtools.yang.stmt.StmtTestUtils.sourceForResour
 import com.google.common.collect.Range;
 import com.google.common.collect.RangeSet;
 import java.io.IOException;
-import java.net.URI;
 import java.net.URISyntaxException;
 import java.text.ParseException;
 import java.util.ArrayList;
@@ -32,6 +31,7 @@ import org.junit.Test;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.common.QNameModule;
 import org.opendaylight.yangtools.yang.common.Revision;
+import org.opendaylight.yangtools.yang.common.XMLNamespace;
 import org.opendaylight.yangtools.yang.common.YangVersion;
 import org.opendaylight.yangtools.yang.model.api.AugmentationSchemaNode;
 import org.opendaylight.yangtools.yang.model.api.CaseSchemaNode;
@@ -72,11 +72,11 @@ import org.opendaylight.yangtools.yang.parser.spi.source.StatementStreamSource;
 import org.opendaylight.yangtools.yang.parser.stmt.reactor.CrossSourceStatementReactor.BuildAction;
 
 public class YangParserTest {
-    private static final QNameModule FOO = QNameModule.create(URI.create("urn:opendaylight.foo"),
+    private static final QNameModule FOO = QNameModule.create(XMLNamespace.of("urn:opendaylight.foo"),
         Revision.of("2013-02-27"));
-    private static final QNameModule BAR = QNameModule.create(URI.create("urn:opendaylight.bar"),
+    private static final QNameModule BAR = QNameModule.create(XMLNamespace.of("urn:opendaylight.bar"),
         Revision.of("2013-07-03"));
-    private static final QNameModule BAZ = QNameModule.create(URI.create("urn:opendaylight.baz"),
+    private static final QNameModule BAZ = QNameModule.create(XMLNamespace.of("urn:opendaylight.baz"),
         Revision.of("2013-02-27"));
 
     private SchemaContext context;
index 883108fb2d70810f521234772c66412413386c10..a251296799076a9ab9abc8ce886697b8fdea4e1b 100644 (file)
@@ -15,7 +15,6 @@ import static org.opendaylight.yangtools.yang.stmt.StmtTestUtils.sourceForResour
 
 import com.google.common.collect.Iterables;
 import com.google.common.collect.Range;
-import java.net.URI;
 import java.util.Collection;
 import java.util.Map;
 import java.util.Optional;
@@ -24,6 +23,7 @@ import org.junit.Test;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.common.Revision;
 import org.opendaylight.yangtools.yang.common.Uint8;
+import org.opendaylight.yangtools.yang.common.XMLNamespace;
 import org.opendaylight.yangtools.yang.model.api.AnyxmlSchemaNode;
 import org.opendaylight.yangtools.yang.model.api.ChoiceSchemaNode;
 import org.opendaylight.yangtools.yang.model.api.ContainerSchemaNode;
@@ -51,9 +51,9 @@ import org.opendaylight.yangtools.yang.parser.spi.meta.ReactorException;
 import org.opendaylight.yangtools.yang.parser.spi.source.StatementStreamSource;
 
 public class YangParserWithContextTest {
-    private static final URI T1_NS = URI.create("urn:simple.demo.test1");
-    private static final URI T2_NS = URI.create("urn:simple.demo.test2");
-    private static final URI T3_NS = URI.create("urn:simple.demo.test3");
+    private static final XMLNamespace T1_NS = XMLNamespace.of("urn:simple.demo.test1");
+    private static final XMLNamespace T2_NS = XMLNamespace.of("urn:simple.demo.test2");
+    private static final XMLNamespace T3_NS = XMLNamespace.of("urn:simple.demo.test3");
     private static final Revision REV = Revision.of("2013-06-18");
 
     private static final StatementStreamSource BAR = sourceForResource("/model/bar.yang");
@@ -85,13 +85,13 @@ public class YangParserWithContextTest {
         assertTrue(leaf.getType() instanceof Uint16TypeDefinition);
         final Uint16TypeDefinition leafType = (Uint16TypeDefinition) leaf.getType();
         QName qname = leafType.getQName();
-        assertEquals(URI.create("urn:simple.demo.test1"), qname.getNamespace());
+        assertEquals(XMLNamespace.of("urn:simple.demo.test1"), qname.getNamespace());
         assertEquals(Revision.ofNullable("2013-06-18"), qname.getRevision());
         assertEquals("port-number", qname.getLocalName());
 
         final Uint16TypeDefinition leafBaseType = leafType.getBaseType();
         qname = leafBaseType.getQName();
-        assertEquals(URI.create("urn:ietf:params:xml:ns:yang:ietf-inet-types"), qname.getNamespace());
+        assertEquals(XMLNamespace.of("urn:ietf:params:xml:ns:yang:ietf-inet-types"), qname.getNamespace());
         assertEquals(Revision.ofNullable("2010-09-24"), qname.getRevision());
         assertEquals("port-number", qname.getLocalName());
 
@@ -111,7 +111,7 @@ public class YangParserWithContextTest {
                 .buildEffective();
 
         final Module testModule = context.findModule("test2", Revision.of("2013-06-18")).get();
-        final Module contextModule = context.findModules(URI.create("urn:opendaylight.baz")).iterator().next();
+        final Module contextModule = context.findModules(XMLNamespace.of("urn:opendaylight.baz")).iterator().next();
         assertNotNull(contextModule);
         final Collection<? extends GroupingDefinition> groupings = contextModule.getGroupings();
         assertEquals(1, groupings.size());
@@ -210,7 +210,7 @@ public class YangParserWithContextTest {
         final UsesNode usesNode = usesNodes.iterator().next();
 
         // test grouping path
-        assertEquals(QName.create(URI.create("urn:opendaylight.baz"), Revision.of("2013-02-27"), "target"),
+        assertEquals(QName.create(XMLNamespace.of("urn:opendaylight.baz"), Revision.of("2013-02-27"), "target"),
             usesNode.getSourceGrouping().getQName());
 
         // test refine
@@ -276,13 +276,13 @@ public class YangParserWithContextTest {
 
         final IdentitySchemaNode identity = identities.iterator().next();
         final QName idQName = identity.getQName();
-        assertEquals(URI.create("urn:simple.demo.test3"), idQName.getNamespace());
+        assertEquals(XMLNamespace.of("urn:simple.demo.test3"), idQName.getNamespace());
         assertEquals(Revision.ofNullable("2013-06-18"), idQName.getRevision());
         assertEquals("pt", idQName.getLocalName());
 
         final IdentitySchemaNode baseIdentity = Iterables.getOnlyElement(identity.getBaseIdentities());
         final QName idBaseQName = baseIdentity.getQName();
-        assertEquals(URI.create("urn:custom.types.demo"), idBaseQName.getNamespace());
+        assertEquals(XMLNamespace.of("urn:custom.types.demo"), idBaseQName.getNamespace());
         assertEquals(Revision.ofNullable("2012-04-16"), idBaseQName.getRevision());
         assertEquals("service-type", idBaseQName.getLocalName());
     }
@@ -304,7 +304,7 @@ public class YangParserWithContextTest {
 
         final UnrecognizedStatement un = unknownNodes.iterator().next();
         final QName unType = un.statementDefinition().getStatementName();
-        assertEquals(URI.create("urn:custom.types.demo"), unType.getNamespace());
+        assertEquals(XMLNamespace.of("urn:custom.types.demo"), unType.getNamespace());
         assertEquals(Revision.ofNullable("2012-04-16"), unType.getRevision());
         assertEquals("mountpoint", unType.getLocalName());
         assertEquals("point", un.argument());
@@ -360,7 +360,7 @@ public class YangParserWithContextTest {
 
         assertEquals(Optional.of("system/user ref"), dev.getReference());
 
-        final URI expectedNS = URI.create("urn:opendaylight.bar");
+        final XMLNamespace expectedNS = XMLNamespace.of("urn:opendaylight.bar");
         final Revision expectedRev = Revision.of("2013-07-03");
 
         assertEquals(Absolute.of(
index 37cac7aa20e40264b5d7906743abf7f2ba9511d6..39f70bbdd4b3841a3abff7cc12856d06e51ab7af 100644 (file)
@@ -12,10 +12,10 @@ import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertTrue;
 import static org.opendaylight.yangtools.yang.stmt.StmtTestUtils.sourceForResource;
 
-import java.net.URI;
 import org.junit.Test;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.common.QNameModule;
+import org.opendaylight.yangtools.yang.common.XMLNamespace;
 import org.opendaylight.yangtools.yang.model.api.LeafSchemaNode;
 import org.opendaylight.yangtools.yang.model.api.SchemaContext;
 import org.opendaylight.yangtools.yang.model.api.type.DecimalTypeDefinition;
@@ -33,7 +33,7 @@ public class YangTypes2StmtTest {
     private static final StatementStreamSource TYPEFILE4 = sourceForResource(
             "/semantic-statement-parser/identityreftest.yang");
 
-    private static final QNameModule TYPES2_MODULE = QNameModule.create(URI.create("types2"));
+    private static final QNameModule TYPES2_MODULE = QNameModule.create(XMLNamespace.of("types2"));
 
     private static final QName LF_DECIMAL = QName.create(TYPES2_MODULE, "lf-decimal");
     private static final QName LF_MY_STRING = QName.create(TYPES2_MODULE, "lf-my-string");
index b9ff232e115ffec7b9ea9923061bbd30ffd80e75..27af91539d4304d62dc5c5ae886026586ed71fd8 100644 (file)
@@ -12,9 +12,9 @@ import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertTrue;
 import static org.junit.Assert.fail;
 
-import java.net.URI;
 import org.junit.Test;
 import org.opendaylight.yangtools.concepts.SemVer;
+import org.opendaylight.yangtools.yang.common.XMLNamespace;
 import org.opendaylight.yangtools.yang.model.api.Module;
 import org.opendaylight.yangtools.yang.model.api.SchemaContext;
 import org.opendaylight.yangtools.yang.model.repo.api.StatementParserMode;
@@ -29,8 +29,9 @@ public class OpenconfigVersionBorderCaseTest {
             "/openconfig-version/border-case/border-case-valid-major", StatementParserMode.SEMVER_MODE);
         assertNotNull(context);
 
-        Module foo = context.findModules(URI.create("foo")).iterator().next();
-        Module semVer = context.findModules(URI.create("http://openconfig.net/yang/openconfig-ext")).iterator().next();
+        Module foo = context.findModules(XMLNamespace.of("foo")).iterator().next();
+        Module semVer = context.findModules(XMLNamespace.of("http://openconfig.net/yang/openconfig-ext"))
+            .iterator().next();
 
         assertEquals(SemVer.valueOf("0.0.1"), semVer.getSemanticVersion().get());
         assertEquals(SemVer.valueOf("0.1.1"), foo.getSemanticVersion().get());
@@ -44,8 +45,9 @@ public class OpenconfigVersionBorderCaseTest {
             "/openconfig-version/border-case/border-case-valid-minor", StatementParserMode.SEMVER_MODE);
         assertNotNull(context);
 
-        Module foo = context.findModules(URI.create("foo")).iterator().next();
-        Module semVer = context.findModules(URI.create("http://openconfig.net/yang/openconfig-ext")).iterator().next();
+        Module foo = context.findModules(XMLNamespace.of("foo")).iterator().next();
+        Module semVer = context.findModules(XMLNamespace.of("http://openconfig.net/yang/openconfig-ext"))
+            .iterator().next();
 
         assertEquals(SemVer.valueOf("0.0.1"), semVer.getSemanticVersion().get());
         assertEquals(SemVer.valueOf("0.1.1"), foo.getSemanticVersion().get());
@@ -59,8 +61,9 @@ public class OpenconfigVersionBorderCaseTest {
             "/openconfig-version/border-case/border-case-valid-patch", StatementParserMode.SEMVER_MODE);
         assertNotNull(context);
 
-        Module foo = context.findModules(URI.create("foo")).iterator().next();
-        Module semVer = context.findModules(URI.create("http://openconfig.net/yang/openconfig-ext")).iterator().next();
+        Module foo = context.findModules(XMLNamespace.of("foo")).iterator().next();
+        Module semVer = context.findModules(XMLNamespace.of("http://openconfig.net/yang/openconfig-ext"))
+            .iterator().next();
 
         assertEquals(SemVer.valueOf("0.0.1"), semVer.getSemanticVersion().get());
         assertEquals(SemVer.valueOf("0.1.1"), foo.getSemanticVersion().get());
index 3ebbcb0c887860b6064d4580e953766b05e326b3..7278948303ae7dcb170b266b6326bc558303305c 100644 (file)
@@ -11,10 +11,10 @@ import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertNull;
 
-import java.net.URI;
 import org.junit.Test;
 import org.opendaylight.yangtools.concepts.SemVer;
 import org.opendaylight.yangtools.yang.common.QName;
+import org.opendaylight.yangtools.yang.common.XMLNamespace;
 import org.opendaylight.yangtools.yang.model.api.Module;
 import org.opendaylight.yangtools.yang.model.api.SchemaContext;
 import org.opendaylight.yangtools.yang.model.repo.api.StatementParserMode;
@@ -40,8 +40,8 @@ public class OpenconfigVersionComplexTest {
     private static void verifySchemaContextTest1(final SchemaContext context) {
         assertNotNull(context);
 
-        final Module foo = context.findModules(URI.create("foo")).iterator().next();
-        final Module semVer = context.findModules(URI.create("http://openconfig.net/yang/openconfig-ext"))
+        final Module foo = context.findModules(XMLNamespace.of("foo")).iterator().next();
+        final Module semVer = context.findModules(XMLNamespace.of("http://openconfig.net/yang/openconfig-ext"))
                 .iterator().next();
 
         // check module versions
@@ -90,8 +90,8 @@ public class OpenconfigVersionComplexTest {
     private static void verifySchemaContextTest2(final SchemaContext context) {
         assertNotNull(context);
 
-        final Module foo = context.findModules(URI.create("foo")).iterator().next();
-        final Module semVer = context.findModules(URI.create("http://openconfig.net/yang/openconfig-ext"))
+        final Module foo = context.findModules(XMLNamespace.of("foo")).iterator().next();
+        final Module semVer = context.findModules(XMLNamespace.of("http://openconfig.net/yang/openconfig-ext"))
                 .iterator().next();
 
         // check module versions
index 988173f93af5731a99ffa71db2e9fbe16e548052..73b824dc1af7f57063141ad3369a8211e9b13563 100644 (file)
@@ -12,10 +12,10 @@ import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertTrue;
 import static org.junit.Assert.fail;
 
-import java.net.URI;
 import java.util.Optional;
 import org.junit.Test;
 import org.opendaylight.yangtools.concepts.SemVer;
+import org.opendaylight.yangtools.yang.common.XMLNamespace;
 import org.opendaylight.yangtools.yang.model.api.Module;
 import org.opendaylight.yangtools.yang.model.api.SchemaContext;
 import org.opendaylight.yangtools.yang.model.repo.api.StatementParserMode;
@@ -30,8 +30,8 @@ public class OpenconfigVersionDefaultsTest {
                 StatementParserMode.SEMVER_MODE);
         assertNotNull(context);
 
-        Module foo = context.findModules(new URI("foo")).iterator().next();
-        Module bar = context.findModules(new URI("bar")).iterator().next();
+        Module foo = context.findModules(XMLNamespace.of("foo")).iterator().next();
+        Module bar = context.findModules(XMLNamespace.of("bar")).iterator().next();
 
         assertEquals(Optional.empty(), foo.getSemanticVersion());
         assertEquals(Optional.empty(), bar.getSemanticVersion());
@@ -43,8 +43,8 @@ public class OpenconfigVersionDefaultsTest {
                 StatementParserMode.SEMVER_MODE);
         assertNotNull(context);
 
-        Module foo = context.findModules(new URI("foo")).iterator().next();
-        Module bar = context.findModules(new URI("bar")).iterator().next();
+        Module foo = context.findModules(XMLNamespace.of("foo")).iterator().next();
+        Module bar = context.findModules(XMLNamespace.of("bar")).iterator().next();
 
         assertEquals(Optional.empty(), foo.getSemanticVersion());
         assertEquals(SemVer.valueOf("0.99.99"), bar.getSemanticVersion().get());
index 65e75068e43f78318afaf205da7d7986a7c8959b..e67d943189b51a42812ca47bf5a94e178e9d11b5 100644 (file)
@@ -10,9 +10,9 @@ package org.opendaylight.yangtools.yang.stmt.openconfigver;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
 
-import java.net.URI;
 import org.junit.Test;
 import org.opendaylight.yangtools.concepts.SemVer;
+import org.opendaylight.yangtools.yang.common.XMLNamespace;
 import org.opendaylight.yangtools.yang.model.api.Module;
 import org.opendaylight.yangtools.yang.model.api.SchemaContext;
 import org.opendaylight.yangtools.yang.model.repo.api.StatementParserMode;
@@ -26,9 +26,10 @@ public class OpenconfigVersionIgnoringRevisionTest {
                 StatementParserMode.SEMVER_MODE);
         assertNotNull(context);
 
-        Module foo = context.findModules(new URI("foo")).iterator().next();
-        Module bar = context.findModules(new URI("bar")).iterator().next();
-        Module semVer = context.findModules(new URI("http://openconfig.net/yang/openconfig-ext")).iterator().next();
+        Module foo = context.findModules(XMLNamespace.of("foo")).iterator().next();
+        Module bar = context.findModules(XMLNamespace.of("bar")).iterator().next();
+        Module semVer = context.findModules(XMLNamespace.of("http://openconfig.net/yang/openconfig-ext"))
+            .iterator().next();
 
         assertEquals(SemVer.valueOf("0.0.1"), semVer.getSemanticVersion().get());
         assertEquals(SemVer.valueOf("0.1.1"), foo.getSemanticVersion().get());
@@ -41,8 +42,9 @@ public class OpenconfigVersionIgnoringRevisionTest {
                 StatementParserMode.SEMVER_MODE);
         assertNotNull(context);
 
-        Module foo = context.findModules(new URI("foo")).iterator().next();
-        Module semVer = context.findModules(new URI("http://openconfig.net/yang/openconfig-ext")).iterator().next();
+        Module foo = context.findModules(XMLNamespace.of("foo")).iterator().next();
+        Module semVer = context.findModules(XMLNamespace.of("http://openconfig.net/yang/openconfig-ext"))
+            .iterator().next();
         Module bar = StmtTestUtils.findImportedModule(context, foo, "bar");
 
         assertEquals(SemVer.valueOf("0.0.1"), semVer.getSemanticVersion().get());
index da4420e245e3231ab59df36a3751eccf7f552b5c..0a2436f585d793deb7efa2feb3d97c93d462f525 100644 (file)
@@ -12,9 +12,9 @@ import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertTrue;
 import static org.junit.Assert.fail;
 
-import java.net.URI;
 import org.junit.Test;
 import org.opendaylight.yangtools.concepts.SemVer;
+import org.opendaylight.yangtools.yang.common.XMLNamespace;
 import org.opendaylight.yangtools.yang.model.api.Module;
 import org.opendaylight.yangtools.yang.model.api.SchemaContext;
 import org.opendaylight.yangtools.yang.model.repo.api.StatementParserMode;
@@ -29,7 +29,8 @@ public class OpenconfigVersionImportTest {
                 StatementParserMode.SEMVER_MODE);
         assertNotNull(context);
 
-        Module semVer = context.findModules(new URI("http://openconfig.net/yang/openconfig-ext")).iterator().next();
+        Module semVer = context.findModules(XMLNamespace.of("http://openconfig.net/yang/openconfig-ext"))
+            .iterator().next();
 
         assertEquals(SemVer.valueOf("1.0.0"), semVer.getSemanticVersion().get());
     }
index 7359edb52a3136ac18991ff750a60912cff48cd2..2ef16b1172265931943d420d48aec38590b67476 100644 (file)
@@ -12,9 +12,9 @@ import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertTrue;
 import static org.junit.Assert.fail;
 
-import java.net.URI;
 import org.junit.Test;
 import org.opendaylight.yangtools.concepts.SemVer;
+import org.opendaylight.yangtools.yang.common.XMLNamespace;
 import org.opendaylight.yangtools.yang.model.api.Module;
 import org.opendaylight.yangtools.yang.model.api.ModuleImport;
 import org.opendaylight.yangtools.yang.model.api.SchemaContext;
@@ -54,8 +54,9 @@ public class OpenconfigVersionMultipleImportTest {
                 StatementParserMode.SEMVER_MODE);
         assertNotNull(context);
 
-        Module foo = context.findModules(new URI("foo")).iterator().next();
-        Module semVer = context.findModules(new URI("http://openconfig.net/yang/openconfig-ext")).iterator().next();
+        Module foo = context.findModules(XMLNamespace.of("foo")).iterator().next();
+        Module semVer = context.findModules(XMLNamespace.of("http://openconfig.net/yang/openconfig-ext"))
+            .iterator().next();
 
         assertEquals(SemVer.valueOf("0.0.1"), semVer.getSemanticVersion().get());
         assertEquals(SemVer.valueOf("0.1.1"), foo.getSemanticVersion().get());
@@ -69,8 +70,9 @@ public class OpenconfigVersionMultipleImportTest {
                 StatementParserMode.SEMVER_MODE);
         assertNotNull(context);
 
-        Module foo = context.findModules(new URI("foo")).iterator().next();
-        Module semVer = context.findModules(new URI("http://openconfig.net/yang/openconfig-ext")).iterator().next();
+        Module foo = context.findModules(XMLNamespace.of("foo")).iterator().next();
+        Module semVer = context.findModules(XMLNamespace.of("http://openconfig.net/yang/openconfig-ext"))
+            .iterator().next();
 
         assertEquals(SemVer.valueOf("0.0.1"), semVer.getSemanticVersion().get());
         assertEquals(SemVer.valueOf("0.1.1"), foo.getSemanticVersion().get());
index 55dc9991853bfcbbb509264306e682068df5279d..e7f5509f83e674940a47dce4441db19f9a4f9868 100644 (file)
@@ -10,9 +10,9 @@ package org.opendaylight.yangtools.yang.stmt.openconfigver;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
 
-import java.net.URI;
 import org.junit.Test;
 import org.opendaylight.yangtools.concepts.SemVer;
+import org.opendaylight.yangtools.yang.common.XMLNamespace;
 import org.opendaylight.yangtools.yang.model.api.Module;
 import org.opendaylight.yangtools.yang.model.api.SchemaContext;
 import org.opendaylight.yangtools.yang.model.repo.api.StatementParserMode;
@@ -26,9 +26,10 @@ public class OpenconfigVersionPositionTest {
                 StatementParserMode.SEMVER_MODE);
         assertNotNull(context);
 
-        Module foo = context.findModules(new URI("foo")).iterator().next();
-        Module bar = context.findModules(new URI("bar")).iterator().next();
-        Module semVer = context.findModules(new URI("http://openconfig.net/yang/openconfig-ext")).iterator().next();
+        Module foo = context.findModules(XMLNamespace.of("foo")).iterator().next();
+        Module bar = context.findModules(XMLNamespace.of("bar")).iterator().next();
+        Module semVer = context.findModules(XMLNamespace.of("http://openconfig.net/yang/openconfig-ext"))
+            .iterator().next();
 
         assertEquals(SemVer.valueOf("0.0.1"), semVer.getSemanticVersion().get());
         assertEquals(SemVer.valueOf("0.1.1"), foo.getSemanticVersion().get());
@@ -41,9 +42,10 @@ public class OpenconfigVersionPositionTest {
                 StatementParserMode.SEMVER_MODE);
         assertNotNull(context);
 
-        Module foo = context.findModules(new URI("foo")).iterator().next();
-        Module bar = context.findModules(new URI("bar")).iterator().next();
-        Module semVer = context.findModules(new URI("http://openconfig.net/yang/openconfig-ext")).iterator().next();
+        Module foo = context.findModules(XMLNamespace.of("foo")).iterator().next();
+        Module bar = context.findModules(XMLNamespace.of("bar")).iterator().next();
+        Module semVer = context.findModules(XMLNamespace.of("http://openconfig.net/yang/openconfig-ext"))
+            .iterator().next();
 
         assertEquals(SemVer.valueOf("0.0.1"), semVer.getSemanticVersion().get());
         assertEquals(SemVer.valueOf("0.1.1"), foo.getSemanticVersion().get());
@@ -56,9 +58,10 @@ public class OpenconfigVersionPositionTest {
                 StatementParserMode.SEMVER_MODE);
         assertNotNull(context);
 
-        Module foo = context.findModules(new URI("foo")).iterator().next();
-        Module bar = context.findModules(new URI("bar")).iterator().next();
-        Module semVer = context.findModules(new URI("http://openconfig.net/yang/openconfig-ext")).iterator().next();
+        Module foo = context.findModules(XMLNamespace.of("foo")).iterator().next();
+        Module bar = context.findModules(XMLNamespace.of("bar")).iterator().next();
+        Module semVer = context.findModules(XMLNamespace.of("http://openconfig.net/yang/openconfig-ext"))
+            .iterator().next();
 
         assertEquals(SemVer.valueOf("0.0.1"), semVer.getSemanticVersion().get());
         assertEquals(SemVer.valueOf("0.1.1"), foo.getSemanticVersion().get());
index 4b1a020a850a7994e93a1ddec7e1e31007c00683..b1b9460fb38b5f224a630a7b95e69b392a7416a5 100644 (file)
@@ -13,10 +13,10 @@ import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertTrue;
 import static org.junit.Assert.fail;
 
-import java.net.URI;
 import org.junit.Test;
 import org.opendaylight.yangtools.concepts.SemVer;
 import org.opendaylight.yangtools.yang.common.QName;
+import org.opendaylight.yangtools.yang.common.XMLNamespace;
 import org.opendaylight.yangtools.yang.model.api.ContainerSchemaNode;
 import org.opendaylight.yangtools.yang.model.api.Module;
 import org.opendaylight.yangtools.yang.model.api.SchemaContext;
@@ -34,9 +34,10 @@ public class OpenconfigVersionTest {
             StatementParserMode.SEMVER_MODE);
         assertNotNull(context);
 
-        Module foo = context.findModules(new URI("foo")).iterator().next();
-        Module bar = context.findModules(new URI("bar")).iterator().next();
-        Module semVer = context.findModules(new URI("http://openconfig.net/yang/openconfig-ext")).iterator().next();
+        Module foo = context.findModules(XMLNamespace.of("foo")).iterator().next();
+        Module bar = context.findModules(XMLNamespace.of("bar")).iterator().next();
+        Module semVer = context.findModules(XMLNamespace.of("http://openconfig.net/yang/openconfig-ext"))
+            .iterator().next();
 
         assertEquals(SemVer.valueOf("0.0.1"), semVer.getSemanticVersion().get());
         assertEquals(SemVer.valueOf("0.1.1"), foo.getSemanticVersion().get());
@@ -49,9 +50,10 @@ public class OpenconfigVersionTest {
             StatementParserMode.SEMVER_MODE);
         assertNotNull(context);
 
-        Module foo = context.findModules(new URI("foo")).iterator().next();
-        Module bar = context.findModules(new URI("bar")).iterator().next();
-        Module semVer = context.findModules(new URI("http://openconfig.net/yang/openconfig-ext")).iterator().next();
+        Module foo = context.findModules(XMLNamespace.of("foo")).iterator().next();
+        Module bar = context.findModules(XMLNamespace.of("bar")).iterator().next();
+        Module semVer = context.findModules(XMLNamespace.of("http://openconfig.net/yang/openconfig-ext"))
+            .iterator().next();
 
         assertEquals(SemVer.valueOf("0.0.1"), semVer.getSemanticVersion().get());
         assertEquals(SemVer.valueOf("0.1.1"), foo.getSemanticVersion().get());
@@ -64,8 +66,9 @@ public class OpenconfigVersionTest {
             StatementParserMode.SEMVER_MODE);
         assertNotNull(context);
 
-        Module foo = context.findModules(new URI("foo")).iterator().next();
-        Module semVer = context.findModules(new URI("http://openconfig.net/yang/openconfig-ext")).iterator().next();
+        Module foo = context.findModules(XMLNamespace.of("foo")).iterator().next();
+        Module semVer = context.findModules(XMLNamespace.of("http://openconfig.net/yang/openconfig-ext"))
+            .iterator().next();
 
         assertEquals(SemVer.valueOf("0.0.1"), semVer.getSemanticVersion().get());
         assertEquals(SemVer.valueOf("0.1.1"), foo.getSemanticVersion().get());
@@ -77,8 +80,9 @@ public class OpenconfigVersionTest {
                 StatementParserMode.SEMVER_MODE);
         assertNotNull(context);
 
-        Module foo = context.findModules(new URI("foo")).iterator().next();
-        Module semVer = context.findModules(new URI("http://openconfig.net/yang/openconfig-ext")).iterator().next();
+        Module foo = context.findModules(XMLNamespace.of("foo")).iterator().next();
+        Module semVer = context.findModules(XMLNamespace.of("http://openconfig.net/yang/openconfig-ext"))
+            .iterator().next();
 
         assertEquals(SemVer.valueOf("0.0.1"), semVer.getSemanticVersion().get());
         assertEquals(SemVer.valueOf("0.1.1"), foo.getSemanticVersion().get());
@@ -92,8 +96,9 @@ public class OpenconfigVersionTest {
                 StatementParserMode.SEMVER_MODE);
         assertNotNull(context);
 
-        Module foo = context.findModules(new URI("foo")).iterator().next();
-        Module semVer = context.findModules(new URI("http://openconfig.net/yang/openconfig-ext")).iterator().next();
+        Module foo = context.findModules(XMLNamespace.of("foo")).iterator().next();
+        Module semVer = context.findModules(XMLNamespace.of("http://openconfig.net/yang/openconfig-ext"))
+            .iterator().next();
 
         assertEquals(SemVer.valueOf("0.0.1"), semVer.getSemanticVersion().get());
         assertEquals(SemVer.valueOf("0.1.1"), foo.getSemanticVersion().get());
@@ -131,8 +136,9 @@ public class OpenconfigVersionTest {
             StatementParserMode.SEMVER_MODE);
         assertNotNull(context);
 
-        Module foo = context.findModules(new URI("foo")).iterator().next();
-        Module semVer = context.findModules(new URI("http://openconfig.net/yang/openconfig-ext")).iterator().next();
+        Module foo = context.findModules(XMLNamespace.of("foo")).iterator().next();
+        Module semVer = context.findModules(XMLNamespace.of("http://openconfig.net/yang/openconfig-ext"))
+            .iterator().next();
 
         assertEquals(SemVer.valueOf("0.0.1"), semVer.getSemanticVersion().get());
         assertEquals(SemVer.valueOf("2016.1.1"), foo.getSemanticVersion().get());
index dc0d1f5d5adc8f03f9edac271501bba444aa5972..773bf7c1d728f84bf9387ab83ef5c5ce44a9ec97 100644 (file)
@@ -14,10 +14,10 @@ import static org.junit.Assert.assertTrue;
 import static org.junit.Assert.fail;
 
 import java.io.IOException;
-import java.net.URI;
 import java.net.URISyntaxException;
 import org.junit.Test;
 import org.opendaylight.yangtools.concepts.SemVer;
+import org.opendaylight.yangtools.yang.common.XMLNamespace;
 import org.opendaylight.yangtools.yang.model.api.Module;
 import org.opendaylight.yangtools.yang.model.api.SchemaContext;
 import org.opendaylight.yangtools.yang.model.repo.api.StatementParserMode;
@@ -26,16 +26,16 @@ import org.opendaylight.yangtools.yang.stmt.StmtTestUtils;
 import org.xml.sax.SAXException;
 
 public class YinOpenconfigVersionTest {
-
     @Test
     public void basicTest() throws URISyntaxException, SAXException, IOException, ReactorException {
         SchemaContext context = StmtTestUtils.parseYinSources("/openconfig-version/yin-input/basic",
                 StatementParserMode.SEMVER_MODE);
         assertNotNull(context);
 
-        Module foo = context.findModules(URI.create("foo")).iterator().next();
-        Module bar = context.findModules(URI.create("bar")).iterator().next();
-        Module semVer = context.findModules(URI.create("http://openconfig.net/yang/openconfig-ext")).iterator().next();
+        Module foo = context.findModules(XMLNamespace.of("foo")).iterator().next();
+        Module bar = context.findModules(XMLNamespace.of("bar")).iterator().next();
+        Module semVer = context.findModules(XMLNamespace.of("http://openconfig.net/yang/openconfig-ext"))
+            .iterator().next();
 
         assertEquals(SemVer.valueOf("0.0.1"), semVer.getSemanticVersion().get());
         assertEquals(SemVer.valueOf("0.1.1"), foo.getSemanticVersion().get());
@@ -48,8 +48,9 @@ public class YinOpenconfigVersionTest {
                 StatementParserMode.SEMVER_MODE);
         assertNotNull(context);
 
-        Module foo = context.findModules(URI.create("foo")).iterator().next();
-        Module semVer = context.findModules(URI.create("http://openconfig.net/yang/openconfig-ext")).iterator().next();
+        Module foo = context.findModules(XMLNamespace.of("foo")).iterator().next();
+        Module semVer = context.findModules(XMLNamespace.of("http://openconfig.net/yang/openconfig-ext"))
+            .iterator().next();
 
         assertEquals(SemVer.valueOf("0.0.1"), semVer.getSemanticVersion().get());
         assertEquals(SemVer.valueOf("0.1.1"), foo.getSemanticVersion().get());
index da1de1cc6c262c827b5c384eec677238150cf5fa..5e47285d2e1c521f6860027930e79da10fa91024 100644 (file)
@@ -9,21 +9,21 @@ package org.opendaylight.yangtools.yang.stmt.yin;
 
 import static org.junit.Assert.assertEquals;
 
-import java.net.URI;
 import java.net.URISyntaxException;
 import org.junit.Test;
+import org.opendaylight.yangtools.yang.common.XMLNamespace;
 import org.opendaylight.yangtools.yang.common.YangVersion;
 import org.opendaylight.yangtools.yang.model.api.Module;
 import org.opendaylight.yangtools.yang.stmt.TestUtils;
 
 public class YinFileHeaderStmtsTest extends AbstractYinModulesTest {
-
     @Test
     public void testYinFileHeader() throws URISyntaxException {
         Module testModule = TestUtils.findModule(context, "config").get();
 
         assertEquals(YangVersion.VERSION_1, testModule.getYangVersion());
-        assertEquals(new URI("urn:opendaylight:params:xml:ns:yang:controller:config"), testModule.getNamespace());
+        assertEquals(XMLNamespace.of("urn:opendaylight:params:xml:ns:yang:controller:config"),
+            testModule.getNamespace());
         assertEquals("config", testModule.getPrefix());
     }
 }
index ccd0d8c1923ef0d92f181fbdba97ab9f400daa60..36388652202a6919c4ef95101f21734c7cf62ebb 100644 (file)
@@ -11,11 +11,11 @@ import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
 
 import java.io.IOException;
-import java.net.URI;
 import java.net.URISyntaxException;
 import java.util.Iterator;
 import org.junit.Before;
 import org.junit.Test;
+import org.opendaylight.yangtools.yang.common.XMLNamespace;
 import org.opendaylight.yangtools.yang.model.api.Module;
 import org.opendaylight.yangtools.yang.model.api.SchemaContext;
 import org.opendaylight.yangtools.yang.model.api.Submodule;
@@ -24,7 +24,6 @@ import org.opendaylight.yangtools.yang.stmt.TestUtils;
 import org.xml.sax.SAXException;
 
 public class YinFileIncludeStmtTest {
-
     private SchemaContext context;
 
     @Before
@@ -45,6 +44,6 @@ public class YinFileIncludeStmtTest {
         Submodule childModule = submodulesIterator.next() ;
         assertNotNull(childModule);
         assertEquals("child", childModule.getName());
-        assertEquals(new URI("urn:opendaylight/parent"), childModule.getNamespace());
+        assertEquals(XMLNamespace.of("urn:opendaylight/parent"), childModule.getNamespace());
     }
 }
index 5e8d660b67dd5f4bd932fb920238f42fbdeaebbf..9c811ccd790a6fcda510b54ad71d6f4e94ced521 100644 (file)
@@ -7,15 +7,15 @@
  */
 package org.opendaylight.yangtools.yang.parser.spi.source;
 
-import java.net.URI;
 import org.eclipse.jdt.annotation.NonNull;
+import org.opendaylight.yangtools.yang.common.XMLNamespace;
 import org.opendaylight.yangtools.yang.parser.spi.meta.NamespaceBehaviour;
 import org.opendaylight.yangtools.yang.parser.spi.meta.ParserNamespace;
 
 /**
  * Pre-linkage source-specific mapping of prefixes to module namespaces.
  */
-public interface ImpPrefixToNamespace extends ParserNamespace<String, URI> {
-    NamespaceBehaviour<String, URI, @NonNull ImpPrefixToNamespace> BEHAVIOUR =
+public interface ImpPrefixToNamespace extends ParserNamespace<String, XMLNamespace> {
+    NamespaceBehaviour<String, XMLNamespace, @NonNull ImpPrefixToNamespace> BEHAVIOUR =
             NamespaceBehaviour.rootStatementLocal(ImpPrefixToNamespace.class);
 }
index 0b516a5bc44ce4e2ae647a9ce9603732ca30fd4c..4e07bca6f7b062e6e62a88702831913672aebf66 100644 (file)
@@ -7,15 +7,15 @@
  */
 package org.opendaylight.yangtools.yang.parser.spi.source;
 
-import java.net.URI;
 import org.eclipse.jdt.annotation.NonNull;
+import org.opendaylight.yangtools.yang.common.XMLNamespace;
 import org.opendaylight.yangtools.yang.parser.spi.meta.NamespaceBehaviour;
 import org.opendaylight.yangtools.yang.parser.spi.meta.ParserNamespace;
 
 /**
  * Pre-linkage global mapping of module names to namespaces.
  */
-public interface ModuleNameToNamespace extends ParserNamespace<String, URI> {
-    NamespaceBehaviour<String, URI, @NonNull ModuleNameToNamespace> BEHAVIOUR =
+public interface ModuleNameToNamespace extends ParserNamespace<String, XMLNamespace> {
+    NamespaceBehaviour<String, XMLNamespace, @NonNull ModuleNameToNamespace> BEHAVIOUR =
             NamespaceBehaviour.global(ModuleNameToNamespace.class);
 }
index b425a38230f2e607c268314abdfeaeef137e1273..7be6315e3c9338ae00bc4c408389aa476f64d863 100644 (file)
@@ -7,7 +7,6 @@
  */
 package org.opendaylight.yangtools.yang.parser.spi.source;
 
-import java.net.URISyntaxException;
 import org.eclipse.jdt.annotation.NonNull;
 import org.eclipse.jdt.annotation.Nullable;
 import org.opendaylight.yangtools.yang.common.QNameModule;
@@ -35,7 +34,7 @@ public interface PrefixToModule extends ParserNamespace<String, QNameModule> {
      *
      * @param namespace XML Namespace
      * @return QNameModule associated with supplied namespace, or null if prefix is not defined.
-     * @throws URISyntaxException if the input string is not valid URI
+     * @throws IllegalArgumentException if the input string is not valid URI
      */
-    @Nullable QNameModule getByNamespace(String namespace) throws URISyntaxException;
+    @Nullable QNameModule getByNamespace(String namespace);
 }
index 593da7ba11b412dc92aac425019e0dc8dc374e1e..009ffbb4a1a4d0293b130780c653475f17096faa 100644 (file)
@@ -7,18 +7,17 @@
  */
 package org.opendaylight.yangtools.yang.parser.spi.source;
 
-import java.net.URI;
-import java.net.URISyntaxException;
 import java.util.HashMap;
 import java.util.Map;
 import org.opendaylight.yangtools.yang.common.QNameModule;
+import org.opendaylight.yangtools.yang.common.XMLNamespace;
 
 /**
  * Map-based {@link PrefixToModule} namespace. This class is NOT thread-safe.
  */
 public class PrefixToModuleMap implements PrefixToModule {
     private final Map<String, QNameModule> prefixToModuleMap = new HashMap<>();
-    private final Map<URI, QNameModule> namespaceToModuleMap = new HashMap<>();
+    private final Map<XMLNamespace, QNameModule> namespaceToModuleMap = new HashMap<>();
 
     public void put(final String prefix, final QNameModule module) {
         prefixToModuleMap.put(prefix, module);
@@ -31,7 +30,7 @@ public class PrefixToModuleMap implements PrefixToModule {
     }
 
     @Override
-    public QNameModule getByNamespace(final String namespace) throws URISyntaxException {
-        return namespaceToModuleMap.get(new URI(namespace));
+    public QNameModule getByNamespace(final String namespace) {
+        return namespaceToModuleMap.get(XMLNamespace.of(namespace));
     }
 }
index 64a7544b3429608435d02a5ad8b5645199050f7c..7113ecc7b46fa0e91d9eecb83d683f6df4074565 100644 (file)
@@ -7,10 +7,10 @@
  */
 package org.opendaylight.yangtools.yang.parser.spi.source;
 
-import java.net.URI;
 import org.eclipse.jdt.annotation.NonNull;
 import org.eclipse.jdt.annotation.Nullable;
 import org.opendaylight.yangtools.yang.common.QName;
+import org.opendaylight.yangtools.yang.common.XMLNamespace;
 import org.opendaylight.yangtools.yang.model.api.meta.StatementDefinition;
 
 /**
@@ -32,5 +32,6 @@ public interface QNameToStatementDefinition {
      * @param localName localName of requested statement
      * @return StatementDefinition
      */
-    @Nullable StatementDefinition getByNamespaceAndLocalName(@NonNull URI namespace, @NonNull String localName);
+    @Nullable StatementDefinition getByNamespaceAndLocalName(@NonNull XMLNamespace namespace,
+        @NonNull String localName);
 }
index 5ddb7d872d168002a79001543b15cb51dd130892..9d7ac23c74e688614d677de8f2f5cd2868fc6e83 100644 (file)
@@ -9,10 +9,10 @@ package org.opendaylight.yangtools.yang.parser.spi.source;
 
 import static java.util.Objects.requireNonNull;
 
-import java.net.URI;
 import java.util.HashMap;
 import java.util.Map;
 import org.opendaylight.yangtools.yang.common.QName;
+import org.opendaylight.yangtools.yang.common.XMLNamespace;
 import org.opendaylight.yangtools.yang.model.api.meta.StatementDefinition;
 import org.opendaylight.yangtools.yang.parser.spi.meta.StatementSupport;
 
@@ -65,7 +65,7 @@ public class QNameToStatementDefinitionMap implements QNameToStatementDefinition
     }
 
     @Override
-    public StatementDefinition getByNamespaceAndLocalName(final URI namespace, final String localName) {
+    public StatementDefinition getByNamespaceAndLocalName(final XMLNamespace namespace, final String localName) {
         return noRevQNameToSupport.get(QName.create(namespace, localName));
     }
 }
index 2342cd28440f2c7d5aa83decf17cd7fdb630c0cd..ecd55ddcaa6d59d008ea5e48177bed79b192e57a 100644 (file)
@@ -12,7 +12,6 @@ import static org.hamcrest.Matchers.isA;
 import static org.junit.Assert.assertEquals;
 
 import com.google.common.collect.ImmutableBiMap;
-import java.net.URI;
 import javax.xml.xpath.XPathExpressionException;
 import org.eclipse.jdt.annotation.Nullable;
 import org.junit.Before;
@@ -20,6 +19,7 @@ import org.junit.Test;
 import org.opendaylight.yangtools.yang.common.BiMapYangNamespaceContext;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.common.QNameModule;
+import org.opendaylight.yangtools.yang.common.XMLNamespace;
 import org.opendaylight.yangtools.yang.common.YangNamespaceContext;
 import org.opendaylight.yangtools.yang.xpath.api.YangBinaryExpr;
 import org.opendaylight.yangtools.yang.xpath.api.YangBinaryOperator;
@@ -31,11 +31,11 @@ import org.opendaylight.yangtools.yang.xpath.api.YangXPathMathMode;
 
 @SuppressWarnings("null")
 public class XPathParserTest {
-    private static final QNameModule DEFNS = QNameModule.create(URI.create("defaultns"));
+    private static final QNameModule DEFNS = QNameModule.create(XMLNamespace.of("defaultns"));
     private static final YangNamespaceContext CONTEXT = new BiMapYangNamespaceContext(ImmutableBiMap.of(
         "def", DEFNS,
-        "foo", QNameModule.create(URI.create("foo")),
-        "bar", QNameModule.create(URI.create("bar"))));
+        "foo", QNameModule.create(XMLNamespace.of("foo")),
+        "bar", QNameModule.create(XMLNamespace.of("bar"))));
 
     private @Nullable AntlrXPathParser parser;