From b212baa59f859732bd3a799425bb420035fe6154 Mon Sep 17 00:00:00 2001 From: Robert Varga Date: Wed, 25 Oct 2017 12:09:09 +0200 Subject: [PATCH] BUG-4688: switch revisions from Date to Revision This is a mass conversion of revision representation from java.util.Date to yang.common.Revision. Using java.util.Date was a mistake from the get go, causing confusion in users and implementation. QName.parseRevision() is removed in favor of Revision.valueOf() and invalid revision strings are updated. Change-Id: Ifce810bab4183186b67f5f3acfad03ac9c081815 Signed-off-by: Robert Varga --- .../yangtools/yang/common/QName.java | 42 +++++-------------- .../yangtools/yang/common/QNameModule.java | 34 +++++---------- .../yangtools/yang/common/Revision.java | 4 +- .../yangtools/yang/common/QNameTest.java | 7 ++-- .../yang/data/api/PathArgumentListTest.java | 10 ++--- .../data/api/YangInstanceIdentifierTest.java | 14 +++---- .../stream/NormalizedNodeWriterTest.java | 11 ++--- .../yang/data/codec/gson/Bug5446Test.java | 3 +- .../yang/data/codec/xml/Bug5396Test.java | 3 +- .../yang/data/codec/xml/Bug5446Test.java | 3 +- .../xml/NormalizedNodeXmlTranslationTest.java | 4 +- .../yang/data/codec/xml/RandomPrefixTest.java | 14 +++---- ...LStreamNormalizedNodeStreamWriterTest.java | 3 +- .../data/codec/xml/XmlStreamUtilsTest.java | 4 +- .../resources/schema/augment_choice_hell.yang | 2 +- .../src/test/resources/schema/test.yang | 4 +- .../LeafRefPathParserListenerImpl.java | 4 +- .../yang/data/impl/schema/SchemaUtils.java | 4 +- ...mutableNormalizedNodeStreamWriterTest.java | 5 +-- .../data/impl/schema/augment_choice_hell.yang | 2 +- .../yangtools/yang/data/impl/schema/test.yang | 4 +- .../data/jaxen/BitIsSetXPathFunctionTest.java | 5 +-- .../data/jaxen/DerefXPathFunctionTest.java | 8 ++-- .../jaxen/DerivedFromXPathFunctionTest.java | 8 ++-- .../jaxen/EnumValueXPathFunctionTest.java | 5 +-- .../yangtools/yang/data/jaxen/JaxenTest.java | 5 +-- .../yang/data/util/ParserStreamUtils.java | 4 +- .../src/test/resources/test.yang | 4 +- .../src/test/resources/test2.yang | 4 +- .../yangtools/yang/model/api/Module.java | 5 +-- .../yang/model/api/ModuleIdentifier.java | 12 +----- .../yang/model/api/ModuleImport.java | 4 +- .../model/api/NamespaceRevisionAware.java | 5 ++- .../yang/model/api/SchemaContext.java | 16 ++++--- .../model/api/stmt/RevisionDateStatement.java | 7 ++-- .../model/api/stmt/RevisionStatement.java | 6 +-- .../model/export/SchemaContextEmitter.java | 6 +-- .../SchemaToStatementWriterAdaptor.java | 11 +++-- .../yang/model/export/YangModuleWriter.java | 6 +-- .../yang/model/export/YinExportUtils.java | 8 ++-- .../yang/model/export/test/Bug6856Test.java | 6 +-- .../model/export/test/YinExportTestUtils.java | 8 ++-- .../immutable/AbstractSchemaContext.java | 4 +- .../model/util/AbstractSchemaContext.java | 13 +++--- .../util/FilteringSchemaContextProxy.java | 10 ++--- .../yang/model/util/ModuleDependencySort.java | 42 +++++++++---------- .../yang/model/util/ModuleIdentifierImpl.java | 10 ++--- .../model/util/SchemaContextProxyTest.java | 18 ++++---- .../yang/model/util/type/BitImplTest.java | 10 ++--- .../impl/util/YangModelDependencyInfo.java | 21 +++++----- .../yang/parser/repo/DependencyResolver.java | 4 +- .../stmt/reactor/BuildGlobalContext.java | 14 +++---- .../rfc6020/ImportStatementDefinition.java | 11 +++-- .../stmt/rfc6020/IncludeStatementImpl.java | 7 ++-- .../stmt/rfc6020/ModuleStatementSupport.java | 8 ++-- .../rfc6020/RevisionDateStatementImpl.java | 27 ++++++------ .../stmt/rfc6020/RevisionStatementImpl.java | 27 ++++++------ .../stmt/rfc6020/SubmoduleStatementImpl.java | 9 ++-- .../effective/AbstractEffectiveModule.java | 4 +- .../AugmentEffectiveStatementImpl.java | 8 ++-- .../ImportEffectiveStatementImpl.java | 11 +++-- .../RevisionDateEffectiveStatementImpl.java | 6 +-- .../RevisionEffectiveStatementImpl.java | 6 +-- .../effective/ConstraintDefinitionsTest.java | 3 +- .../yang/parser/stmt/rfc7950/Bug6871Test.java | 4 +- .../yang/parser/stmt/rfc7950/Bug6887Test.java | 5 ++- .../yang/parser/stmt/rfc7950/Bug9241Test.java | 3 +- .../stmt/rfc7950/IdentityStatementTest.java | 4 +- .../rfc7950/IdentityrefStatementTest.java | 3 +- .../stmt/rfc7950/LeafrefStatementTest.java | 3 +- .../parser/util/SchemaContextUtilTest.java | 40 +++++++++--------- .../yangtools/yang/stmt/AugmentTest.java | 11 +++-- .../yangtools/yang/stmt/Bug1412Test.java | 5 +-- .../yangtools/yang/stmt/Bug2872Test.java | 5 +-- .../yangtools/yang/stmt/Bug4231Test.java | 3 +- .../yangtools/yang/stmt/Bug4610Test.java | 8 ++-- .../yangtools/yang/stmt/Bug5884Test.java | 3 +- .../yangtools/yang/stmt/Bug6491Test.java | 11 +++-- .../yangtools/yang/stmt/Bug6961Test.java | 17 ++++---- .../yangtools/yang/stmt/Bug6972Test.java | 4 +- .../yangtools/yang/stmt/Bug7440Test.java | 4 +- .../yangtools/yang/stmt/Bug7480Test.java | 8 ++-- .../yangtools/yang/stmt/Bug8307Test.java | 10 ++--- .../yangtools/yang/stmt/Bug8597Test.java | 6 +-- .../yangtools/yang/stmt/Bug9005Test.java | 8 ++-- .../yangtools/yang/stmt/Bug9242Test.java | 5 +-- .../yangtools/yang/stmt/Bug9244Test.java | 3 +- .../yangtools/yang/stmt/CaseStmtTest.java | 16 +++---- .../yang/stmt/ControllerStmtParserTest.java | 20 ++++----- .../yang/stmt/DeclaredStatementsTest.java | 5 +-- .../yang/stmt/DeviationResolutionTest.java | 9 ++-- .../yang/stmt/DeviationStmtTest.java | 6 +-- .../yang/stmt/EffectiveModuleTest.java | 4 +- .../EffectiveModulesAndSubmodulesTest.java | 4 +- .../yang/stmt/EffectiveSchemaContextTest.java | 7 ++-- .../yangtools/yang/stmt/GroupingTest.java | 5 ++- .../yang/stmt/MoreRevisionsTest.java | 28 ++++++------- .../yangtools/yang/stmt/RpcStmtTest.java | 5 ++- .../yang/stmt/TypesResolutionTest.java | 9 ++-- .../yangtools/yang/stmt/UsesAugmentTest.java | 5 ++- .../yang/stmt/YangDataExtensionTest.java | 4 +- .../yang/stmt/YangParserSimpleTest.java | 8 ++-- .../yangtools/yang/stmt/YangParserTest.java | 9 ++-- .../yang/stmt/YangParserWithContextTest.java | 31 +++++++------- .../spi/meta/NamespaceKeyCriterion.java | 3 +- .../parser/spi/meta/StmtContextUtils.java | 24 +++++------ 106 files changed, 448 insertions(+), 524 deletions(-) diff --git a/yang/yang-common/src/main/java/org/opendaylight/yangtools/yang/common/QName.java b/yang/yang-common/src/main/java/org/opendaylight/yangtools/yang/common/QName.java index dec755e68c..ce3c1f305c 100644 --- a/yang/yang-common/src/main/java/org/opendaylight/yangtools/yang/common/QName.java +++ b/yang/yang-common/src/main/java/org/opendaylight/yangtools/yang/common/QName.java @@ -9,7 +9,6 @@ package org.opendaylight.yangtools.yang.common; import static com.google.common.base.Preconditions.checkArgument; import static java.util.Objects.requireNonNull; -import static org.opendaylight.yangtools.yang.common.SimpleDateFormatUtil.getRevisionFormat; import com.google.common.base.Strings; import com.google.common.collect.Interner; @@ -17,8 +16,6 @@ import com.google.common.collect.Interners; import java.io.Serializable; import java.net.URI; import java.net.URISyntaxException; -import java.text.ParseException; -import java.util.Date; import java.util.Objects; import java.util.Optional; import java.util.regex.Matcher; @@ -151,7 +148,7 @@ public final class QName implements Immutable, Serializable, Comparable { * Local name part of QName. MUST NOT BE null. * @return Instance of QName */ - public static QName create(final URI namespace, @Nullable final Date revision, final String localName) { + public static QName create(final URI namespace, @Nullable final Revision revision, final String localName) { return create(QNameModule.create(namespace, revision), localName); } @@ -166,7 +163,7 @@ public final class QName implements Immutable, Serializable, Comparable { * Local name part of QName. MUST NOT BE null. * @return Instance of QName */ - public static QName create(final URI namespace, final Optional revision, final String localName) { + public static QName create(final URI namespace, final Optional revision, final String localName) { return create(QNameModule.create(namespace, revision), localName); } @@ -181,7 +178,7 @@ public final class QName implements Immutable, Serializable, Comparable { * Local name part of QName. MUST NOT BE null. * @return Instance of QName */ - public static QName create(final String namespace, final String localName, final Date revision) { + public static QName create(final String namespace, final String localName, final Revision revision) { final URI namespaceUri = parseNamespace(namespace); return create(QNameModule.create(namespaceUri, revision), localName); } @@ -206,7 +203,7 @@ public final class QName implements Immutable, Serializable, Comparable { */ public static QName create(final String namespace, final String revision, final String localName) { final URI namespaceUri = parseNamespace(namespace); - final Date revisionDate = parseRevision(revision); + final Revision revisionDate = Revision.valueOf(revision); return create(namespaceUri, revisionDate, localName); } @@ -278,7 +275,7 @@ public final class QName implements Immutable, Serializable, Comparable { * * @return revision of the YANG module if the module has defined revision. */ - public Optional getRevision() { + public Optional getRevision() { return module.getRevision(); } @@ -376,19 +373,8 @@ public final class QName implements Immutable, Serializable, Comparable { return create(getNamespace(), localName); } - @SuppressWarnings("checkstyle:illegalCatch") - public static Date parseRevision(final String formatedDate) { - try { - return getRevisionFormat().parse(formatedDate); - } catch (ParseException | RuntimeException e) { - throw new IllegalArgumentException( - String.format("Revision '%s'is not in a supported format", formatedDate), e); - } - } - /** - * Formats {@link Date} representing revision to format - * YYYY-mm-dd + * Formats {@link Revision} representing revision to format YYYY-mm-dd * *

* YANG Specification defines format for revision as @@ -396,11 +382,11 @@ public final class QName implements Immutable, Serializable, Comparable { * such as capabilities URI, YANG modules, etc. * * @param revision - * Date object to formatl + * Date object to format * @return String representation or null if the input was null. */ - public static String formattedRevision(final Optional revision) { - return revision.map(rev -> getRevisionFormat().format(rev)).orElse(null); + public static String formattedRevision(final Optional revision) { + return revision.map(Revision::toString).orElse(null); } /** @@ -434,14 +420,6 @@ public final class QName implements Immutable, Serializable, Comparable { return result; } - final Date myRev = getRevision().orElse(null); - final Date otherRev = other.getRevision().orElse(null); - - // compare nullable revision parameter - if (myRev != null) { - return otherRev == null ? 1 : myRev.compareTo(otherRev); - } - - return otherRev == null ? 0 : -1; + return Revision.compare(getRevision(), other.getRevision()); } } diff --git a/yang/yang-common/src/main/java/org/opendaylight/yangtools/yang/common/QNameModule.java b/yang/yang-common/src/main/java/org/opendaylight/yangtools/yang/common/QNameModule.java index 8827ed7545..31a4b85212 100644 --- a/yang/yang-common/src/main/java/org/opendaylight/yangtools/yang/common/QNameModule.java +++ b/yang/yang-common/src/main/java/org/opendaylight/yangtools/yang/common/QNameModule.java @@ -15,26 +15,23 @@ import com.google.common.collect.Interners; import java.io.Serializable; import java.net.URI; import java.net.URISyntaxException; -import java.util.Date; import java.util.Objects; import java.util.Optional; +import javax.annotation.Nullable; import org.opendaylight.yangtools.concepts.Immutable; public final class QNameModule implements Immutable, Serializable { private static final Interner INTERNER = Interners.newWeakInterner(); - private static final long serialVersionUID = 2L; + private static final long serialVersionUID = 3L; private final URI namespace; //Nullable - private final Date revision; - - //Nullable - private transient volatile String formattedRevision; + private final Revision revision; private transient int hash; - private QNameModule(final URI namespace, final Date revision) { + private QNameModule(final URI namespace, final Revision revision) { this.namespace = requireNonNull(namespace); this.revision = revision; } @@ -55,7 +52,7 @@ public final class QNameModule implements Immutable, Serializable { * @param revision Module revision * @return A new, potentially shared, QNameModule instance */ - public static QNameModule create(final URI namespace, final Optional revision) { + public static QNameModule create(final URI namespace, final Optional revision) { return new QNameModule(namespace, revision.orElse(null)); } @@ -76,22 +73,12 @@ public final class QNameModule implements Immutable, Serializable { * @param revision Module revision * @return A new, potentially shared, QNameModule instance */ - public static QNameModule create(final URI namespace, final Date revision) { + public static QNameModule create(final URI namespace, @Nullable final Revision revision) { return new QNameModule(namespace, revision); } public String getFormattedRevision() { - if (revision == null) { - return null; - } - - String ret = formattedRevision; - if (ret == null) { - ret = SimpleDateFormatUtil.getRevisionFormat().format(revision); - formattedRevision = ret; - } - - return ret; + return revision == null ? null : revision.toString(); } /** @@ -110,8 +97,7 @@ public final class QNameModule implements Immutable, Serializable { * @return date of the module revision which is specified as argument of * YANG Module revison keyword */ - // FIXME: BUG-4688: should return Optional - public Optional getRevision() { + public Optional getRevision() { return Optional.ofNullable(revision); } @@ -144,7 +130,7 @@ public final class QNameModule implements Immutable, Serializable { * */ URI getRevisionNamespace() throws URISyntaxException { - final String query = revision == null ? "" : "revision=" + getFormattedRevision(); + final String query = revision == null ? "" : "revision=" + revision.toString(); return new URI(namespace.getScheme(), namespace.getUserInfo(), namespace.getHost(), namespace.getPort(), namespace.getPath(), query, namespace.getFragment()); } @@ -152,6 +138,6 @@ public final class QNameModule implements Immutable, Serializable { @Override public String toString() { return MoreObjects.toStringHelper(QNameModule.class).omitNullValues().add("ns", getNamespace()) - .add("rev", getFormattedRevision()).toString(); + .add("rev", revision).toString(); } } diff --git a/yang/yang-common/src/main/java/org/opendaylight/yangtools/yang/common/Revision.java b/yang/yang-common/src/main/java/org/opendaylight/yangtools/yang/common/Revision.java index 7bd1fe425f..dee497aa68 100644 --- a/yang/yang-common/src/main/java/org/opendaylight/yangtools/yang/common/Revision.java +++ b/yang/yang-common/src/main/java/org/opendaylight/yangtools/yang/common/Revision.java @@ -48,8 +48,8 @@ public final class Revision implements Comparable, Serializable { private Revision(final String str) { // Since all strings conform to this format, compareTo() can be delegated to String.compareTo() - Preconditions.checkArgument(STRING_FORMAT.matcher(str).matches(), "String '%s' does match revision format", - str); + Preconditions.checkArgument(STRING_FORMAT.matcher(str).matches(), + "String '%s' does match revision format YYYY-MM-DD", str); this.str = str; } diff --git a/yang/yang-common/src/test/java/org/opendaylight/yangtools/yang/common/QNameTest.java b/yang/yang-common/src/test/java/org/opendaylight/yangtools/yang/common/QNameTest.java index 00e896620e..eece15c8a7 100644 --- a/yang/yang-common/src/test/java/org/opendaylight/yangtools/yang/common/QNameTest.java +++ b/yang/yang-common/src/test/java/org/opendaylight/yangtools/yang/common/QNameTest.java @@ -14,7 +14,6 @@ import static org.junit.Assert.fail; import java.net.URI; import java.net.URISyntaxException; -import java.util.Date; import java.util.Optional; import org.junit.Test; @@ -72,7 +71,7 @@ public class QNameTest { // compare with 1 null revision qa = QName.create(URI.create(A), A); - qb = QName.create(URI.create(A), QName.parseRevision(REVISION), A); + qb = QName.create(URI.create(A), Revision.valueOf(REVISION), A); assertTrue(qa.compareTo(qb) < 0); assertTrue(qb.compareTo(qa) > 0); @@ -90,14 +89,14 @@ public class QNameTest { assertEquals(qname1, qname.withoutRevision()); assertEquals(qname1, qname2); assertTrue(qname.isEqualWithoutRevision(qname1)); - assertNotNull(QName.formattedRevision(Optional.of(new Date()))); + assertNotNull(QName.formattedRevision(Optional.of(Revision.valueOf("2000-01-01")))); assertNotNull(qname.hashCode()); assertEquals(qname, qname.intern()); } @Test public void testQNameModule() throws URISyntaxException { - final QNameModule qnameModule = QNameModule.create(NS, new Date()); + final QNameModule qnameModule = QNameModule.create(NS, Revision.valueOf("2000-01-01")); assertNotNull(qnameModule.toString()); assertNotNull(qnameModule.getRevisionNamespace()); } diff --git a/yang/yang-data-api/src/test/java/org/opendaylight/yangtools/yang/data/api/PathArgumentListTest.java b/yang/yang-data-api/src/test/java/org/opendaylight/yangtools/yang/data/api/PathArgumentListTest.java index 26b28216a2..b69a7aec48 100644 --- a/yang/yang-data-api/src/test/java/org/opendaylight/yangtools/yang/data/api/PathArgumentListTest.java +++ b/yang/yang-data-api/src/test/java/org/opendaylight/yangtools/yang/data/api/PathArgumentListTest.java @@ -14,14 +14,12 @@ import static org.junit.Assert.fail; import com.google.common.collect.UnmodifiableIterator; import java.net.URI; -import java.net.URISyntaxException; -import java.text.ParseException; import java.util.HashMap; 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.SimpleDateFormatUtil; +import org.opendaylight.yangtools.yang.common.Revision; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.PathArgument; public class PathArgumentListTest { @@ -95,9 +93,9 @@ public class PathArgumentListTest { } @Test - public void testPathArgument() throws URISyntaxException, ParseException { - final QNameModule qNameModule = QNameModule.create(new URI("urn:opendaylight.test2"), - SimpleDateFormatUtil.getRevisionFormat().parse("2015-08-08")); + public void testPathArgument() { + final QNameModule qNameModule = QNameModule.create(URI.create("urn:opendaylight.test2"), + Revision.valueOf("2015-08-08")); final QName qNameRoot = QName.create(qNameModule, "root"); final QName qNameList = QName.create(qNameModule, "list"); final QName qNameLeaf = QName.create(qNameModule, "leaf-a"); diff --git a/yang/yang-data-api/src/test/java/org/opendaylight/yangtools/yang/data/api/YangInstanceIdentifierTest.java b/yang/yang-data-api/src/test/java/org/opendaylight/yangtools/yang/data/api/YangInstanceIdentifierTest.java index 94bb478dc0..1c18036cb7 100644 --- a/yang/yang-data-api/src/test/java/org/opendaylight/yangtools/yang/data/api/YangInstanceIdentifierTest.java +++ b/yang/yang-data-api/src/test/java/org/opendaylight/yangtools/yang/data/api/YangInstanceIdentifierTest.java @@ -42,13 +42,13 @@ import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.PathArgum */ public class YangInstanceIdentifierTest { - private static final QName NODENAME1 = QName.create("test", "2014-5-28", "node1"); - private static final QName NODENAME2 = QName.create("test", "2014-5-28", "node2"); - private static final QName NODENAME3 = QName.create("test", "2014-5-28", "node3"); - private static final QName NODENAME4 = QName.create("test", "2014-5-28", "node4"); - private static final QName KEY1 = QName.create("test", "2014-5-28", "key1"); - private static final QName KEY2 = QName.create("test", "2014-5-28", "key2"); - private static final QName KEY3 = QName.create("test", "2014-5-28", "key3"); + private static final QName NODENAME1 = QName.create("test", "2014-05-28", "node1"); + private static final QName NODENAME2 = QName.create("test", "2014-05-28", "node2"); + private static final QName NODENAME3 = QName.create("test", "2014-05-28", "node3"); + private static final QName NODENAME4 = QName.create("test", "2014-05-28", "node4"); + private static final QName KEY1 = QName.create("test", "2014-05-28", "key1"); + private static final QName KEY2 = QName.create("test", "2014-05-28", "key2"); + private static final QName KEY3 = QName.create("test", "2014-05-28", "key3"); @Test public void testGetLastPathArgument() { diff --git a/yang/yang-data-api/src/test/java/org/opendaylight/yangtools/yang/data/api/schema/stream/NormalizedNodeWriterTest.java b/yang/yang-data-api/src/test/java/org/opendaylight/yangtools/yang/data/api/schema/stream/NormalizedNodeWriterTest.java index 315e9d5b7e..0abad1b0d9 100644 --- a/yang/yang-data-api/src/test/java/org/opendaylight/yangtools/yang/data/api/schema/stream/NormalizedNodeWriterTest.java +++ b/yang/yang-data-api/src/test/java/org/opendaylight/yangtools/yang/data/api/schema/stream/NormalizedNodeWriterTest.java @@ -18,17 +18,14 @@ import static org.mockito.Mockito.mock; import com.google.common.collect.ImmutableSet; import java.io.IOException; -import java.io.UnsupportedEncodingException; import java.net.URI; -import java.net.URISyntaxException; -import java.text.ParseException; import java.util.Optional; import java.util.Set; 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.SimpleDateFormatUtil; +import org.opendaylight.yangtools.yang.common.Revision; 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; @@ -57,10 +54,8 @@ public class NormalizedNodeWriterTest { private QName myLeafList; @Before - public void setUp() throws URISyntaxException, ParseException, UnsupportedEncodingException { - bazModule = QNameModule.create(new URI("baz-namespace"), SimpleDateFormatUtil.getRevisionFormat() - .parse("1970-01-01")); - + public void setUp() { + bazModule = QNameModule.create(URI.create("baz-namespace"), Revision.valueOf("1970-01-01")); myKeyedList = QName.create(bazModule, "my-keyed-list"); myKeyLeaf = QName.create(bazModule, "my-key-leaf"); myLeafList = QName.create(bazModule, "my-leaf-list"); diff --git a/yang/yang-data-codec-gson/src/test/java/org/opendaylight/yangtools/yang/data/codec/gson/Bug5446Test.java b/yang/yang-data-codec-gson/src/test/java/org/opendaylight/yangtools/yang/data/codec/gson/Bug5446Test.java index 0d0252f89f..07d0ebe770 100644 --- a/yang/yang-data-codec-gson/src/test/java/org/opendaylight/yangtools/yang/data/codec/gson/Bug5446Test.java +++ b/yang/yang-data-codec-gson/src/test/java/org/opendaylight/yangtools/yang/data/codec/gson/Bug5446Test.java @@ -25,6 +25,7 @@ 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.Revision; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.PathArgument; import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode; @@ -48,7 +49,7 @@ public class Bug5446Test { @BeforeClass public static void init() { - fooModuleQName = QNameModule.create(URI.create("foo"), QName.parseRevision("2015-11-05")); + fooModuleQName = QNameModule.create(URI.create("foo"), Revision.valueOf("2015-11-05")); rootQName = QName.create(fooModuleQName, "root"); ipAddressQName = QName.create(fooModuleQName, "ip-address"); diff --git a/yang/yang-data-codec-xml/src/test/java/org/opendaylight/yangtools/yang/data/codec/xml/Bug5396Test.java b/yang/yang-data-codec-xml/src/test/java/org/opendaylight/yangtools/yang/data/codec/xml/Bug5396Test.java index 82197b3e03..de830704f0 100644 --- a/yang/yang-data-codec-xml/src/test/java/org/opendaylight/yangtools/yang/data/codec/xml/Bug5396Test.java +++ b/yang/yang-data-codec-xml/src/test/java/org/opendaylight/yangtools/yang/data/codec/xml/Bug5396Test.java @@ -22,6 +22,7 @@ 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.data.api.YangInstanceIdentifier.NodeIdentifier; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.PathArgument; import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode; @@ -42,7 +43,7 @@ public class Bug5396Test { @Before public void setUp() throws Exception { - fooModuleQName = QNameModule.create(new URI("foo"), QName.parseRevision("2016-03-22")); + fooModuleQName = QNameModule.create(new URI("foo"), Revision.valueOf("2016-03-22")); schemaContext = YangParserTestUtils.parseYangResource("/bug5396/yang/foo.yang"); } diff --git a/yang/yang-data-codec-xml/src/test/java/org/opendaylight/yangtools/yang/data/codec/xml/Bug5446Test.java b/yang/yang-data-codec-xml/src/test/java/org/opendaylight/yangtools/yang/data/codec/xml/Bug5446Test.java index e63ab7db07..6f1738911a 100644 --- a/yang/yang-data-codec-xml/src/test/java/org/opendaylight/yangtools/yang/data/codec/xml/Bug5446Test.java +++ b/yang/yang-data-codec-xml/src/test/java/org/opendaylight/yangtools/yang/data/codec/xml/Bug5446Test.java @@ -33,6 +33,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.Revision; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.PathArgument; import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode; @@ -63,7 +64,7 @@ public class Bug5446Test extends XMLTestCase { private final SchemaContext schemaContext; public Bug5446Test() throws Exception { - fooModuleQName = QNameModule.create(new URI("foo"), QName.parseRevision("2015-11-05")); + fooModuleQName = QNameModule.create(URI.create("foo"), Revision.valueOf("2015-11-05")); rootQName = QName.create(fooModuleQName, "root"); ipAddressQName = QName.create(fooModuleQName, "ip-address"); diff --git a/yang/yang-data-codec-xml/src/test/java/org/opendaylight/yangtools/yang/data/codec/xml/NormalizedNodeXmlTranslationTest.java b/yang/yang-data-codec-xml/src/test/java/org/opendaylight/yangtools/yang/data/codec/xml/NormalizedNodeXmlTranslationTest.java index 1d2ee34139..3e07041df2 100644 --- a/yang/yang-data-codec-xml/src/test/java/org/opendaylight/yangtools/yang/data/codec/xml/NormalizedNodeXmlTranslationTest.java +++ b/yang/yang-data-codec-xml/src/test/java/org/opendaylight/yangtools/yang/data/codec/xml/NormalizedNodeXmlTranslationTest.java @@ -24,7 +24,6 @@ import java.net.URI; import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; -import java.util.Date; import java.util.HashMap; import java.util.HashSet; import java.util.List; @@ -51,6 +50,7 @@ import org.junit.runner.RunWith; 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.Revision; 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; @@ -99,7 +99,7 @@ public class NormalizedNodeXmlTranslationTest { } private static final String NAMESPACE = "urn:opendaylight:params:xml:ns:yang:controller:test"; - private static final Date REVISION = QName.parseRevision("2014-03-13"); + private static final Revision REVISION = Revision.valueOf("2014-03-13"); static final XMLOutputFactory XML_FACTORY; diff --git a/yang/yang-data-codec-xml/src/test/java/org/opendaylight/yangtools/yang/data/codec/xml/RandomPrefixTest.java b/yang/yang-data-codec-xml/src/test/java/org/opendaylight/yangtools/yang/data/codec/xml/RandomPrefixTest.java index 52ee399b85..57fb2f56ca 100644 --- a/yang/yang-data-codec-xml/src/test/java/org/opendaylight/yangtools/yang/data/codec/xml/RandomPrefixTest.java +++ b/yang/yang-data-codec-xml/src/test/java/org/opendaylight/yangtools/yang/data/codec/xml/RandomPrefixTest.java @@ -13,13 +13,13 @@ import static org.junit.Assert.assertThat; import com.google.common.collect.Iterables; import java.net.URI; import java.util.ArrayList; -import java.util.Date; import java.util.HashSet; import java.util.List; import org.hamcrest.CoreMatchers; 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; public class RandomPrefixTest { static final int MAX_COUNTER = 4000; @@ -48,7 +48,7 @@ public class RandomPrefixTest { for (int i = 0; i < MAX_COUNTER; i++) { final String prefix = RandomPrefix.encode(i); final URI uri = new URI("localhost:" + prefix); - final QName qname = QName.create(QNameModule.create(uri, new Date()), "local-name"); + final QName qname = QName.create(QNameModule.create(uri, Revision.valueOf("2000-01-01")), "local-name"); allGenerated.add(a.encodePrefix(qname.getNamespace())); } @@ -68,8 +68,8 @@ public class RandomPrefixTest { final RandomPrefix a = new RandomPrefix(null); final URI uri = URI.create("localhost"); - final QName qname = QName.create(QNameModule.create(uri, new Date()), "local-name"); - final QName qname2 = QName.create(QNameModule.create(uri, new Date()), "local-name"); + final QName qname = QName.create(QNameModule.create(uri, Revision.valueOf("2000-01-01")), "local-name"); + final QName qname2 = QName.create(QNameModule.create(uri, Revision.valueOf("2000-01-01")), "local-name"); assertEquals(a.encodePrefix(qname.getNamespace()), a.encodePrefix(qname2.getNamespace())); } @@ -79,11 +79,11 @@ public class RandomPrefixTest { final RandomPrefix a = new RandomPrefix(null); final URI uri = URI.create("localhost"); - QName qname = QName.create(uri, new Date(), "local-name"); + QName qname = QName.create(uri, Revision.valueOf("2000-01-01"), "local-name"); assertEquals("a", a.encodePrefix(qname.getNamespace())); - qname = QName.create(QNameModule.create(uri, new Date()), "local-name"); + qname = QName.create(QNameModule.create(uri, Revision.valueOf("2000-01-01")), "local-name"); assertEquals("a", a.encodePrefix(qname.getNamespace())); - qname = QName.create(QNameModule.create(URI.create("second"), new Date()), "local-name"); + qname = QName.create(QNameModule.create(URI.create("second"), Revision.valueOf("2000-01-01")), "local-name"); assertEquals("b", a.encodePrefix(qname.getNamespace())); } diff --git a/yang/yang-data-codec-xml/src/test/java/org/opendaylight/yangtools/yang/data/codec/xml/SchemalessXMLStreamNormalizedNodeStreamWriterTest.java b/yang/yang-data-codec-xml/src/test/java/org/opendaylight/yangtools/yang/data/codec/xml/SchemalessXMLStreamNormalizedNodeStreamWriterTest.java index fdb8cb2968..8aa40fa281 100644 --- a/yang/yang-data-codec-xml/src/test/java/org/opendaylight/yangtools/yang/data/codec/xml/SchemalessXMLStreamNormalizedNodeStreamWriterTest.java +++ b/yang/yang-data-codec-xml/src/test/java/org/opendaylight/yangtools/yang/data/codec/xml/SchemalessXMLStreamNormalizedNodeStreamWriterTest.java @@ -40,6 +40,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.Revision; 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; @@ -102,7 +103,7 @@ public class SchemalessXMLStreamNormalizedNodeStreamWriterTest { @Before public void setup() { - foobarModule = QNameModule.create(URI.create("foobar-namespace"), QName.parseRevision("2016-09-19")); + foobarModule = QNameModule.create(URI.create("foobar-namespace"), Revision.valueOf("2016-09-19")); outerContainer = QName.create(foobarModule, "outer-container"); diff --git a/yang/yang-data-codec-xml/src/test/java/org/opendaylight/yangtools/yang/data/codec/xml/XmlStreamUtilsTest.java b/yang/yang-data-codec-xml/src/test/java/org/opendaylight/yangtools/yang/data/codec/xml/XmlStreamUtilsTest.java index 6f7d908cf0..6cd32eef77 100644 --- a/yang/yang-data-codec-xml/src/test/java/org/opendaylight/yangtools/yang/data/codec/xml/XmlStreamUtilsTest.java +++ b/yang/yang-data-codec-xml/src/test/java/org/opendaylight/yangtools/yang/data/codec/xml/XmlStreamUtilsTest.java @@ -19,7 +19,6 @@ import java.io.FileNotFoundException; import java.net.URI; import java.net.URISyntaxException; import java.util.AbstractMap; -import java.util.Date; import java.util.HashMap; import java.util.Map; import java.util.Optional; @@ -34,6 +33,7 @@ import org.junit.Ignore; 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.model.api.DataNodeContainer; import org.opendaylight.yangtools.yang.model.api.DataSchemaNode; import org.opendaylight.yangtools.yang.model.api.LeafSchemaNode; @@ -108,7 +108,7 @@ public class XmlStreamUtilsTest { final XMLStreamWriter writer = XML_OUTPUT_FACTORY.createXMLStreamWriter(out); writer.writeStartElement("element"); - final QNameModule parent = QNameModule.create(URI.create("parent:uri"), new Date()); + final QNameModule parent = QNameModule.create(URI.create("parent:uri"), Revision.valueOf("2000-01-01")); XMLStreamWriterUtils.write(writer, null, QName.create(parent, "identity"), parent); writer.writeEndElement(); diff --git a/yang/yang-data-codec-xml/src/test/resources/schema/augment_choice_hell.yang b/yang/yang-data-codec-xml/src/test/resources/schema/augment_choice_hell.yang index 5c3e49f797..d386d485a6 100644 --- a/yang/yang-data-codec-xml/src/test/resources/schema/augment_choice_hell.yang +++ b/yang/yang-data-codec-xml/src/test/resources/schema/augment_choice_hell.yang @@ -6,7 +6,7 @@ module test { organization "Cisco Systems, Inc."; - revision "2014-3-13" { + revision "2014-03-13" { description "Initial revision"; } diff --git a/yang/yang-data-codec-xml/src/test/resources/schema/test.yang b/yang/yang-data-codec-xml/src/test/resources/schema/test.yang index d5def9cfba..0b108abd8c 100644 --- a/yang/yang-data-codec-xml/src/test/resources/schema/test.yang +++ b/yang/yang-data-codec-xml/src/test/resources/schema/test.yang @@ -6,7 +6,7 @@ module test { organization "Cisco Systems, Inc."; - revision "2014-3-13" { + revision "2014-03-13" { description "Initial revision"; } @@ -240,4 +240,4 @@ module test { base test-identity; } -} \ No newline at end of file +} diff --git a/yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/leafref/LeafRefPathParserListenerImpl.java b/yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/leafref/LeafRefPathParserListenerImpl.java index 3bbf32a2a8..172ab3bd1e 100644 --- a/yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/leafref/LeafRefPathParserListenerImpl.java +++ b/yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/leafref/LeafRefPathParserListenerImpl.java @@ -12,12 +12,12 @@ import static com.google.common.base.Preconditions.checkArgument; import com.google.common.collect.Lists; import java.net.URI; import java.util.ArrayList; -import java.util.Date; import java.util.List; import java.util.Optional; import org.antlr.v4.runtime.tree.TerminalNode; 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.data.impl.leafref.LeafRefPathParser.IdentifierContext; import org.opendaylight.yangtools.yang.data.impl.leafref.LeafRefPathParser.Node_identifierContext; import org.opendaylight.yangtools.yang.data.impl.leafref.LeafRefPathParser.Path_argContext; @@ -175,7 +175,7 @@ final class LeafRefPathParserListenerImpl extends LeafRefPathParserBaseListener } final String moduleName = moduleImport.getModuleName(); - final Optional revision = moduleImport.getRevision(); + final Optional revision = moduleImport.getRevision(); return schemaContext.findModule(moduleName, revision).map(Module::getQNameModule); } diff --git a/yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/SchemaUtils.java b/yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/SchemaUtils.java index f615f9cc63..37c5637097 100644 --- a/yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/SchemaUtils.java +++ b/yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/SchemaUtils.java @@ -25,6 +25,7 @@ import java.util.Optional; import java.util.Set; import javax.annotation.Nullable; import org.opendaylight.yangtools.yang.common.QName; +import org.opendaylight.yangtools.yang.common.Revision; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.AugmentationIdentifier; import org.opendaylight.yangtools.yang.data.api.schema.AugmentationNode; import org.opendaylight.yangtools.yang.data.api.schema.DataContainerChild; @@ -35,7 +36,6 @@ import org.opendaylight.yangtools.yang.model.api.ChoiceCaseNode; import org.opendaylight.yangtools.yang.model.api.ChoiceSchemaNode; import org.opendaylight.yangtools.yang.model.api.DataNodeContainer; import org.opendaylight.yangtools.yang.model.api.DataSchemaNode; -import org.opendaylight.yangtools.yang.model.api.ModuleIdentifier; import org.opendaylight.yangtools.yang.model.api.NotificationNodeContainer; import org.opendaylight.yangtools.yang.model.api.RpcDefinition; import org.opendaylight.yangtools.yang.model.api.SchemaContext; @@ -60,7 +60,7 @@ public final class SchemaUtils { if (dataSchemaNode != null && qname != null) { for (final DataSchemaNode dsn : dataSchemaNode) { if (qname.isEqualWithoutRevision(dsn.getQName())) { - if (schema == null || ModuleIdentifier.compareRevisions(schema.getQName().getRevision(), + if (schema == null || Revision.compare(schema.getQName().getRevision(), dsn.getQName().getRevision()) < 0) { schema = dsn; } diff --git a/yang/yang-data-impl/src/test/java/org/opendaylight/yangtools/yang/data/impl/schema/ImmutableNormalizedNodeStreamWriterTest.java b/yang/yang-data-impl/src/test/java/org/opendaylight/yangtools/yang/data/impl/schema/ImmutableNormalizedNodeStreamWriterTest.java index 471bc29954..57065d701a 100644 --- a/yang/yang-data-impl/src/test/java/org/opendaylight/yangtools/yang/data/impl/schema/ImmutableNormalizedNodeStreamWriterTest.java +++ b/yang/yang-data-impl/src/test/java/org/opendaylight/yangtools/yang/data/impl/schema/ImmutableNormalizedNodeStreamWriterTest.java @@ -25,7 +25,7 @@ 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.SimpleDateFormatUtil; +import org.opendaylight.yangtools.yang.common.Revision; 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 +83,7 @@ public class ImmutableNormalizedNodeStreamWriterTest { @Before public void setup() throws URISyntaxException, ParseException { - bazModule = QNameModule.create(new URI("baz-namespace"), SimpleDateFormatUtil.getRevisionFormat() - .parse("1970-01-01")); + bazModule = QNameModule.create(new URI("baz-namespace"), Revision.valueOf("1970-01-01")); outerContainer = QName.create(bazModule, "outer-container"); diff --git a/yang/yang-data-impl/src/test/resources/org/opendaylight/yangtools/yang/data/impl/schema/augment_choice_hell.yang b/yang/yang-data-impl/src/test/resources/org/opendaylight/yangtools/yang/data/impl/schema/augment_choice_hell.yang index 5c3e49f797..d386d485a6 100644 --- a/yang/yang-data-impl/src/test/resources/org/opendaylight/yangtools/yang/data/impl/schema/augment_choice_hell.yang +++ b/yang/yang-data-impl/src/test/resources/org/opendaylight/yangtools/yang/data/impl/schema/augment_choice_hell.yang @@ -6,7 +6,7 @@ module test { organization "Cisco Systems, Inc."; - revision "2014-3-13" { + revision "2014-03-13" { description "Initial revision"; } diff --git a/yang/yang-data-impl/src/test/resources/org/opendaylight/yangtools/yang/data/impl/schema/test.yang b/yang/yang-data-impl/src/test/resources/org/opendaylight/yangtools/yang/data/impl/schema/test.yang index 29edc670e1..b39298eebd 100644 --- a/yang/yang-data-impl/src/test/resources/org/opendaylight/yangtools/yang/data/impl/schema/test.yang +++ b/yang/yang-data-impl/src/test/resources/org/opendaylight/yangtools/yang/data/impl/schema/test.yang @@ -6,7 +6,7 @@ module test { organization "Cisco Systems, Inc."; - revision "2014-3-13" { + revision "2014-03-13" { description "Initial revision"; } @@ -246,4 +246,4 @@ module test { base test-identity; } -} \ No newline at end of file +} diff --git a/yang/yang-data-jaxen/src/test/java/org/opendaylight/yangtools/yang/data/jaxen/BitIsSetXPathFunctionTest.java b/yang/yang-data-jaxen/src/test/java/org/opendaylight/yangtools/yang/data/jaxen/BitIsSetXPathFunctionTest.java index d1c61840f3..9e369b427f 100644 --- a/yang/yang-data-jaxen/src/test/java/org/opendaylight/yangtools/yang/data/jaxen/BitIsSetXPathFunctionTest.java +++ b/yang/yang-data-jaxen/src/test/java/org/opendaylight/yangtools/yang/data/jaxen/BitIsSetXPathFunctionTest.java @@ -31,7 +31,7 @@ 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.SimpleDateFormatUtil; +import org.opendaylight.yangtools.yang.common.Revision; 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; @@ -58,8 +58,7 @@ public class BitIsSetXPathFunctionTest { public static void setup() throws ParseException { jaxenSchemaContextFactory = new JaxenSchemaContextFactory(); - fooModule = QNameModule.create(URI.create("foo-ns"), - SimpleDateFormatUtil.getRevisionFormat().parse("2017-04-03")); + fooModule = QNameModule.create(URI.create("foo-ns"), Revision.valueOf("2017-04-03")); myContainer = QName.create(fooModule, "my-container"); myList = QName.create(fooModule, "my-list"); flags = QName.create(fooModule, "flags"); diff --git a/yang/yang-data-jaxen/src/test/java/org/opendaylight/yangtools/yang/data/jaxen/DerefXPathFunctionTest.java b/yang/yang-data-jaxen/src/test/java/org/opendaylight/yangtools/yang/data/jaxen/DerefXPathFunctionTest.java index 4ec1e25a34..ac03f3ea22 100644 --- a/yang/yang-data-jaxen/src/test/java/org/opendaylight/yangtools/yang/data/jaxen/DerefXPathFunctionTest.java +++ b/yang/yang-data-jaxen/src/test/java/org/opendaylight/yangtools/yang/data/jaxen/DerefXPathFunctionTest.java @@ -18,14 +18,13 @@ import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; import com.google.common.collect.Maps; import java.net.URI; -import java.text.ParseException; import java.util.Map; import org.jaxen.Function; 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.SimpleDateFormatUtil; +import org.opendaylight.yangtools.yang.common.Revision; 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; @@ -62,11 +61,10 @@ public class DerefXPathFunctionTest { private static QName ordinaryLeafB; @BeforeClass - public static void setup() throws ParseException { + public static void setup() { jaxenSchemaContextFactory = new JaxenSchemaContextFactory(); - fooModule = QNameModule.create(URI.create("foo-ns"), - SimpleDateFormatUtil.getRevisionFormat().parse("2017-04-03")); + fooModule = QNameModule.create(URI.create("foo-ns"), Revision.valueOf("2017-04-03")); myContainer = QName.create(fooModule, "my-container"); myInnerContainer = QName.create(fooModule, "my-inner-container"); myList = QName.create(fooModule, "my-list"); diff --git a/yang/yang-data-jaxen/src/test/java/org/opendaylight/yangtools/yang/data/jaxen/DerivedFromXPathFunctionTest.java b/yang/yang-data-jaxen/src/test/java/org/opendaylight/yangtools/yang/data/jaxen/DerivedFromXPathFunctionTest.java index 7598cc3cb2..1c0c1d5fb3 100644 --- a/yang/yang-data-jaxen/src/test/java/org/opendaylight/yangtools/yang/data/jaxen/DerivedFromXPathFunctionTest.java +++ b/yang/yang-data-jaxen/src/test/java/org/opendaylight/yangtools/yang/data/jaxen/DerivedFromXPathFunctionTest.java @@ -21,7 +21,6 @@ import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; import com.google.common.collect.Maps; import java.net.URI; -import java.text.ParseException; import org.jaxen.Context; import org.jaxen.Function; import org.jaxen.FunctionCallException; @@ -29,7 +28,7 @@ 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.SimpleDateFormatUtil; +import org.opendaylight.yangtools.yang.common.Revision; 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; @@ -54,11 +53,10 @@ public class DerivedFromXPathFunctionTest { private static QName idC2Identity; @BeforeClass - public static void setup() throws ParseException { + public static void setup() { jaxenSchemaContextFactory = new JaxenSchemaContextFactory(); - barModule = QNameModule.create(URI.create("bar-ns"), - SimpleDateFormatUtil.getRevisionFormat().parse("2017-04-03")); + barModule = QNameModule.create(URI.create("bar-ns"), Revision.valueOf("2017-04-03")); myContainer = QName.create(barModule, "my-container"); myList = QName.create(barModule, "my-list"); keyLeaf = QName.create(barModule, "key-leaf"); diff --git a/yang/yang-data-jaxen/src/test/java/org/opendaylight/yangtools/yang/data/jaxen/EnumValueXPathFunctionTest.java b/yang/yang-data-jaxen/src/test/java/org/opendaylight/yangtools/yang/data/jaxen/EnumValueXPathFunctionTest.java index 3a860d84b8..344c4c8cfc 100644 --- a/yang/yang-data-jaxen/src/test/java/org/opendaylight/yangtools/yang/data/jaxen/EnumValueXPathFunctionTest.java +++ b/yang/yang-data-jaxen/src/test/java/org/opendaylight/yangtools/yang/data/jaxen/EnumValueXPathFunctionTest.java @@ -28,7 +28,7 @@ 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.SimpleDateFormatUtil; +import org.opendaylight.yangtools.yang.common.Revision; 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; @@ -55,8 +55,7 @@ public class EnumValueXPathFunctionTest { public static void setup() throws ParseException { jaxenSchemaContextFactory = new JaxenSchemaContextFactory(); - fooModule = QNameModule.create(URI.create("foo-ns"), - SimpleDateFormatUtil.getRevisionFormat().parse("2017-04-03")); + fooModule = QNameModule.create(URI.create("foo-ns"), Revision.valueOf("2017-04-03")); myContainer = QName.create(fooModule, "my-container"); alarm = QName.create(fooModule, "alarm"); severity = QName.create(fooModule, "severity"); diff --git a/yang/yang-data-jaxen/src/test/java/org/opendaylight/yangtools/yang/data/jaxen/JaxenTest.java b/yang/yang-data-jaxen/src/test/java/org/opendaylight/yangtools/yang/data/jaxen/JaxenTest.java index cd85e70e49..56e594235d 100644 --- a/yang/yang-data-jaxen/src/test/java/org/opendaylight/yangtools/yang/data/jaxen/JaxenTest.java +++ b/yang/yang-data-jaxen/src/test/java/org/opendaylight/yangtools/yang/data/jaxen/JaxenTest.java @@ -37,7 +37,7 @@ 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.SimpleDateFormatUtil; +import org.opendaylight.yangtools.yang.common.Revision; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode; import org.opendaylight.yangtools.yang.data.api.schema.xpath.XPathDocument; @@ -220,8 +220,7 @@ public class JaxenTest { } private void initQNames() throws URISyntaxException, ParseException { - this.moduleQName = QNameModule.create(new URI("urn:opendaylight.test2"), - SimpleDateFormatUtil.getRevisionFormat().parse("2015-08-08")); + this.moduleQName = QNameModule.create(new URI("urn:opendaylight.test2"), Revision.valueOf("2015-08-08")); this.rootQName = QName.create(moduleQName, "root"); this.listAQName = QName.create(moduleQName, "list-a"); this.listBQName = QName.create(moduleQName, "list-b"); diff --git a/yang/yang-data-util/src/main/java/org/opendaylight/yangtools/yang/data/util/ParserStreamUtils.java b/yang/yang-data-util/src/main/java/org/opendaylight/yangtools/yang/data/util/ParserStreamUtils.java index 3e08e5a32e..e2372c2f1a 100644 --- a/yang/yang-data-util/src/main/java/org/opendaylight/yangtools/yang/data/util/ParserStreamUtils.java +++ b/yang/yang-data-util/src/main/java/org/opendaylight/yangtools/yang/data/util/ParserStreamUtils.java @@ -14,11 +14,11 @@ 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.model.api.ChoiceCaseNode; import org.opendaylight.yangtools.yang.model.api.ChoiceSchemaNode; import org.opendaylight.yangtools.yang.model.api.DataNodeContainer; import org.opendaylight.yangtools.yang.model.api.DataSchemaNode; -import org.opendaylight.yangtools.yang.model.api.ModuleIdentifier; public final class ParserStreamUtils { @@ -47,7 +47,7 @@ public final class ParserStreamUtils { final QName childQName = childNode.getQName(); if (childQName.getLocalName().equals(childName) && childQName.getNamespace().equals(namespace)) { - if (potentialChildNode == null || ModuleIdentifier.compareRevisions(childQName.getRevision(), + if (potentialChildNode == null || Revision.compare(childQName.getRevision(), potentialChildNode.getQName().getRevision()) > 0) { potentialChildNode = childNode; } diff --git a/yang/yang-maven-plugin/src/test/resources/test.yang b/yang/yang-maven-plugin/src/test/resources/test.yang index 4d97b42462..a01d7dd004 100644 --- a/yang/yang-maven-plugin/src/test/resources/test.yang +++ b/yang/yang-maven-plugin/src/test/resources/test.yang @@ -12,7 +12,7 @@ module test { organization "Cisco Systems, Inc."; - revision "2014-3-13" { + revision "2014-03-13" { description "Initial revision"; } @@ -22,4 +22,4 @@ module test { type string; } } -} \ No newline at end of file +} diff --git a/yang/yang-maven-plugin/src/test/resources/test2.yang b/yang/yang-maven-plugin/src/test/resources/test2.yang index f2c05c94e4..913cca809d 100644 --- a/yang/yang-maven-plugin/src/test/resources/test2.yang +++ b/yang/yang-maven-plugin/src/test/resources/test2.yang @@ -12,7 +12,7 @@ module test2 { organization "Cisco Systems, Inc."; - revision "2014-3-13" { + revision "2014-03-13" { description "Initial revision"; } @@ -22,4 +22,4 @@ module test2 { type string; } } -} \ No newline at end of file +} diff --git a/yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/Module.java b/yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/Module.java index c5b33ae879..83347c5e9f 100644 --- a/yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/Module.java +++ b/yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/Module.java @@ -8,7 +8,6 @@ package org.opendaylight.yangtools.yang.model.api; import java.net.URI; -import java.util.Date; import java.util.List; import java.util.Optional; import java.util.Set; @@ -16,6 +15,7 @@ import javax.annotation.Nonnull; import javax.annotation.concurrent.Immutable; import org.opendaylight.yangtools.concepts.SemVer; import org.opendaylight.yangtools.yang.common.QNameModule; +import org.opendaylight.yangtools.yang.common.Revision; import org.opendaylight.yangtools.yang.common.YangVersion; /** @@ -102,8 +102,7 @@ public interface Module extends DataNodeContainer, NotificationNodeContainer { * YANG {@link Module revison} * keyword */ - // FIXME: BUG-4688: should return Optional - default Optional getRevision() { + default Optional getRevision() { return getQNameModule().getRevision(); } diff --git a/yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/ModuleIdentifier.java b/yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/ModuleIdentifier.java index 67eed3ad30..e31e1dfadb 100644 --- a/yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/ModuleIdentifier.java +++ b/yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/ModuleIdentifier.java @@ -7,8 +7,8 @@ */ package org.opendaylight.yangtools.yang.model.api; -import java.util.Date; import java.util.Optional; +import org.opendaylight.yangtools.yang.common.Revision; import org.opendaylight.yangtools.yang.model.repo.api.SourceIdentifier; /** @@ -34,13 +34,5 @@ public interface ModuleIdentifier { * YANG {@link Module revison} * keyword */ - // FIXME: BUG-4688: should return Optional - Optional getRevision(); - - static int compareRevisions(final Optional first, final Optional second) { - if (!first.isPresent()) { - return second.isPresent() ? -1 : 0; - } - return second.isPresent() ? first.get().compareTo(second.get()) : 1; - } + Optional getRevision(); } diff --git a/yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/ModuleImport.java b/yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/ModuleImport.java index dbad209479..b317038e2e 100644 --- a/yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/ModuleImport.java +++ b/yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/ModuleImport.java @@ -7,9 +7,9 @@ */ package org.opendaylight.yangtools.yang.model.api; -import java.util.Date; import java.util.Optional; import org.opendaylight.yangtools.concepts.SemVer; +import org.opendaylight.yangtools.yang.common.Revision; /** * Interface describing YANG 'import' statement. @@ -30,7 +30,7 @@ public interface ModuleImport extends DocumentedNode { * * @return Revision of module to import */ - Optional getRevision(); + Optional getRevision(); /** * Returns the semantic version to import. diff --git a/yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/NamespaceRevisionAware.java b/yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/NamespaceRevisionAware.java index 479720620b..7e905f5170 100644 --- a/yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/NamespaceRevisionAware.java +++ b/yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/NamespaceRevisionAware.java @@ -8,11 +8,12 @@ package org.opendaylight.yangtools.yang.model.api; import java.net.URI; -import java.util.Date; +import java.util.Optional; +import org.opendaylight.yangtools.yang.common.Revision; public interface NamespaceRevisionAware { URI getNamespace(); - Date getRevision(); + Optional getRevision(); } diff --git a/yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/SchemaContext.java b/yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/SchemaContext.java index 2063a799d3..ea57bbf709 100644 --- a/yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/SchemaContext.java +++ b/yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/SchemaContext.java @@ -9,13 +9,13 @@ package org.opendaylight.yangtools.yang.model.api; import com.google.common.collect.Sets; import java.net.URI; -import java.util.Date; import java.util.Optional; import java.util.Set; import javax.annotation.Nullable; import javax.annotation.concurrent.Immutable; import org.opendaylight.yangtools.yang.common.QName; import org.opendaylight.yangtools.yang.common.QNameModule; +import org.opendaylight.yangtools.yang.common.Revision; /** * The interface represents static view of compiled yang files, @@ -72,11 +72,11 @@ public interface SchemaContext extends ContainerSchemaNode { * @param name * string with the module name * @param revision - * date of the module revision, may be null + * date of the module revision * @return module instance which has name and revision the same as are the values specified in parameters * name and revision. */ - Optional findModule(String name, @Nullable Date revision); + Optional findModule(String name, Optional revision); /** * Returns module instance (from the context) with concrete name and revision date. @@ -100,15 +100,19 @@ public interface SchemaContext extends ContainerSchemaNode { * @return module instance which has name and revision the same as are the values specified in parameters * name and revision. */ - default Optional findModule(final String name, final Optional revision) { - return findModule(name, revision.orElse(null)); + default Optional findModule(final String name, @Nullable final Revision revision) { + return findModule(name, Optional.ofNullable(revision)); } default Optional findModule(final URI namespace) { return findModule(QNameModule.create(namespace)); } - default Optional findModule(final URI namespace, @Nullable final Date revision) { + default Optional findModule(final URI namespace, @Nullable final Revision revision) { + return findModule(QNameModule.create(namespace, revision)); + } + + default Optional findModule(final URI namespace, final Optional revision) { return findModule(QNameModule.create(namespace, revision)); } diff --git a/yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/RevisionDateStatement.java b/yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/RevisionDateStatement.java index 1b91cb642a..057f7b4750 100644 --- a/yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/RevisionDateStatement.java +++ b/yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/RevisionDateStatement.java @@ -7,12 +7,11 @@ */ package org.opendaylight.yangtools.yang.model.api.stmt; -import java.util.Date; - +import org.opendaylight.yangtools.yang.common.Revision; import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement; -public interface RevisionDateStatement extends DeclaredStatement { +public interface RevisionDateStatement extends DeclaredStatement { - Date getDate(); + Revision getDate(); } diff --git a/yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/RevisionStatement.java b/yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/RevisionStatement.java index dbc9b98f27..017ad49b5c 100644 --- a/yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/RevisionStatement.java +++ b/yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/RevisionStatement.java @@ -7,11 +7,11 @@ */ package org.opendaylight.yangtools.yang.model.api.stmt; -import java.util.Date; import javax.annotation.Nonnull; +import org.opendaylight.yangtools.yang.common.Revision; import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement; -public interface RevisionStatement extends DeclaredStatement, DocumentationGroup { +public interface RevisionStatement extends DeclaredStatement, DocumentationGroup { - @Nonnull Date getDate(); + @Nonnull Revision getDate(); } diff --git a/yang/yang-model-export/src/main/java/org/opendaylight/yangtools/yang/model/export/SchemaContextEmitter.java b/yang/yang-model-export/src/main/java/org/opendaylight/yangtools/yang/model/export/SchemaContextEmitter.java index cee0cf1892..a901081447 100644 --- a/yang/yang-model-export/src/main/java/org/opendaylight/yangtools/yang/model/export/SchemaContextEmitter.java +++ b/yang/yang-model-export/src/main/java/org/opendaylight/yangtools/yang/model/export/SchemaContextEmitter.java @@ -17,7 +17,6 @@ import com.google.common.collect.RangeSet; import com.google.common.primitives.UnsignedInteger; import java.net.URI; import java.util.Collection; -import java.util.Date; import java.util.Iterator; import java.util.List; import java.util.Map; @@ -29,6 +28,7 @@ import javax.annotation.Nonnull; import javax.annotation.Nullable; import javax.annotation.concurrent.NotThreadSafe; import org.opendaylight.yangtools.yang.common.QName; +import org.opendaylight.yangtools.yang.common.Revision; import org.opendaylight.yangtools.yang.common.YangVersion; import org.opendaylight.yangtools.yang.model.api.ActionDefinition; import org.opendaylight.yangtools.yang.model.api.AnyDataSchemaNode; @@ -1349,7 +1349,7 @@ abstract class SchemaContextEmitter { } } - private void emitRevision(final Date date) { + private void emitRevision(final Revision date) { if (date != null) { super.writer.startRevisionNode(date); @@ -1361,7 +1361,7 @@ abstract class SchemaContextEmitter { } } - private void emitRevisionDateNode(final Date date) { + private void emitRevisionDateNode(final Revision date) { super.writer.startRevisionDateNode(date); super.writer.endNode(); } diff --git a/yang/yang-model-export/src/main/java/org/opendaylight/yangtools/yang/model/export/SchemaToStatementWriterAdaptor.java b/yang/yang-model-export/src/main/java/org/opendaylight/yangtools/yang/model/export/SchemaToStatementWriterAdaptor.java index bbbdc9e4c5..f86f9e99a9 100644 --- a/yang/yang-model-export/src/main/java/org/opendaylight/yangtools/yang/model/export/SchemaToStatementWriterAdaptor.java +++ b/yang/yang-model-export/src/main/java/org/opendaylight/yangtools/yang/model/export/SchemaToStatementWriterAdaptor.java @@ -13,12 +13,11 @@ import com.google.common.collect.Iterables; import com.google.common.primitives.UnsignedInteger; import java.net.URI; import java.util.Collection; -import java.util.Date; import java.util.Iterator; import java.util.List; import javax.annotation.concurrent.NotThreadSafe; import org.opendaylight.yangtools.yang.common.QName; -import org.opendaylight.yangtools.yang.common.SimpleDateFormatUtil; +import org.opendaylight.yangtools.yang.common.Revision; import org.opendaylight.yangtools.yang.model.api.RevisionAwareXPath; import org.opendaylight.yangtools.yang.model.api.SchemaPath; import org.opendaylight.yangtools.yang.model.api.Status; @@ -228,9 +227,9 @@ final class SchemaToStatementWriterAdaptor implements YangModuleWriter { } @Override - public void startRevisionNode(final Date date) { + public void startRevisionNode(final Revision date) { writer.startStatement(YangStmtMapping.REVISION); - writer.writeArgument(SimpleDateFormatUtil.getRevisionFormat().format(date)); + writer.writeArgument(date.toString()); } @Override @@ -306,9 +305,9 @@ final class SchemaToStatementWriterAdaptor implements YangModuleWriter { } @Override - public void startRevisionDateNode(final Date date) { + public void startRevisionDateNode(final Revision date) { writer.startStatement(YangStmtMapping.REVISION_DATE); - writer.writeArgument(SimpleDateFormatUtil.getRevisionFormat().format(date)); + writer.writeArgument(date.toString()); } @Override diff --git a/yang/yang-model-export/src/main/java/org/opendaylight/yangtools/yang/model/export/YangModuleWriter.java b/yang/yang-model-export/src/main/java/org/opendaylight/yangtools/yang/model/export/YangModuleWriter.java index c6b66ae9d1..0b4baccce1 100644 --- a/yang/yang-model-export/src/main/java/org/opendaylight/yangtools/yang/model/export/YangModuleWriter.java +++ b/yang/yang-model-export/src/main/java/org/opendaylight/yangtools/yang/model/export/YangModuleWriter.java @@ -9,9 +9,9 @@ package org.opendaylight.yangtools.yang.model.export; import com.google.common.primitives.UnsignedInteger; import java.net.URI; -import java.util.Date; import java.util.List; import org.opendaylight.yangtools.yang.common.QName; +import org.opendaylight.yangtools.yang.common.Revision; import org.opendaylight.yangtools.yang.model.api.RevisionAwareXPath; import org.opendaylight.yangtools.yang.model.api.SchemaPath; import org.opendaylight.yangtools.yang.model.api.Status; @@ -79,7 +79,7 @@ interface YangModuleWriter { void startTypedefNode(QName qName); - void startRevisionNode(Date date); + void startRevisionNode(Revision date); void startDefaultNode(String string); @@ -105,7 +105,7 @@ interface YangModuleWriter { void startReferenceNode(String input); - void startRevisionDateNode(Date date); + void startRevisionDateNode(Revision date); void startImportNode(String moduleName); diff --git a/yang/yang-model-export/src/main/java/org/opendaylight/yangtools/yang/model/export/YinExportUtils.java b/yang/yang-model-export/src/main/java/org/opendaylight/yangtools/yang/model/export/YinExportUtils.java index ec9b723c0a..510fdab833 100644 --- a/yang/yang-model-export/src/main/java/org/opendaylight/yangtools/yang/model/export/YinExportUtils.java +++ b/yang/yang-model-export/src/main/java/org/opendaylight/yangtools/yang/model/export/YinExportUtils.java @@ -12,13 +12,12 @@ import com.google.common.collect.BiMap; import com.google.common.collect.HashBiMap; import java.io.OutputStream; import java.net.URI; -import java.util.Date; import java.util.Map; import java.util.Optional; import javax.xml.stream.XMLOutputFactory; import javax.xml.stream.XMLStreamException; import javax.xml.stream.XMLStreamWriter; -import org.opendaylight.yangtools.yang.common.SimpleDateFormatUtil; +import org.opendaylight.yangtools.yang.common.Revision; import org.opendaylight.yangtools.yang.common.YangConstants; import org.opendaylight.yangtools.yang.model.api.Module; import org.opendaylight.yangtools.yang.model.api.ModuleImport; @@ -40,9 +39,8 @@ public final class YinExportUtils { * Revision of module or submodule * @return well-formed file name of YIN file as defined in RFC6020. */ - public static String wellFormedYinName(final String name, final Optional revision) { - return !revision.isPresent() ? wellFormedYinName(name, (String) null) : - wellFormedYinName(name, SimpleDateFormatUtil.getRevisionFormat().format(revision.get())); + public static String wellFormedYinName(final String name, final Optional revision) { + return wellFormedYinName(name, revision.map(Revision::toString).orElse(null)); } /** diff --git a/yang/yang-model-export/src/test/java/org/opendaylight/yangtools/yang/model/export/test/Bug6856Test.java b/yang/yang-model-export/src/test/java/org/opendaylight/yangtools/yang/model/export/test/Bug6856Test.java index 9df4db341a..67386e8868 100644 --- a/yang/yang-model-export/src/test/java/org/opendaylight/yangtools/yang/model/export/test/Bug6856Test.java +++ b/yang/yang-model-export/src/test/java/org/opendaylight/yangtools/yang/model/export/test/Bug6856Test.java @@ -16,7 +16,7 @@ import java.io.BufferedOutputStream; import java.io.ByteArrayOutputStream; import java.io.OutputStream; import org.junit.Test; -import org.opendaylight.yangtools.yang.common.QName; +import org.opendaylight.yangtools.yang.common.Revision; import org.opendaylight.yangtools.yang.model.api.Module; import org.opendaylight.yangtools.yang.model.api.SchemaContext; import org.opendaylight.yangtools.yang.model.export.YinExportUtils; @@ -33,7 +33,7 @@ public class Bug6856Test { final OutputStream byteArrayOutputStream = new ByteArrayOutputStream(); final BufferedOutputStream bufferedOutputStream = new BufferedOutputStream(byteArrayOutputStream); - final Module fooModule = schemaContext.findModule("foo", QName.parseRevision("2017-02-28")).get(); + final Module fooModule = schemaContext.findModule("foo", Revision.valueOf("2017-02-28")).get(); YinExportUtils.writeModuleToOutputStream(schemaContext, fooModule, bufferedOutputStream); final String output = byteArrayOutputStream.toString(); @@ -53,7 +53,7 @@ public class Bug6856Test { final OutputStream byteArrayOutputStream = new ByteArrayOutputStream(); final BufferedOutputStream bufferedOutputStream = new BufferedOutputStream(byteArrayOutputStream); - final Module barModule = schemaContext.findModule("bar", QName.parseRevision("2017-02-28")).get(); + final Module barModule = schemaContext.findModule("bar", Revision.valueOf("2017-02-28")).get(); YinExportUtils.writeModuleToOutputStream(schemaContext, barModule, bufferedOutputStream); final String output = byteArrayOutputStream.toString(); diff --git a/yang/yang-model-export/src/test/java/org/opendaylight/yangtools/yang/model/export/test/YinExportTestUtils.java b/yang/yang-model-export/src/test/java/org/opendaylight/yangtools/yang/model/export/test/YinExportTestUtils.java index 0f13c4e387..a93706ce4c 100644 --- a/yang/yang-model-export/src/test/java/org/opendaylight/yangtools/yang/model/export/test/YinExportTestUtils.java +++ b/yang/yang-model-export/src/test/java/org/opendaylight/yangtools/yang/model/export/test/YinExportTestUtils.java @@ -11,7 +11,6 @@ import com.google.common.base.Preconditions; import java.io.IOException; import java.io.InputStream; import java.io.StringWriter; -import java.util.Date; import java.util.Optional; import javax.xml.transform.OutputKeys; import javax.xml.transform.Transformer; @@ -21,7 +20,7 @@ import javax.xml.transform.TransformerFactoryConfigurationError; import javax.xml.transform.dom.DOMSource; import javax.xml.transform.stream.StreamResult; import org.opendaylight.yangtools.util.xml.UntrustedXML; -import org.opendaylight.yangtools.yang.common.SimpleDateFormatUtil; +import org.opendaylight.yangtools.yang.common.Revision; import org.opendaylight.yangtools.yang.common.YangConstants; import org.opendaylight.yangtools.yang.model.api.Module; import org.w3c.dom.Document; @@ -35,9 +34,8 @@ public class YinExportTestUtils { } public static Document loadDocument(final String prefix, final Module module) throws IOException, SAXException { - final Optional rev = module.getRevision(); - final String fileName = !rev.isPresent() ? module.getName() - : module.getName() + '@' + SimpleDateFormatUtil.getRevisionFormat().format(rev.get()); + final Optional rev = module.getRevision(); + final String fileName = !rev.isPresent() ? module.getName() : module.getName() + '@' + rev.get().toString(); return loadDocument(prefix + '/' + fileName + YangConstants.RFC6020_YIN_FILE_EXTENSION); } diff --git a/yang/yang-model-immutable/src/main/java/org/opendaylight/yangtools/yang/model/immutable/AbstractSchemaContext.java b/yang/yang-model-immutable/src/main/java/org/opendaylight/yangtools/yang/model/immutable/AbstractSchemaContext.java index 33cb1426da..70761e4796 100644 --- a/yang/yang-model-immutable/src/main/java/org/opendaylight/yangtools/yang/model/immutable/AbstractSchemaContext.java +++ b/yang/yang-model-immutable/src/main/java/org/opendaylight/yangtools/yang/model/immutable/AbstractSchemaContext.java @@ -7,9 +7,9 @@ */ package org.opendaylight.yangtools.yang.model.immutable; -import java.util.Date; import java.util.Optional; import org.immutables.value.Value; +import org.opendaylight.yangtools.yang.common.Revision; import org.opendaylight.yangtools.yang.model.api.Module; import org.opendaylight.yangtools.yang.model.api.SchemaContext; @@ -17,7 +17,7 @@ import org.opendaylight.yangtools.yang.model.api.SchemaContext; abstract class AbstractSchemaContext extends CommonContainerSchemaNode implements SchemaContext { @Override - public Optional findModule(final String name, final Date revision) { + public Optional findModule(final String name, final Optional revision) { throw new UnsupportedOperationException("Not implemented"); } } diff --git a/yang/yang-model-util/src/main/java/org/opendaylight/yangtools/yang/model/util/AbstractSchemaContext.java b/yang/yang-model-util/src/main/java/org/opendaylight/yangtools/yang/model/util/AbstractSchemaContext.java index eeb6faa0c9..7202af3b52 100644 --- a/yang/yang-model-util/src/main/java/org/opendaylight/yangtools/yang/model/util/AbstractSchemaContext.java +++ b/yang/yang-model-util/src/main/java/org/opendaylight/yangtools/yang/model/util/AbstractSchemaContext.java @@ -13,23 +13,21 @@ import java.net.URI; import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; -import java.util.Date; import java.util.HashSet; import java.util.LinkedHashSet; import java.util.List; -import java.util.Objects; import java.util.Optional; import java.util.Set; import java.util.TreeSet; import javax.annotation.Nonnull; import org.opendaylight.yangtools.yang.common.QName; +import org.opendaylight.yangtools.yang.common.Revision; import org.opendaylight.yangtools.yang.model.api.AugmentationSchema; import org.opendaylight.yangtools.yang.model.api.ConstraintDefinition; import org.opendaylight.yangtools.yang.model.api.DataSchemaNode; import org.opendaylight.yangtools.yang.model.api.ExtensionDefinition; import org.opendaylight.yangtools.yang.model.api.GroupingDefinition; import org.opendaylight.yangtools.yang.model.api.Module; -import org.opendaylight.yangtools.yang.model.api.ModuleIdentifier; import org.opendaylight.yangtools.yang.model.api.NotificationDefinition; import org.opendaylight.yangtools.yang.model.api.RpcDefinition; import org.opendaylight.yangtools.yang.model.api.SchemaContext; @@ -40,9 +38,8 @@ import org.opendaylight.yangtools.yang.model.api.UnknownSchemaNode; import org.opendaylight.yangtools.yang.model.api.UsesNode; public abstract class AbstractSchemaContext implements SchemaContext { - protected static final Comparator REVISION_COMPARATOR = (first, second) -> { - return ModuleIdentifier.compareRevisions(first.getRevision(), second.getRevision()); - }; + protected static final Comparator REVISION_COMPARATOR = + (first, second) -> Revision.compare(first.getRevision(), second.getRevision()); protected static final TreeSet createModuleSet() { return new TreeSet<>(REVISION_COMPARATOR); @@ -100,9 +97,9 @@ public abstract class AbstractSchemaContext implements SchemaContext { @Override - public Optional findModule(final String name, final Date revision) { + public Optional findModule(final String name, final Optional revision) { for (final Module module : getNameToModules().get(name)) { - if (Objects.equals(revision, module.getRevision().orElse(null))) { + if (revision.equals(module.getRevision())) { return Optional.of(module); } } diff --git a/yang/yang-model-util/src/main/java/org/opendaylight/yangtools/yang/model/util/FilteringSchemaContextProxy.java b/yang/yang-model-util/src/main/java/org/opendaylight/yangtools/yang/model/util/FilteringSchemaContextProxy.java index feaa194c29..f51462b354 100644 --- a/yang/yang-model-util/src/main/java/org/opendaylight/yangtools/yang/model/util/FilteringSchemaContextProxy.java +++ b/yang/yang-model-util/src/main/java/org/opendaylight/yangtools/yang/model/util/FilteringSchemaContextProxy.java @@ -23,7 +23,6 @@ import com.google.common.collect.TreeMultimap; import java.net.URI; import java.util.Collection; import java.util.Collections; -import java.util.Date; import java.util.List; import java.util.Map; import java.util.Optional; @@ -31,6 +30,7 @@ import java.util.Set; import java.util.TreeMap; import java.util.function.Function; import javax.annotation.concurrent.Immutable; +import org.opendaylight.yangtools.yang.common.Revision; import org.opendaylight.yangtools.yang.model.api.Module; import org.opendaylight.yangtools.yang.model.api.ModuleIdentifier; import org.opendaylight.yangtools.yang.model.api.ModuleImport; @@ -126,7 +126,7 @@ public final class FilteringSchemaContextProxy extends AbstractSchemaContext { for (Module module : baseModules) { for (ModuleImport moduleImport : module.getImports()) { - Optional revisionDate = moduleImport.getRevision(); + Optional revisionDate = moduleImport.getRevision(); if (!revisionDate.isPresent()) { revisionDate = nameToModulesAll.get(moduleImport.getModuleName()).last().getRevision(); } @@ -206,9 +206,9 @@ public final class FilteringSchemaContextProxy extends AbstractSchemaContext { public static final class ModuleId { private final String name; - private final Date rev; + private final Revision rev; - public ModuleId(final String name, final Optional rev) { + public ModuleId(final String name, final Optional rev) { Preconditions.checkArgument(!Strings.isNullOrEmpty(name), "No module dependency name given. Nothing to do."); this.name = name; @@ -220,7 +220,7 @@ public final class FilteringSchemaContextProxy extends AbstractSchemaContext { return name; } - public Optional getRev() { + public Optional getRev() { return Optional.ofNullable(rev); } diff --git a/yang/yang-model-util/src/main/java/org/opendaylight/yangtools/yang/model/util/ModuleDependencySort.java b/yang/yang-model-util/src/main/java/org/opendaylight/yangtools/yang/model/util/ModuleDependencySort.java index 40f8eddf3e..1306b59b9a 100644 --- a/yang/yang-model-util/src/main/java/org/opendaylight/yangtools/yang/model/util/ModuleDependencySort.java +++ b/yang/yang-model-util/src/main/java/org/opendaylight/yangtools/yang/model/util/ModuleDependencySort.java @@ -13,7 +13,6 @@ import com.google.common.collect.Lists; import com.google.common.collect.Table; import java.net.URI; import java.util.Collection; -import java.util.Date; import java.util.HashMap; import java.util.HashSet; import java.util.List; @@ -23,7 +22,7 @@ import java.util.Optional; 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.SimpleDateFormatUtil; +import org.opendaylight.yangtools.yang.common.Revision; import org.opendaylight.yangtools.yang.common.YangVersion; import org.opendaylight.yangtools.yang.model.api.Module; import org.opendaylight.yangtools.yang.model.api.ModuleImport; @@ -75,12 +74,13 @@ public final class ModuleDependencySort { } private static List sortInternal(final Iterable modules) { - final Table, ModuleNodeImpl> moduleGraph = createModuleGraph(modules); + final Table, ModuleNodeImpl> moduleGraph = createModuleGraph(modules); return TopologicalSort.sort(new HashSet<>(moduleGraph.values())); } - private static Table, ModuleNodeImpl> createModuleGraph(final Iterable builders) { - final Table, ModuleNodeImpl> moduleGraph = HashBasedTable.create(); + private static Table, ModuleNodeImpl> createModuleGraph( + final Iterable builders) { + final Table, ModuleNodeImpl> moduleGraph = HashBasedTable.create(); processModules(moduleGraph, builders); processDependencies(moduleGraph, builders); @@ -91,16 +91,16 @@ public final class ModuleDependencySort { /** * Extract module:revision from modules. */ - private static void processDependencies(final Table, ModuleNodeImpl> moduleGraph, + private static void processDependencies(final Table, ModuleNodeImpl> moduleGraph, final Iterable mmbs) { final Map allNS = new HashMap<>(); // Create edges in graph for (final Module module : mmbs) { - final Map> imported = new HashMap<>(); + final Map> imported = new HashMap<>(); final String fromName = module.getName(); final URI ns = module.getNamespace(); - final Optional fromRevision = module.getRevision(); + final Optional fromRevision = module.getRevision(); // check for existence of module with same namespace final Module prev = allNS.putIfAbsent(ns, module); @@ -115,7 +115,7 @@ public final class ModuleDependencySort { // no need to check if other Type of object, check is performed in process modules for (final ModuleImport imprt : module.getImports()) { final String toName = imprt.getModuleName(); - final Optional toRevision = imprt.getRevision(); + final Optional toRevision = imprt.getRevision(); final ModuleNodeImpl from = moduleGraph.get(fromName, fromRevision); final ModuleNodeImpl to = getModuleByNameAndRevision(moduleGraph, fromName, fromRevision, toName, @@ -126,7 +126,7 @@ public final class ModuleDependencySort { * revisions then throw exception */ if (module.getYangVersion() == YangVersion.VERSION_1) { - final Optional impRevision = imported.get(toName); + final Optional impRevision = imported.get(toName); if (impRevision != null && impRevision.isPresent() && !impRevision.equals(toRevision) && toRevision.isPresent()) { throw new IllegalArgumentException(String.format( @@ -146,8 +146,8 @@ public final class ModuleDependencySort { * Get imported module by its name and revision from moduleGraph. */ private static ModuleNodeImpl getModuleByNameAndRevision( - final Table, ModuleNodeImpl> moduleGraph, final String fromName, - final Optional fromRevision, final String toName, final Optional toRevision) { + final Table, ModuleNodeImpl> moduleGraph, final String fromName, + final Optional fromRevision, final String toName, final Optional toRevision) { final ModuleNodeImpl exact = moduleGraph.get(toName, toRevision); if (exact != null) { @@ -156,7 +156,7 @@ public final class ModuleDependencySort { // If revision is not specified in import, but module exists with different revisions, take first one if (toRevision == null) { - final Map, ModuleNodeImpl> modulerevs = moduleGraph.row(toName); + final Map, ModuleNodeImpl> modulerevs = moduleGraph.row(toName); if (!modulerevs.isEmpty()) { final ModuleNodeImpl first = modulerevs.values().iterator().next(); @@ -179,15 +179,15 @@ public final class ModuleDependencySort { /** * Extract dependencies from modules to fill dependency graph. */ - private static void processModules(final Table, ModuleNodeImpl> moduleGraph, + private static void processModules(final Table, ModuleNodeImpl> moduleGraph, final Iterable modules) { // Process nodes for (final Module momb : modules) { final String name = momb.getName(); - final Optional rev = momb.getRevision(); - final Map, ModuleNodeImpl> revs = moduleGraph.row(name); + final Optional rev = momb.getRevision(); + final Map, ModuleNodeImpl> revs = moduleGraph.row(name); if (revs.containsKey(rev)) { throw new IllegalArgumentException(String.format("Module:%s with revision:%s declared twice", name, formatRevDate(rev))); @@ -197,16 +197,16 @@ public final class ModuleDependencySort { } } - private static String formatRevDate(final Optional rev) { - return rev.map(revision -> SimpleDateFormatUtil.getRevisionFormat().format(revision)).orElse("default"); + private static String formatRevDate(final Optional rev) { + return rev.map(Revision::toString).orElse("default"); } private static final class ModuleNodeImpl extends NodeImpl { private final String name; - private final Date revision; + private final Revision revision; private final Module originalObject; - ModuleNodeImpl(final String name, final Date revision, final Module module) { + ModuleNodeImpl(final String name, final Revision revision, final Module module) { this.name = name; this.revision = revision; this.originalObject = module; @@ -216,7 +216,7 @@ public final class ModuleDependencySort { return name; } - Optional getRevision() { + Optional getRevision() { return Optional.ofNullable(revision); } diff --git a/yang/yang-model-util/src/main/java/org/opendaylight/yangtools/yang/model/util/ModuleIdentifierImpl.java b/yang/yang-model-util/src/main/java/org/opendaylight/yangtools/yang/model/util/ModuleIdentifierImpl.java index 7b951c8140..1f8b375c7e 100644 --- a/yang/yang-model-util/src/main/java/org/opendaylight/yangtools/yang/model/util/ModuleIdentifierImpl.java +++ b/yang/yang-model-util/src/main/java/org/opendaylight/yangtools/yang/model/util/ModuleIdentifierImpl.java @@ -10,8 +10,8 @@ package org.opendaylight.yangtools.yang.model.util; import static com.google.common.base.Preconditions.checkNotNull; import com.google.common.annotations.Beta; -import java.util.Date; import java.util.Optional; +import org.opendaylight.yangtools.yang.common.Revision; import org.opendaylight.yangtools.yang.model.api.ModuleIdentifier; /** @@ -24,20 +24,20 @@ import org.opendaylight.yangtools.yang.model.api.ModuleIdentifier; @Deprecated @Beta public final class ModuleIdentifierImpl implements ModuleIdentifier { - private final Date revision; + private final Revision revision; private final String name; - private ModuleIdentifierImpl(final String name, final Optional revision) { + private ModuleIdentifierImpl(final String name, final Optional revision) { this.name = checkNotNull(name); this.revision = revision.orElse(null); } - public static ModuleIdentifier create(final String name, final Optional revision) { + public static ModuleIdentifier create(final String name, final Optional revision) { return new ModuleIdentifierImpl(name, revision); } @Override - public Optional getRevision() { + public Optional getRevision() { return Optional.ofNullable(revision); } diff --git a/yang/yang-model-util/src/test/java/org/opendaylight/yangtools/yang/model/util/SchemaContextProxyTest.java b/yang/yang-model-util/src/test/java/org/opendaylight/yangtools/yang/model/util/SchemaContextProxyTest.java index 143e8de408..497508074b 100644 --- a/yang/yang-model-util/src/test/java/org/opendaylight/yangtools/yang/model/util/SchemaContextProxyTest.java +++ b/yang/yang-model-util/src/test/java/org/opendaylight/yangtools/yang/model/util/SchemaContextProxyTest.java @@ -17,7 +17,6 @@ import com.google.common.collect.ImmutableSet; import java.net.URI; import java.util.Arrays; import java.util.Collections; -import java.util.Date; import java.util.HashSet; import java.util.List; import java.util.Optional; @@ -26,6 +25,7 @@ import org.junit.Test; 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.model.api.ContainerSchemaNode; import org.opendaylight.yangtools.yang.model.api.DataSchemaNode; import org.opendaylight.yangtools.yang.model.api.ExtensionDefinition; @@ -42,8 +42,8 @@ import org.opendaylight.yangtools.yang.model.util.FilteringSchemaContextProxy.Mo public class SchemaContextProxyTest { private static final URI NAMESPACE = URI.create("urn:opendaylight:params:xml:ns:yang:controller:config"); - private static final Date REVISION = QName.parseRevision("2015-01-01"); - private static final Date REVISION2 = QName.parseRevision("2015-01-15"); + private static final Revision REVISION = Revision.valueOf("2015-01-01"); + private static final Revision REVISION2 = Revision.valueOf("2015-01-15"); private static final String CONFIG_NAME = "config"; private static final String ROOT_NAME = "root"; @@ -134,10 +134,10 @@ public class SchemaContextProxyTest { */ @Test public void testBasicNullRevision() throws Exception { - final Module moduleConfig = mockModule(CONFIG_NAME, QName.parseRevision("2013-04-05")); - final Module module2 = mockModule(MODULE2_NAME, QName.parseRevision("2014-06-17")); + final Module moduleConfig = mockModule(CONFIG_NAME, Revision.valueOf("2013-04-05")); + final Module module2 = mockModule(MODULE2_NAME, Revision.valueOf("2014-06-17")); final Module module20 = mockModule(MODULE2_NAME, null); - final Module module3 = mockModule(MODULE3_NAME, QName.parseRevision("2014-06-12")); + final Module module3 = mockModule(MODULE3_NAME, Revision.valueOf("2014-06-12")); final Module module30 = mockModule(MODULE3_NAME, null); mockModuleImport(module20, moduleConfig); @@ -283,7 +283,7 @@ public class SchemaContextProxyTest { Module moduleConfig = mockModule(CONFIG_NAME); Module module2 = mockModule(MODULE2_NAME); Module module3 = mockModule(MODULE3_NAME); - Module module4 = mockModule(MODULE3_NAME, QName.parseRevision("2015-10-10")); + Module module4 = mockModule(MODULE3_NAME, Revision.valueOf("2015-10-10")); mockModuleImport(module2, moduleConfig); mockModuleImport(module3, module2, moduleConfig); @@ -593,7 +593,7 @@ public class SchemaContextProxyTest { } @Override - public Optional getRevision() { + public Optional getRevision() { return module.getRevision(); } @@ -617,7 +617,7 @@ public class SchemaContextProxyTest { } //mock module with revision - private static Module mockModule(final String name, final Date rev) { + private static Module mockModule(final String name, final Revision rev) { final Module mod = mockModule(name); diff --git a/yang/yang-model-util/src/test/java/org/opendaylight/yangtools/yang/model/util/type/BitImplTest.java b/yang/yang-model-util/src/test/java/org/opendaylight/yangtools/yang/model/util/type/BitImplTest.java index 0310c2bce6..ee31351087 100644 --- a/yang/yang-model-util/src/test/java/org/opendaylight/yangtools/yang/model/util/type/BitImplTest.java +++ b/yang/yang-model-util/src/test/java/org/opendaylight/yangtools/yang/model/util/type/BitImplTest.java @@ -13,9 +13,9 @@ import static org.junit.Assert.assertFalse; import java.net.URI; import java.net.URISyntaxException; -import java.util.Date; import org.junit.Test; import org.opendaylight.yangtools.yang.common.QName; +import org.opendaylight.yangtools.yang.common.Revision; import org.opendaylight.yangtools.yang.model.api.SchemaPath; import org.opendaylight.yangtools.yang.model.api.Status; @@ -32,12 +32,12 @@ public class BitImplTest { final URI uriB1 = new URI("some:uriB1"); final URI uriB2 = new URI("some:uriB2"); - QName qnameA1 = QName.create(uriA1, new Date(6000000), "some nameA1"); - QName qnameA2 = QName.create(uriA2, new Date(7000000), "some nameA2"); + QName qnameA1 = QName.create(uriA1, Revision.valueOf("2000-01-01"), "some nameA1"); + QName qnameA2 = QName.create(uriA2, Revision.valueOf("2002-01-01"), "some nameA2"); SchemaPath schemaPathA = SchemaPath.create(true, qnameA1, qnameA2); - final QName qnameB1 = QName.create(uriB1, new Date(6000000), "some nameB1"); - final QName qnameB2 = QName.create(uriB2, new Date(7000000), "some nameB2"); + final QName qnameB1 = QName.create(uriB1, Revision.valueOf("2000-01-01"), "some nameB1"); + final QName qnameB2 = QName.create(uriB2, Revision.valueOf("2002-01-01"), "some nameB2"); final SchemaPath schemaPathB = SchemaPath.create(true, qnameB1, qnameB2); BitImpl biA = new BitImpl(schemaPathA, 55L, "description", "reference", Status.CURRENT, emptyList()); diff --git a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/impl/util/YangModelDependencyInfo.java b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/impl/util/YangModelDependencyInfo.java index 37c3e1f803..6b1abbc911 100644 --- a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/impl/util/YangModelDependencyInfo.java +++ b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/impl/util/YangModelDependencyInfo.java @@ -13,7 +13,6 @@ import static java.util.Objects.requireNonNull; import com.google.common.base.Strings; import com.google.common.collect.ImmutableSet; import java.io.IOException; -import java.util.Date; import java.util.HashSet; import java.util.Objects; import java.util.Optional; @@ -23,6 +22,7 @@ import org.antlr.v4.runtime.ParserRuleContext; import org.opendaylight.yangtools.antlrv4.code.gen.YangStatementParser.StatementContext; import org.opendaylight.yangtools.concepts.SemVer; import org.opendaylight.yangtools.yang.common.QName; +import org.opendaylight.yangtools.yang.common.Revision; import org.opendaylight.yangtools.yang.model.api.ModuleImport; import org.opendaylight.yangtools.yang.model.api.YangStmtMapping; import org.opendaylight.yangtools.yang.model.parser.api.YangSyntaxErrorException; @@ -61,7 +61,7 @@ public abstract class YangModelDependencyInfo { private final String name; private final String formattedRevision; - private final Date revision; + private final Revision revision; private final Optional semVer; private final ImmutableSet submoduleIncludes; private final ImmutableSet moduleImports; @@ -79,8 +79,7 @@ public abstract class YangModelDependencyInfo { final Optional semVer) { this.name = name; this.formattedRevision = formattedRevision; - this.revision = formattedRevision == null ? null : QName - .parseRevision(formattedRevision); + this.revision = formattedRevision == null ? null : Revision.valueOf(formattedRevision); this.moduleImports = imports; this.submoduleIncludes = includes; this.dependencies = ImmutableSet.builder() @@ -121,7 +120,7 @@ public abstract class YangModelDependencyInfo { * * @return revision */ - Date getRevision() { + Revision getRevision() { return revision; } @@ -240,7 +239,7 @@ public abstract class YangModelDependencyInfo { final String revisionDateStr = getRevisionDateString(subStatementContext, sourceName); final String importedModuleName = Utils.stringFromStringContext(subStatementContext.argument(), getReference(sourceName, subStatementContext)); - final Date revisionDate = revisionDateStr == null ? null : QName.parseRevision(revisionDateStr); + final Revision revisionDate = revisionDateStr == null ? null : Revision.valueOf(revisionDateStr); final SemVer importSemVer = findSemanticVersion(subStatementContext, sourceName); result.add(new ModuleImportImpl(importedModuleName, revisionDate, importSemVer)); } @@ -269,7 +268,7 @@ public abstract class YangModelDependencyInfo { final String revisionDateStr = getRevisionDateString(subStatementContext, sourceName); final String IncludeModuleName = Utils.stringFromStringContext(subStatementContext.argument(), getReference(sourceName, subStatementContext)); - final Date revisionDate = revisionDateStr == null ? null : QName.parseRevision(revisionDateStr); + final Revision revisionDate = revisionDateStr == null ? null : Revision.valueOf(revisionDateStr); result.add(new ModuleImportImpl(IncludeModuleName, revisionDate)); } } @@ -386,15 +385,15 @@ public abstract class YangModelDependencyInfo { */ private static final class ModuleImportImpl implements ModuleImport { - private final Date revision; + private final Revision revision; private final SemVer semVer; private final String name; - ModuleImportImpl(final String moduleName, final Date revision) { + ModuleImportImpl(final String moduleName, final Revision revision) { this(moduleName, revision, null); } - ModuleImportImpl(final String moduleName, @Nullable final Date revision, @Nullable final SemVer semVer) { + ModuleImportImpl(final String moduleName, @Nullable final Revision revision, @Nullable final SemVer semVer) { this.name = requireNonNull(moduleName, "Module name must not be null."); this.revision = revision; this.semVer = semVer; @@ -406,7 +405,7 @@ public abstract class YangModelDependencyInfo { } @Override - public Optional getRevision() { + public Optional getRevision() { return Optional.ofNullable(revision); } diff --git a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/repo/DependencyResolver.java b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/repo/DependencyResolver.java index f208bcdc98..f1edb2d920 100644 --- a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/repo/DependencyResolver.java +++ b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/repo/DependencyResolver.java @@ -14,7 +14,6 @@ import com.google.common.collect.ImmutableMultimap; import com.google.common.collect.Multimap; import java.util.ArrayList; import java.util.Collection; -import java.util.Date; import java.util.HashMap; import java.util.Iterator; import java.util.Map; @@ -22,6 +21,7 @@ import java.util.Map.Entry; import java.util.Optional; import java.util.Set; import org.opendaylight.yangtools.concepts.SemVer; +import org.opendaylight.yangtools.yang.common.Revision; import org.opendaylight.yangtools.yang.model.api.ModuleImport; import org.opendaylight.yangtools.yang.model.repo.api.SourceIdentifier; import org.opendaylight.yangtools.yang.parser.impl.util.YangModelDependencyInfo; @@ -162,7 +162,7 @@ abstract class DependencyResolver { } @Override - public Optional getRevision() { + public Optional getRevision() { return Optional.empty(); } diff --git a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/reactor/BuildGlobalContext.java b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/reactor/BuildGlobalContext.java index 6fc3c3c034..ed7850df7a 100644 --- a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/reactor/BuildGlobalContext.java +++ b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/reactor/BuildGlobalContext.java @@ -17,7 +17,6 @@ import com.google.common.collect.Table; import com.google.common.collect.TreeBasedTable; import java.util.ArrayList; import java.util.Collection; -import java.util.Date; import java.util.HashMap; import java.util.HashSet; import java.util.Iterator; @@ -32,6 +31,7 @@ import javax.annotation.Nonnull; import org.opendaylight.yangtools.util.RecursiveObjectLeaker; 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.YangVersion; import org.opendaylight.yangtools.yang.model.api.ModuleIdentifier; import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement; @@ -421,8 +421,8 @@ class BuildGlobalContext extends NamespaceStorageSupport implements Registry { Preconditions.checkState(currentPhase == ModelProcessingPhase.SOURCE_PRE_LINKAGE, "Required library sources can be collected only in ModelProcessingPhase.SOURCE_PRE_LINKAGE phase," + " but current phase was %s", currentPhase); - final TreeBasedTable, SourceSpecificContext> libSourcesTable = TreeBasedTable.create( - String::compareTo, ModuleIdentifier::compareRevisions); + final TreeBasedTable, SourceSpecificContext> libSourcesTable = TreeBasedTable.create( + String::compareTo, Revision::compare); for (final SourceSpecificContext libSource : libSources) { final ModuleIdentifier libSourceIdentifier = Preconditions.checkNotNull(libSource.getRootIdentifier()); libSourcesTable.put(libSourceIdentifier.getName(), libSourceIdentifier.getRevision(), libSource); @@ -437,7 +437,7 @@ class BuildGlobalContext extends NamespaceStorageSupport implements Registry { } private void collectRequiredSourcesFromLib( - final TreeBasedTable, SourceSpecificContext> libSourcesTable, + final TreeBasedTable, SourceSpecificContext> libSourcesTable, final Set requiredLibs, final SourceSpecificContext source) { for (final SourceIdentifier requiredSource : source.getRequiredSources()) { final SourceSpecificContext libSource = getRequiredLibSource(requiredSource, libSourcesTable); @@ -448,13 +448,13 @@ class BuildGlobalContext extends NamespaceStorageSupport implements Registry { } private static SourceSpecificContext getRequiredLibSource(final SourceIdentifier requiredSource, - final TreeBasedTable, SourceSpecificContext> libSourcesTable) { + final TreeBasedTable, SourceSpecificContext> libSourcesTable) { return requiredSource.getRevision() == null ? getLatestRevision(libSourcesTable.row(requiredSource.getName())) : libSourcesTable.get(requiredSource.getName(), - Optional.of(QName.parseRevision(requiredSource.getRevision()))); + Optional.of(Revision.valueOf(requiredSource.getRevision()))); } - private static SourceSpecificContext getLatestRevision(final SortedMap, + private static SourceSpecificContext getLatestRevision(final SortedMap, SourceSpecificContext> sourceMap) { return sourceMap != null && !sourceMap.isEmpty() ? sourceMap.get(sourceMap.lastKey()) : null; } diff --git a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/ImportStatementDefinition.java b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/ImportStatementDefinition.java index 6d248e212e..537c9ec248 100644 --- a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/ImportStatementDefinition.java +++ b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/ImportStatementDefinition.java @@ -17,10 +17,9 @@ import com.google.common.base.MoreObjects.ToStringHelper; import com.google.common.base.Verify; import java.net.URI; import java.util.Collection; -import java.util.Date; import java.util.Optional; import org.opendaylight.yangtools.concepts.SemVer; -import org.opendaylight.yangtools.yang.common.SimpleDateFormatUtil; +import org.opendaylight.yangtools.yang.common.Revision; import org.opendaylight.yangtools.yang.model.api.ModuleIdentifier; import org.opendaylight.yangtools.yang.model.api.YangStmtMapping; import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement; @@ -150,7 +149,7 @@ public class ImportStatementDefinition extends final ModelActionBuilder importAction = stmt.newInferenceAction(SOURCE_LINKAGE); final Prerequisite> imported; final String moduleName = stmt.getStatementArgument(); - final Date revision = firstAttributeOf(stmt.declaredSubstatements(), RevisionDateStatement.class); + final Revision revision = firstAttributeOf(stmt.declaredSubstatements(), RevisionDateStatement.class); if (revision == null) { imported = importAction.requiresCtx(stmt, ModuleNamespace.class, NamespaceKeyCriterion.latestRevisionModule(moduleName), SOURCE_LINKAGE); @@ -187,7 +186,8 @@ public class ImportStatementDefinition extends } static SourceIdentifier getImportedSourceIdentifier(final StmtContext stmt) { - final StmtContext revision = findFirstDeclaredSubstatement(stmt, RevisionDateStatement.class); + final StmtContext revision = findFirstDeclaredSubstatement(stmt, + RevisionDateStatement.class); return revision == null ? RevisionSourceIdentifier.create(stmt.getStatementArgument()) : RevisionSourceIdentifier.create(stmt.getStatementArgument(), revision.rawStatementArgument()); } @@ -327,8 +327,7 @@ public class ImportStatementDefinition extends private static SemVerSourceIdentifier createSemVerModuleIdentifier( final ModuleIdentifier importedModuleIdentifier, final SemVer semVer) { - final String formattedRevision = importedModuleIdentifier.getRevision().map( - date -> SimpleDateFormatUtil.getRevisionFormat().format(date)) + final String formattedRevision = importedModuleIdentifier.getRevision().map(Revision::toString) .orElse(null); return SemVerSourceIdentifier.create(importedModuleIdentifier.getName(), formattedRevision, semVer); } diff --git a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/IncludeStatementImpl.java b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/IncludeStatementImpl.java index 9dd38ee88c..cc66a1f4c9 100644 --- a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/IncludeStatementImpl.java +++ b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/IncludeStatementImpl.java @@ -11,9 +11,9 @@ import static org.opendaylight.yangtools.yang.parser.spi.meta.ModelProcessingPha import static org.opendaylight.yangtools.yang.parser.spi.meta.StmtContextUtils.findFirstDeclaredSubstatement; import java.util.Collection; -import java.util.Date; import java.util.Optional; import javax.annotation.Nonnull; +import org.opendaylight.yangtools.yang.common.Revision; import org.opendaylight.yangtools.yang.model.api.YangStmtMapping; import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement; import org.opendaylight.yangtools.yang.model.api.stmt.DescriptionStatement; @@ -72,7 +72,8 @@ public class IncludeStatementImpl extends AbstractDeclaredStatement impl @Override public void onPreLinkageDeclared( final Mutable> stmt) { - final StmtContext revision = findFirstDeclaredSubstatement(stmt, RevisionDateStatement.class); + final StmtContext revision = findFirstDeclaredSubstatement(stmt, + RevisionDateStatement.class); stmt.addRequiredSource(revision == null ? RevisionSourceIdentifier.create(stmt.getStatementArgument()) : RevisionSourceIdentifier.create(stmt.getStatementArgument(), revision.rawStatementArgument())); } @@ -81,7 +82,7 @@ public class IncludeStatementImpl extends AbstractDeclaredStatement impl public void onLinkageDeclared( final Mutable> stmt) { final String submoduleName = stmt.getStatementArgument(); - final StmtContext revision = findFirstDeclaredSubstatement(stmt, + final StmtContext revision = findFirstDeclaredSubstatement(stmt, RevisionDateStatement.class); final ModelActionBuilder includeAction = stmt.newInferenceAction(SOURCE_LINKAGE); diff --git a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/ModuleStatementSupport.java b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/ModuleStatementSupport.java index c19cfafdb1..74e6b2d17e 100644 --- a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/ModuleStatementSupport.java +++ b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/ModuleStatementSupport.java @@ -10,10 +10,10 @@ package org.opendaylight.yangtools.yang.parser.stmt.rfc6020; import static org.opendaylight.yangtools.yang.parser.spi.meta.StmtContextUtils.firstAttributeOf; import java.net.URI; -import java.util.Date; import java.util.Optional; import org.opendaylight.yangtools.concepts.SemVer; import org.opendaylight.yangtools.yang.common.QNameModule; +import org.opendaylight.yangtools.yang.common.Revision; import org.opendaylight.yangtools.yang.model.api.ModuleIdentifier; import org.opendaylight.yangtools.yang.model.api.YangStmtMapping; import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement; @@ -114,8 +114,7 @@ public class ModuleStatementSupport extends stmt.addContext(PreLinkageModuleNamespace.class, moduleName, stmt); - final Optional revisionDate = Optional.ofNullable(StmtContextUtils.getLatestRevision( - stmt.declaredSubstatements())); + final Optional revisionDate = StmtContextUtils.getLatestRevision(stmt.declaredSubstatements()); final QNameModule qNameModule = QNameModule.create(moduleNs, revisionDate.orElse(null)).intern(); stmt.addToNs(ModuleCtxToModuleQName.class, stmt, qNameModule); @@ -131,8 +130,7 @@ public class ModuleStatementSupport extends SourceException.throwIf(!moduleNs.isPresent(), stmt.getStatementSourceReference(), "Namespace of the module [%s] is missing", stmt.getStatementArgument()); - final Optional revisionDate = Optional.ofNullable(StmtContextUtils.getLatestRevision( - stmt.declaredSubstatements())); + final Optional revisionDate = StmtContextUtils.getLatestRevision(stmt.declaredSubstatements()); final QNameModule qNameModule = QNameModule.create(moduleNs.get(), revisionDate.orElse(null)).intern(); final StmtContext> possibleDuplicateModule = stmt.getFromNamespace(NamespaceToModule.class, qNameModule); diff --git a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/RevisionDateStatementImpl.java b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/RevisionDateStatementImpl.java index 279e064359..c47aa7e145 100644 --- a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/RevisionDateStatementImpl.java +++ b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/RevisionDateStatementImpl.java @@ -7,9 +7,7 @@ */ package org.opendaylight.yangtools.yang.parser.stmt.rfc6020; -import java.text.ParseException; -import java.util.Date; -import org.opendaylight.yangtools.yang.common.SimpleDateFormatUtil; +import org.opendaylight.yangtools.yang.common.Revision; import org.opendaylight.yangtools.yang.model.api.YangStmtMapping; import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement; import org.opendaylight.yangtools.yang.model.api.stmt.RevisionDateStatement; @@ -20,40 +18,39 @@ import org.opendaylight.yangtools.yang.parser.spi.meta.SubstatementValidator; import org.opendaylight.yangtools.yang.parser.spi.source.SourceException; import org.opendaylight.yangtools.yang.parser.stmt.rfc6020.effective.RevisionDateEffectiveStatementImpl; -public class RevisionDateStatementImpl extends AbstractDeclaredStatement implements RevisionDateStatement { +public class RevisionDateStatementImpl extends AbstractDeclaredStatement implements RevisionDateStatement { private static final SubstatementValidator SUBSTATEMENT_VALIDATOR = SubstatementValidator.builder(YangStmtMapping.REVISION_DATE).build(); - protected RevisionDateStatementImpl(final StmtContext context) { + protected RevisionDateStatementImpl(final StmtContext context) { super(context); } - public static class Definition - extends - AbstractStatementSupport> { + public static class Definition extends AbstractStatementSupport> { public Definition() { super(YangStmtMapping.REVISION_DATE); } @Override - public Date parseArgumentValue(final StmtContext ctx, final String value) { + public Revision parseArgumentValue(final StmtContext ctx, final String value) { try { - return SimpleDateFormatUtil.getRevisionFormat().parse(value); - } catch (ParseException e) { + return Revision.valueOf(value); + } catch (IllegalArgumentException e) { throw new SourceException(ctx.getStatementSourceReference(), e, "Revision value %s is not in required format yyyy-MM-dd", value); } } @Override - public RevisionDateStatement createDeclared(final StmtContext ctx) { + public RevisionDateStatement createDeclared(final StmtContext ctx) { return new RevisionDateStatementImpl(ctx); } @Override - public EffectiveStatement createEffective( - final StmtContext> ctx) { + public EffectiveStatement createEffective(final StmtContext> ctx) { return new RevisionDateEffectiveStatementImpl(ctx); } @@ -64,7 +61,7 @@ public class RevisionDateStatementImpl extends AbstractDeclaredStatement i } @Override - public Date getDate() { + public Revision getDate() { return argument(); } } diff --git a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/RevisionStatementImpl.java b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/RevisionStatementImpl.java index 87490f5aff..1c5c4ed511 100644 --- a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/RevisionStatementImpl.java +++ b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/RevisionStatementImpl.java @@ -7,11 +7,9 @@ */ package org.opendaylight.yangtools.yang.parser.stmt.rfc6020; -import java.text.ParseException; -import java.util.Date; import javax.annotation.Nonnull; import javax.annotation.Nullable; -import org.opendaylight.yangtools.yang.common.SimpleDateFormatUtil; +import org.opendaylight.yangtools.yang.common.Revision; import org.opendaylight.yangtools.yang.model.api.YangStmtMapping; import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement; import org.opendaylight.yangtools.yang.model.api.stmt.DescriptionStatement; @@ -24,7 +22,7 @@ import org.opendaylight.yangtools.yang.parser.spi.meta.SubstatementValidator; import org.opendaylight.yangtools.yang.parser.spi.source.SourceException; import org.opendaylight.yangtools.yang.parser.stmt.rfc6020.effective.RevisionEffectiveStatementImpl; -public class RevisionStatementImpl extends AbstractDeclaredStatement +public class RevisionStatementImpl extends AbstractDeclaredStatement implements RevisionStatement { private static final SubstatementValidator SUBSTATEMENT_VALIDATOR = SubstatementValidator.builder( YangStmtMapping.REVISION) @@ -32,36 +30,35 @@ public class RevisionStatementImpl extends AbstractDeclaredStatement .addOptional(YangStmtMapping.REFERENCE) .build(); - protected RevisionStatementImpl(final StmtContext context) { + protected RevisionStatementImpl(final StmtContext context) { super(context); } - public static class Definition - extends - AbstractStatementSupport> { + public static class Definition extends + AbstractStatementSupport> { public Definition() { super(YangStmtMapping.REVISION); } @Override - public Date parseArgumentValue(final StmtContext ctx, final String value) { + public Revision parseArgumentValue(final StmtContext ctx, final String value) { try { - return SimpleDateFormatUtil.getRevisionFormat().parse(value); - } catch (ParseException e) { + return Revision.valueOf(value); + } catch (IllegalArgumentException e) { throw new SourceException(ctx.getStatementSourceReference(), e, "Revision value %s is not in required format yyyy-MM-dd", value); } } @Override - public RevisionStatement createDeclared(final StmtContext ctx) { + public RevisionStatement createDeclared(final StmtContext ctx) { return new RevisionStatementImpl(ctx); } @Override - public EffectiveStatement createEffective( - final StmtContext> ctx) { + public EffectiveStatement createEffective( + final StmtContext> ctx) { return new RevisionEffectiveStatementImpl(ctx); } @@ -73,7 +70,7 @@ public class RevisionStatementImpl extends AbstractDeclaredStatement @Nonnull @Override - public Date getDate() { + public Revision getDate() { return argument(); } diff --git a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/SubmoduleStatementImpl.java b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/SubmoduleStatementImpl.java index 73ee7dcd33..53b7131565 100644 --- a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/SubmoduleStatementImpl.java +++ b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/SubmoduleStatementImpl.java @@ -10,9 +10,9 @@ package org.opendaylight.yangtools.yang.parser.stmt.rfc6020; import static org.opendaylight.yangtools.yang.parser.spi.meta.StmtContextUtils.findFirstDeclaredSubstatement; import static org.opendaylight.yangtools.yang.parser.spi.meta.StmtContextUtils.firstAttributeOf; -import java.util.Date; import java.util.Optional; import javax.annotation.Nonnull; +import org.opendaylight.yangtools.yang.common.Revision; import org.opendaylight.yangtools.yang.model.api.ModuleIdentifier; import org.opendaylight.yangtools.yang.model.api.YangStmtMapping; import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement; @@ -122,11 +122,8 @@ public class SubmoduleStatementImpl extends AbstractRootStatement> stmt) { - final Date maybeDate = StmtContextUtils.getLatestRevision(stmt.declaredSubstatements()); - - final ModuleIdentifier submoduleIdentifier = ModuleIdentifierImpl.create(stmt.getStatementArgument(), - Optional.ofNullable(maybeDate)); - return submoduleIdentifier; + final Optional maybeDate = StmtContextUtils.getLatestRevision(stmt.declaredSubstatements()); + return ModuleIdentifierImpl.create(stmt.getStatementArgument(), maybeDate); } @Override diff --git a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/effective/AbstractEffectiveModule.java b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/effective/AbstractEffectiveModule.java index 11b454958c..cc9ccb6538 100644 --- a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/effective/AbstractEffectiveModule.java +++ b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/effective/AbstractEffectiveModule.java @@ -15,7 +15,6 @@ import com.google.common.collect.Iterables; import java.net.URI; import java.util.ArrayList; import java.util.Collection; -import java.util.Date; import java.util.HashSet; import java.util.LinkedHashMap; import java.util.LinkedHashSet; @@ -27,6 +26,7 @@ import java.util.stream.Collectors; import javax.annotation.Nonnull; import org.opendaylight.yangtools.concepts.SemVer; import org.opendaylight.yangtools.yang.common.QName; +import org.opendaylight.yangtools.yang.common.Revision; import org.opendaylight.yangtools.yang.common.YangVersion; import org.opendaylight.yangtools.yang.model.api.AugmentationSchema; import org.opendaylight.yangtools.yang.model.api.DataNodeContainer; @@ -283,7 +283,7 @@ abstract class AbstractEffectiveModule> exte } @Override - public Optional getRevision() { + public Optional getRevision() { return getQNameModule().getRevision(); } diff --git a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/effective/AugmentEffectiveStatementImpl.java b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/effective/AugmentEffectiveStatementImpl.java index 41443c4084..b0cd51db65 100644 --- a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/effective/AugmentEffectiveStatementImpl.java +++ b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/effective/AugmentEffectiveStatementImpl.java @@ -10,13 +10,13 @@ package org.opendaylight.yangtools.yang.parser.stmt.rfc6020.effective; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableSet; import java.net.URI; -import java.util.Date; import java.util.List; import java.util.Objects; import java.util.Optional; import java.util.Set; import javax.annotation.Nonnull; import org.opendaylight.yangtools.yang.common.QNameModule; +import org.opendaylight.yangtools.yang.common.Revision; import org.opendaylight.yangtools.yang.model.api.ActionDefinition; import org.opendaylight.yangtools.yang.model.api.AugmentationSchema; import org.opendaylight.yangtools.yang.model.api.NamespaceRevisionAware; @@ -35,7 +35,7 @@ public final class AugmentEffectiveStatementImpl implements AugmentationSchema, NamespaceRevisionAware { private final SchemaPath targetPath; private final URI namespace; - private final Date revision; + private final Revision revision; private final Set actions; private final Set notifications; private final List unknownNodes; @@ -113,8 +113,8 @@ public final class AugmentEffectiveStatementImpl } @Override - public Date getRevision() { - return revision; + public Optional getRevision() { + return Optional.ofNullable(revision); } @Override diff --git a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/effective/ImportEffectiveStatementImpl.java b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/effective/ImportEffectiveStatementImpl.java index 00d71e83f4..4e95d34daf 100644 --- a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/effective/ImportEffectiveStatementImpl.java +++ b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/effective/ImportEffectiveStatementImpl.java @@ -8,12 +8,11 @@ package org.opendaylight.yangtools.yang.parser.stmt.rfc6020.effective; import com.google.common.base.MoreObjects; -import java.util.Date; import java.util.Objects; import java.util.Optional; 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.model.api.ModuleImport; import org.opendaylight.yangtools.yang.model.api.stmt.ImportStatement; import org.opendaylight.yangtools.yang.model.repo.api.SemVerSourceIdentifier; @@ -27,7 +26,7 @@ public class ImportEffectiveStatementImpl extends DeclaredEffectiveStatementBase implements ModuleImport { private final String moduleName; - private final Date revision; + private final Revision revision; private final SemVer semVer; private final String prefix; private final String description; @@ -53,7 +52,7 @@ public class ImportEffectiveStatementImpl extends DeclaredEffectiveStatementBase } else { final SemVerSourceIdentifier importedModuleIdentifier = ctx.getFromNamespace( ImportPrefixToSemVerSourceIdentifier.class, prefix); - revision = QName.parseRevision(importedModuleIdentifier.getRevision()); + revision = Revision.valueOf(importedModuleIdentifier.getRevision()); semVer = importedModuleIdentifier.getSemanticVersion().orElse(null); } @@ -65,7 +64,7 @@ public class ImportEffectiveStatementImpl extends DeclaredEffectiveStatementBase this.reference = referenceStmt != null ? referenceStmt.argument() : null; } - private Date getImportedRevision(final StmtContext ctx) { + private Revision getImportedRevision(final StmtContext ctx) { /* * When 'revision-date' of an import is not specified in yang source, we * need to find revision of imported module. @@ -82,7 +81,7 @@ public class ImportEffectiveStatementImpl extends DeclaredEffectiveStatementBase } @Override - public Optional getRevision() { + public Optional getRevision() { return Optional.ofNullable(revision); } diff --git a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/effective/RevisionDateEffectiveStatementImpl.java b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/effective/RevisionDateEffectiveStatementImpl.java index 622c27c849..58faf8190d 100644 --- a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/effective/RevisionDateEffectiveStatementImpl.java +++ b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/effective/RevisionDateEffectiveStatementImpl.java @@ -7,13 +7,13 @@ */ package org.opendaylight.yangtools.yang.parser.stmt.rfc6020.effective; -import java.util.Date; +import org.opendaylight.yangtools.yang.common.Revision; import org.opendaylight.yangtools.yang.model.api.stmt.RevisionDateStatement; import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext; public final class RevisionDateEffectiveStatementImpl - extends DeclaredEffectiveStatementBase { - public RevisionDateEffectiveStatementImpl(final StmtContext ctx) { + extends DeclaredEffectiveStatementBase { + public RevisionDateEffectiveStatementImpl(final StmtContext ctx) { super(ctx); } } diff --git a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/effective/RevisionEffectiveStatementImpl.java b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/effective/RevisionEffectiveStatementImpl.java index 47250b6c48..e2dd62e671 100644 --- a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/effective/RevisionEffectiveStatementImpl.java +++ b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/effective/RevisionEffectiveStatementImpl.java @@ -7,18 +7,18 @@ */ package org.opendaylight.yangtools.yang.parser.stmt.rfc6020.effective; -import java.util.Date; +import org.opendaylight.yangtools.yang.common.Revision; import org.opendaylight.yangtools.yang.model.api.DocumentedNode; import org.opendaylight.yangtools.yang.model.api.stmt.RevisionStatement; import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext; -public final class RevisionEffectiveStatementImpl extends DeclaredEffectiveStatementBase +public final class RevisionEffectiveStatementImpl extends DeclaredEffectiveStatementBase implements DocumentedNode { private final String reference; private final String description; - public RevisionEffectiveStatementImpl(final StmtContext ctx) { + public RevisionEffectiveStatementImpl(final StmtContext ctx) { super(ctx); final DescriptionEffectiveStatementImpl descStmt = firstEffective(DescriptionEffectiveStatementImpl.class); diff --git a/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/effective/ConstraintDefinitionsTest.java b/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/effective/ConstraintDefinitionsTest.java index 6b60dd7c5e..eec5b72ad0 100644 --- a/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/effective/ConstraintDefinitionsTest.java +++ b/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/effective/ConstraintDefinitionsTest.java @@ -19,6 +19,7 @@ import java.net.URISyntaxException; import java.text.ParseException; import org.junit.Test; import org.opendaylight.yangtools.yang.common.QName; +import org.opendaylight.yangtools.yang.common.Revision; import org.opendaylight.yangtools.yang.data.util.ConstraintDefinitions; import org.opendaylight.yangtools.yang.model.api.ConstraintDefinition; import org.opendaylight.yangtools.yang.model.api.LeafListSchemaNode; @@ -44,7 +45,7 @@ public class ConstraintDefinitionsTest { final SchemaContext schemaContext = reactor.buildEffective(); assertNotNull(schemaContext); - final Module testModule = schemaContext.findModule("foo", QName.parseRevision("2016-09-20")).get(); + final Module testModule = schemaContext.findModule("foo", Revision.valueOf("2016-09-20")).get(); final LeafSchemaNode mandatoryLeaf1 = (LeafSchemaNode) testModule.getDataChildByName( QName.create(testModule.getQNameModule(), "mandatory-leaf-1")); assertNotNull(mandatoryLeaf1); diff --git a/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/parser/stmt/rfc7950/Bug6871Test.java b/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/parser/stmt/rfc7950/Bug6871Test.java index eb1158f281..467f7cc573 100644 --- a/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/parser/stmt/rfc7950/Bug6871Test.java +++ b/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/parser/stmt/rfc7950/Bug6871Test.java @@ -15,7 +15,7 @@ import static org.junit.Assert.fail; 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.model.api.ContainerSchemaNode; import org.opendaylight.yangtools.yang.model.api.Module; import org.opendaylight.yangtools.yang.model.api.MustDefinition; @@ -32,7 +32,7 @@ public class Bug6871Test { final SchemaContext schemaContext = StmtTestUtils.parseYangSource("/rfc7950/bug6871/foo.yang"); assertNotNull(schemaContext); - final Module foo = schemaContext.findModule("foo", QName.parseRevision("2016-12-14")).get(); + final Module foo = schemaContext.findModule("foo", Revision.valueOf("2016-12-14")).get(); final Set notifications = foo.getNotifications(); assertEquals(1, notifications.size()); diff --git a/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/parser/stmt/rfc7950/Bug6887Test.java b/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/parser/stmt/rfc7950/Bug6887Test.java index e45b6ca2ce..d8a742ebcf 100644 --- a/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/parser/stmt/rfc7950/Bug6887Test.java +++ b/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/parser/stmt/rfc7950/Bug6887Test.java @@ -19,6 +19,7 @@ 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.model.api.LeafSchemaNode; import org.opendaylight.yangtools.yang.model.api.Module; import org.opendaylight.yangtools.yang.model.api.SchemaContext; @@ -42,7 +43,7 @@ public class Bug6887Test { final SchemaContext schemaContext = StmtTestUtils.parseYangSource("/rfc7950/bug6887/foo.yang"); assertNotNull(schemaContext); - final Module foo = schemaContext.findModule("foo", QName.parseRevision("2017-01-26")).get(); + final Module foo = schemaContext.findModule("foo", Revision.valueOf("2017-01-26")).get(); final LeafSchemaNode myEnumerationLeaf = (LeafSchemaNode) foo.getDataChildByName( QName.create(foo.getQNameModule(), "my-enumeration-leaf")); assertNotNull(myEnumerationLeaf); @@ -168,7 +169,7 @@ public class Bug6887Test { final SchemaContext schemaContext = StmtTestUtils.parseYangSource("/rfc7950/bug6887/bar.yang"); assertNotNull(schemaContext); - final Module bar = schemaContext.findModule("bar", QName.parseRevision("2017-02-02")).get(); + final Module bar = schemaContext.findModule("bar", Revision.valueOf("2017-02-02")).get(); final LeafSchemaNode myBitsLeaf = (LeafSchemaNode) bar.getDataChildByName( QName.create(bar.getQNameModule(), "my-bits-leaf")); assertNotNull(myBitsLeaf); diff --git a/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/parser/stmt/rfc7950/Bug9241Test.java b/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/parser/stmt/rfc7950/Bug9241Test.java index df2e0a80f4..618e0a98aa 100644 --- a/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/parser/stmt/rfc7950/Bug9241Test.java +++ b/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/parser/stmt/rfc7950/Bug9241Test.java @@ -13,6 +13,7 @@ import static org.junit.Assert.assertNotNull; import org.junit.Test; import org.opendaylight.yangtools.yang.common.QName; +import org.opendaylight.yangtools.yang.common.Revision; import org.opendaylight.yangtools.yang.model.api.ActionDefinition; import org.opendaylight.yangtools.yang.model.api.ContainerSchemaNode; import org.opendaylight.yangtools.yang.model.api.Module; @@ -28,7 +29,7 @@ public class Bug9241Test { final SchemaContext schemaContext = StmtTestUtils.parseYangSource("/rfc7950/bug9241/foo.yang"); assertNotNull(schemaContext); - final Module fooModule = schemaContext.findModule("foo", QName.parseRevision("2017-10-13")).get(); + final Module fooModule = schemaContext.findModule("foo", Revision.valueOf("2017-10-13")).get(); final ContainerSchemaNode actionCont = (ContainerSchemaNode) fooModule.getDataChildByName(QName.create( fooModule.getQNameModule(), "action-cont")); diff --git a/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/parser/stmt/rfc7950/IdentityStatementTest.java b/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/parser/stmt/rfc7950/IdentityStatementTest.java index bce4e8df1f..b3792f4968 100644 --- a/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/parser/stmt/rfc7950/IdentityStatementTest.java +++ b/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/parser/stmt/rfc7950/IdentityStatementTest.java @@ -15,7 +15,7 @@ import static org.junit.Assert.fail; 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.model.api.IdentitySchemaNode; import org.opendaylight.yangtools.yang.model.api.Module; import org.opendaylight.yangtools.yang.model.api.SchemaContext; @@ -29,7 +29,7 @@ public class IdentityStatementTest { final SchemaContext schemaContext = StmtTestUtils.parseYangSource("/rfc7950/identity-stmt/foo.yang"); assertNotNull(schemaContext); - final Module foo = schemaContext.findModule("foo", QName.parseRevision("2016-12-21")).get(); + final Module foo = schemaContext.findModule("foo", Revision.valueOf("2016-12-21")).get(); final Set identities = foo.getIdentities(); for (final IdentitySchemaNode identity : identities) { if ("derived-id".equals(identity.getQName().getLocalName())) { diff --git a/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/parser/stmt/rfc7950/IdentityrefStatementTest.java b/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/parser/stmt/rfc7950/IdentityrefStatementTest.java index 8715356092..21aad444e0 100644 --- a/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/parser/stmt/rfc7950/IdentityrefStatementTest.java +++ b/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/parser/stmt/rfc7950/IdentityrefStatementTest.java @@ -16,6 +16,7 @@ import static org.junit.Assert.fail; 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.model.api.IdentitySchemaNode; import org.opendaylight.yangtools.yang.model.api.LeafSchemaNode; import org.opendaylight.yangtools.yang.model.api.Module; @@ -31,7 +32,7 @@ public class IdentityrefStatementTest { final SchemaContext schemaContext = StmtTestUtils.parseYangSource("/rfc7950/identityref-stmt/foo.yang"); assertNotNull(schemaContext); - final Module foo = schemaContext.findModule("foo", QName.parseRevision("2017-01-11")).get(); + final Module foo = schemaContext.findModule("foo", Revision.valueOf("2017-01-11")).get(); final Set identities = foo.getIdentities(); assertEquals(3, identities.size()); diff --git a/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/parser/stmt/rfc7950/LeafrefStatementTest.java b/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/parser/stmt/rfc7950/LeafrefStatementTest.java index 2fe30aa7a1..2a5af5a49b 100644 --- a/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/parser/stmt/rfc7950/LeafrefStatementTest.java +++ b/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/parser/stmt/rfc7950/LeafrefStatementTest.java @@ -16,6 +16,7 @@ import static org.junit.Assert.fail; 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.model.api.LeafSchemaNode; import org.opendaylight.yangtools.yang.model.api.Module; import org.opendaylight.yangtools.yang.model.api.SchemaContext; @@ -31,7 +32,7 @@ public class LeafrefStatementTest { final SchemaContext schemaContext = StmtTestUtils.parseYangSource("/rfc7950/leafref-stmt/foo.yang"); assertNotNull(schemaContext); - final Module foo = schemaContext.findModule("foo", QName.parseRevision("2016-12-20")).get(); + final Module foo = schemaContext.findModule("foo", Revision.valueOf("2016-12-20")).get(); final Set> typeDefinitions = foo.getTypeDefinitions(); assertEquals(1, typeDefinitions.size()); diff --git a/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/parser/util/SchemaContextUtilTest.java b/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/parser/util/SchemaContextUtilTest.java index 48e23d0670..ae2ec05778 100644 --- a/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/parser/util/SchemaContextUtilTest.java +++ b/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/parser/util/SchemaContextUtilTest.java @@ -16,7 +16,6 @@ import static org.mockito.Mockito.doReturn; import java.io.IOException; import java.net.URI; import java.net.URISyntaxException; -import java.text.ParseException; import java.util.Collections; import java.util.Optional; import org.junit.Test; @@ -25,6 +24,7 @@ import org.mockito.Mockito; import org.mockito.MockitoAnnotations; 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.model.api.ChoiceSchemaNode; import org.opendaylight.yangtools.yang.model.api.ContainerSchemaNode; import org.opendaylight.yangtools.yang.model.api.DataNodeContainer; @@ -81,11 +81,11 @@ public class SchemaContextUtilTest { @Test public void findNodeInSchemaContextTest() throws URISyntaxException, IOException, YangSyntaxErrorException, - ParseException, ReactorException { + ReactorException { final SchemaContext context = TestUtils.parseYangSources("/schema-context-util-test"); - final Module myModule = context.findModule(new URI("uri:my-module"), QName.parseRevision("2014-10-07")).get(); + final Module myModule = context.findModule(new URI("uri:my-module"),Revision.valueOf("2014-10-07")).get(); SchemaNode testNode = ((ContainerSchemaNode) myModule.getDataChildByName(QName.create( myModule.getQNameModule(), "my-container"))).getDataChildByName(QName.create(myModule.getQNameModule(), @@ -199,11 +199,11 @@ public class SchemaContextUtilTest { @Test public void findNodeInSchemaContextTest2() throws URISyntaxException, IOException, YangSyntaxErrorException, - ParseException, ReactorException { + ReactorException { final SchemaContext context = TestUtils.parseYangSources("/schema-context-util-test"); - final Module myModule = context.findModule(new URI("uri:my-module"), QName.parseRevision("2014-10-07")).get(); + final Module myModule = context.findModule(new URI("uri:my-module"), Revision.valueOf("2014-10-07")).get(); SchemaNode testNode = ((ContainerSchemaNode) myModule.getDataChildByName(QName.create( myModule.getQNameModule(), "my-container"))).getDataChildByName(QName.create(myModule.getQNameModule(), @@ -297,11 +297,11 @@ public class SchemaContextUtilTest { @Test public void findNodeInSchemaContextTest3() throws URISyntaxException, IOException, YangSyntaxErrorException, - ParseException, ReactorException { + ReactorException { final SchemaContext context = TestUtils.parseYangSources("/schema-context-util-test"); - final Module myModule = context.findModule(new URI("uri:my-module"), QName.parseRevision("2014-10-07")).get(); + final Module myModule = context.findModule(new URI("uri:my-module"), Revision.valueOf("2014-10-07")).get(); SchemaNode testNode = myModule.getDataChildByName(QName.create(myModule.getQNameModule(), "my-container")); @@ -363,14 +363,14 @@ public class SchemaContextUtilTest { @Test public void findParentModuleTest() throws URISyntaxException, IOException, YangSyntaxErrorException, - ParseException, ReactorException { + ReactorException { final SchemaContext context = TestUtils.parseYangSources("/schema-context-util-test"); - final Module myModule = context.findModule(new URI("uri:my-module"), QName.parseRevision("2014-10-07")).get(); + final Module myModule = context.findModule(new URI("uri:my-module"), Revision.valueOf("2014-10-07")).get(); - final DataSchemaNode node = myModule - .getDataChildByName(QName.create(myModule.getQNameModule(), "my-container")); + final DataSchemaNode node = myModule.getDataChildByName(QName.create(myModule.getQNameModule(), + "my-container")); final Module foundModule = SchemaContextUtil.findParentModule(context, node); @@ -423,9 +423,9 @@ public class SchemaContextUtilTest { public void findDataSchemaNodeTest() throws URISyntaxException, IOException, YangSyntaxErrorException, ReactorException { final SchemaContext context = TestUtils.parseYangSources("/schema-context-util-test"); - final Module module = context.findModule(new URI("uri:my-module"), QName.parseRevision("2014-10-07")).get(); + final Module module = context.findModule(new URI("uri:my-module"), Revision.valueOf("2014-10-07")).get(); final Module importedModule = context.findModule(new URI("uri:imported-module"), - QName.parseRevision("2014-10-07")).get(); + Revision.valueOf("2014-10-07")).get(); final SchemaNode testNode = ((ContainerSchemaNode) importedModule.getDataChildByName(QName.create( importedModule.getQNameModule(), "my-imported-container"))).getDataChildByName(QName.create( @@ -448,7 +448,7 @@ public class SchemaContextUtilTest { // final RevisionAwareXPath nonCondXPath) { final SchemaContext context = TestUtils.parseYangSources("/schema-context-util-test"); - final Module module = context.findModule(new URI("uri:my-module"), QName.parseRevision("2014-10-07")).get(); + final Module module = context.findModule(new URI("uri:my-module"), Revision.valueOf("2014-10-07")).get(); final GroupingDefinition grouping = getGroupingByName(module, "my-grouping"); final SchemaNode testNode = grouping.getDataChildByName(QName.create(module.getQNameModule(), @@ -531,10 +531,10 @@ public class SchemaContextUtilTest { @Test public void findNodeInSchemaContextGroupingsTest() throws URISyntaxException, IOException, - YangSyntaxErrorException, ParseException, ReactorException { + YangSyntaxErrorException, ReactorException { final SchemaContext context = TestUtils.parseYangSources("/schema-context-util-test"); - final Module myModule = context.findModule(new URI("uri:my-module"), QName.parseRevision("2014-10-07")).get(); + final Module myModule = context.findModule(URI.create("uri:my-module"), Revision.valueOf("2014-10-07")).get(); // find grouping in container DataNodeContainer dataContainer = (DataNodeContainer) myModule.getDataChildByName(QName.create( @@ -730,11 +730,11 @@ public class SchemaContextUtilTest { @Test public void findNodeInSchemaContextGroupingsTest2() throws URISyntaxException, IOException, - YangSyntaxErrorException, ParseException, ReactorException { + YangSyntaxErrorException, ReactorException { final SchemaContext context = TestUtils.parseYangSources("/schema-context-util-test"); - final Module myModule = context.findModule(new URI("uri:my-module"), QName.parseRevision("2014-10-07")).get(); + final Module myModule = context.findModule(new URI("uri:my-module"), Revision.valueOf("2014-10-07")).get(); // find grouping in container DataNodeContainer dataContainer = (DataNodeContainer) myModule.getDataChildByName(QName.create( @@ -869,11 +869,11 @@ public class SchemaContextUtilTest { @Test public void findNodeInSchemaContextTheSameNameOfSiblingsTest() throws URISyntaxException, IOException, - YangSyntaxErrorException, ParseException, ReactorException { + YangSyntaxErrorException, ReactorException { final SchemaContext context = TestUtils.parseYangSources("/schema-context-util-test"); - final Module myModule = context.findModule(new URI("uri:my-module"), QName.parseRevision("2014-10-07")).get(); + final Module myModule = context.findModule(new URI("uri:my-module"), Revision.valueOf("2014-10-07")).get(); final ChoiceSchemaNode choice = (ChoiceSchemaNode) getRpcByName(myModule, "my-name").getInput() .getDataChildByName(QName.create(myModule.getQNameModule(), "my-choice")); final SchemaNode testNode = choice.getCaseNodeByName("case-two").getDataChildByName( diff --git a/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/AugmentTest.java b/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/AugmentTest.java index f7793f2531..dde43433a6 100644 --- a/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/AugmentTest.java +++ b/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/AugmentTest.java @@ -17,12 +17,12 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; import java.util.Collections; -import java.util.Date; import java.util.List; import java.util.Set; 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.YangConstants; import org.opendaylight.yangtools.yang.model.api.AugmentationSchema; import org.opendaylight.yangtools.yang.model.api.ChoiceCaseNode; @@ -40,11 +40,11 @@ import org.opendaylight.yangtools.yang.parser.stmt.rfc6020.TypeUtils; public class AugmentTest { private static final QNameModule FOO = QNameModule.create( - URI.create("urn:opendaylight.foo"), QName.parseRevision("2013-10-13")); + URI.create("urn:opendaylight.foo"), Revision.valueOf("2013-10-13")); private static final QNameModule BAR = QNameModule.create( - URI.create("urn:opendaylight.bar"), QName.parseRevision("2013-10-14")); + URI.create("urn:opendaylight.bar"), Revision.valueOf("2013-10-14")); private static final QNameModule BAZ = QNameModule.create( - URI.create("urn:opendaylight.baz"), QName.parseRevision("2013-10-15")); + URI.create("urn:opendaylight.baz"), Revision.valueOf("2013-10-15")); private static final QName Q0 = QName.create(BAR, "interfaces"); private static final QName Q1 = QName.create(BAR, "ifEntry"); @@ -346,8 +346,7 @@ public class AugmentTest { 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 Date revision = QName.parseRevision("2013-10-11"); - + final Revision revision = Revision.valueOf("2013-10-11"); final Module bar = TestUtils.findModule(context, "bar").get(); final Set rpcs = bar.getRpcs(); assertEquals(2, rpcs.size()); diff --git a/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/Bug1412Test.java b/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/Bug1412Test.java index 9e5bcfffea..c7b4bd69f7 100644 --- a/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/Bug1412Test.java +++ b/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/Bug1412Test.java @@ -11,11 +11,11 @@ import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; import java.net.URI; -import java.util.Date; 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.model.api.ContainerSchemaNode; import org.opendaylight.yangtools.yang.model.api.Module; import org.opendaylight.yangtools.yang.model.api.UnknownSchemaNode; @@ -38,8 +38,7 @@ public class Bug1412Test { assertEquals(1, unknownNodes.size()); final UnknownSchemaNode action = unknownNodes.get(0); - final Date revision = QName.parseRevision("2014-07-25"); - final QNameModule qm = QNameModule.create(URI.create("urn:test:bug1412"), revision); + final QNameModule qm = QNameModule.create(URI.create("urn:test:bug1412"), Revision.valueOf("2014-07-25")); QName expectedNodeType = QName.create("urn:test:bug1412:ext:definitions", "2014-07-25", "action"); assertEquals(expectedNodeType, action.getNodeType()); assertEquals("hello", action.getNodeParameter()); diff --git a/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/Bug2872Test.java b/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/Bug2872Test.java index 77ad66242e..c67cbbe5fb 100644 --- a/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/Bug2872Test.java +++ b/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/Bug2872Test.java @@ -13,11 +13,11 @@ import static org.junit.Assert.assertTrue; import java.net.URI; import java.util.ArrayList; -import java.util.Date; 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.model.api.DataSchemaNode; import org.opendaylight.yangtools.yang.model.api.LeafSchemaNode; import org.opendaylight.yangtools.yang.model.api.SchemaContext; @@ -31,8 +31,7 @@ public class Bug2872Test { final SchemaContext schema = StmtTestUtils.parseYangSources("/bugs/bug2872"); assertNotNull(schema); - final Date revision = QName.parseRevision("2016-06-08"); - final QNameModule bug2872module = QNameModule.create(new URI("bug2872"), revision); + final QNameModule bug2872module = QNameModule.create(URI.create("bug2872"), Revision.valueOf("2016-06-08")); final QName foo = QName.create(bug2872module, "bar"); final DataSchemaNode dataSchemaNode = schema.getDataChildByName(foo); diff --git a/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/Bug4231Test.java b/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/Bug4231Test.java index 0f1eccd1f8..12cff81822 100644 --- a/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/Bug4231Test.java +++ b/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/Bug4231Test.java @@ -13,6 +13,7 @@ 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.model.api.SchemaContext; import org.opendaylight.yangtools.yang.model.api.SchemaNode; import org.opendaylight.yangtools.yang.model.api.SchemaPath; @@ -26,7 +27,7 @@ public class Bug4231Test { assertNotNull(context); - QNameModule foo = QNameModule.create(new URI("foo"), QName.parseRevision("2015-09-02")); + QNameModule foo = QNameModule.create(new URI("foo"), Revision.valueOf("2015-09-02")); SchemaPath targetPath = SchemaPath .create(true, QName.create(foo, "augment-target")) diff --git a/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/Bug4610Test.java b/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/Bug4610Test.java index b5f5a7e9a6..60f48855cb 100644 --- a/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/Bug4610Test.java +++ b/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/Bug4610Test.java @@ -11,10 +11,10 @@ import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; import java.net.URI; -import java.util.Date; 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.model.api.SchemaContext; import org.opendaylight.yangtools.yang.model.api.SchemaNode; import org.opendaylight.yangtools.yang.model.api.SchemaPath; @@ -28,9 +28,9 @@ public class Bug4610Test { public void test() throws Exception { SchemaContext context = StmtTestUtils.parseYangSources("/bugs/bug4610"); - Date revision = QName.parseRevision("2015-12-12"); - QNameModule foo = QNameModule.create(new URI("foo"), revision); - QNameModule bar = QNameModule.create(new URI("bar"), revision); + Revision revision = Revision.valueOf("2015-12-12"); + QNameModule foo = QNameModule.create(URI.create("foo"), revision); + QNameModule bar = QNameModule.create(URI.create("bar"), revision); QName g1 = QName.create(bar, "g1"); QName g2 = QName.create(bar, "g2"); diff --git a/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/Bug5884Test.java b/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/Bug5884Test.java index 7e352554eb..2b72f6318e 100644 --- a/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/Bug5884Test.java +++ b/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/Bug5884Test.java @@ -14,6 +14,7 @@ import java.util.Iterator; 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.model.api.AugmentationSchema; import org.opendaylight.yangtools.yang.model.api.ChoiceCaseNode; import org.opendaylight.yangtools.yang.model.api.ChoiceSchemaNode; @@ -34,7 +35,7 @@ public class Bug5884Test { final QName root = QName.create(NS, REV, "main-container"); final QName choice = QName.create(NS, REV, "test-choice"); final QName testContainerQname = QName.create(NS, REV, "test"); - final Module foo = context.findModule("foo", QName.parseRevision("2016-01-01")).get(); + final Module foo = context.findModule("foo", Revision.valueOf("2016-01-01")).get(); final ContainerSchemaNode rootContainer = (ContainerSchemaNode) context.getDataChildByName(root); final ContainerSchemaNode testContainer = (ContainerSchemaNode) rootContainer.getDataChildByName( testContainerQname); diff --git a/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/Bug6491Test.java b/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/Bug6491Test.java index 4413b8e327..2d656eb826 100644 --- a/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/Bug6491Test.java +++ b/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/Bug6491Test.java @@ -9,24 +9,23 @@ package org.opendaylight.yangtools.yang.stmt; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; -import static org.opendaylight.yangtools.yang.common.SimpleDateFormatUtil.getRevisionFormat; import java.text.ParseException; -import java.util.Date; import java.util.Optional; import java.util.Set; import org.junit.Before; import org.junit.Test; +import org.opendaylight.yangtools.yang.common.Revision; import org.opendaylight.yangtools.yang.model.api.Module; import org.opendaylight.yangtools.yang.model.api.ModuleImport; import org.opendaylight.yangtools.yang.model.api.SchemaContext; public class Bug6491Test { - private Date date; + private Revision date; @Before public void setup() throws ParseException { - date = getRevisionFormat().parse("2016-01-01"); + date = Revision.valueOf("2016-01-01"); } @Test @@ -37,8 +36,8 @@ public class Bug6491Test { testRevision("moduleRevisionOnly", date, Optional.empty()); } - private static void testRevision(final String path, final Date moduleRevision, - final Optional importedRevision) throws Exception { + private static void testRevision(final String path, final Revision moduleRevision, + final Optional importedRevision) throws Exception { final SchemaContext context = StmtTestUtils.parseYangSources("/bugs/bug6491/".concat(path)); assertNotNull(context); final Module module = context.findModule("bar", moduleRevision).get(); diff --git a/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/Bug6961Test.java b/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/Bug6961Test.java index 8f4970baef..7781ec248d 100644 --- a/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/Bug6961Test.java +++ b/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/Bug6961Test.java @@ -12,11 +12,10 @@ import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertTrue; import com.google.common.collect.ImmutableSet; -import java.util.Date; import java.util.Optional; 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.model.api.ModuleIdentifier; import org.opendaylight.yangtools.yang.model.api.SchemaContext; import org.opendaylight.yangtools.yang.model.util.ModuleIdentifierImpl; @@ -27,13 +26,13 @@ public class Bug6961Test { @Test public void testBug6961SchemaContext() throws Exception { - final Optional date = Optional.of(QName.parseRevision("2016-01-01")); - final ModuleIdentifier foo = ModuleIdentifierImpl.create("foo", date); - final ModuleIdentifier sub1Foo = ModuleIdentifierImpl.create("sub1-foo", date); - final ModuleIdentifier sub2Foo = ModuleIdentifierImpl.create("sub2-foo", date); - final ModuleIdentifier bar = ModuleIdentifierImpl.create("bar", date); - final ModuleIdentifier sub1Bar = ModuleIdentifierImpl.create("sub1-bar", date); - final ModuleIdentifier baz = ModuleIdentifierImpl.create("baz", date); + final Optional revision = Optional.of(Revision.valueOf("2016-01-01")); + final ModuleIdentifier foo = ModuleIdentifierImpl.create("foo", revision); + final ModuleIdentifier sub1Foo = ModuleIdentifierImpl.create("sub1-foo", revision); + final ModuleIdentifier sub2Foo = ModuleIdentifierImpl.create("sub2-foo", revision); + final ModuleIdentifier bar = ModuleIdentifierImpl.create("bar", revision); + final ModuleIdentifier sub1Bar = ModuleIdentifierImpl.create("sub1-bar", revision); + final ModuleIdentifier baz = ModuleIdentifierImpl.create("baz", revision); final Set testSet = ImmutableSet.of(foo, sub1Foo, sub2Foo, bar, sub1Bar, baz); final SchemaContext context = StmtTestUtils.parseYangSources("/bugs/bug6961/"); assertNotNull(context); diff --git a/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/Bug6972Test.java b/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/Bug6972Test.java index 76858e399a..bdc41e9e64 100644 --- a/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/Bug6972Test.java +++ b/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/Bug6972Test.java @@ -12,10 +12,10 @@ import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertTrue; -import java.util.Date; import org.junit.Ignore; import org.junit.Test; import org.opendaylight.yangtools.yang.common.QName; +import org.opendaylight.yangtools.yang.common.Revision; import org.opendaylight.yangtools.yang.model.api.ContainerSchemaNode; import org.opendaylight.yangtools.yang.model.api.LeafSchemaNode; import org.opendaylight.yangtools.yang.model.api.Module; @@ -33,7 +33,7 @@ public class Bug6972Test { assertNotNull(schemaContext); assertEquals(3, schemaContext.getModules().size()); - final Date revision = QName.parseRevision("2016-10-20"); + final Revision revision = Revision.valueOf("2016-10-20"); final Module foo = schemaContext.findModule("foo", revision).get(); final Module bar = schemaContext.findModule("bar", revision).get(); final Module baz = schemaContext.findModule("baz", revision).get(); diff --git a/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/Bug7440Test.java b/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/Bug7440Test.java index 70fc2d67e9..ed747bf66b 100644 --- a/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/Bug7440Test.java +++ b/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/Bug7440Test.java @@ -11,11 +11,11 @@ package org.opendaylight.yangtools.yang.stmt; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; -import java.util.Date; import java.util.List; 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.model.api.DeviateDefinition; import org.opendaylight.yangtools.yang.model.api.Deviation; import org.opendaylight.yangtools.yang.model.api.Module; @@ -30,7 +30,7 @@ public class Bug7440Test { final SchemaContext schemaContext = StmtTestUtils.parseYangSources("/bugs/bug7440"); assertNotNull(schemaContext); - final Date revision = QName.parseRevision("2016-12-23"); + final Revision revision = Revision.valueOf("2016-12-23"); final Module foo = schemaContext.findModule("foo", revision).get(); final Module bar = schemaContext.findModule("bar", revision).get(); diff --git a/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/Bug7480Test.java b/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/Bug7480Test.java index c79a918a67..f3ab8e3c5a 100644 --- a/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/Bug7480Test.java +++ b/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/Bug7480Test.java @@ -15,7 +15,7 @@ import static org.junit.Assert.fail; import java.net.URI; 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.model.api.Module; import org.opendaylight.yangtools.yang.model.api.SchemaContext; import org.opendaylight.yangtools.yang.parser.spi.meta.SomeModifiersUnresolvedException; @@ -31,18 +31,18 @@ public class Bug7480Test { final Set modules = context.getModules(); assertEquals(8, modules.size()); - assertNotNull(context.findModule(new URI("foo-imp"), QName.parseRevision("2017-01-23"))); + assertNotNull(context.findModule(new URI("foo-imp"), Revision.valueOf("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"), QName.parseRevision("2002-01-01")).isPresent()); + assertTrue(context.findModule(new URI("baz-imp"), Revision.valueOf("2002-01-01")).isPresent()); final Set foo = context.findModules(new URI("foo")); assertEquals(1, foo.size()); final Set subFoos = foo.iterator().next().getSubmodules(); assertEquals(1, subFoos.size()); - final Module parentMod = context.findModule(new URI("parent-mod-ns"), QName.parseRevision("2017-09-07")).get(); + final Module parentMod = context.findModule(new URI("parent-mod-ns"), Revision.valueOf("2017-09-07")).get(); assertEquals(1, parentMod.getSubmodules().size()); } diff --git a/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/Bug8307Test.java b/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/Bug8307Test.java index 471495fc14..b971f02262 100644 --- a/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/Bug8307Test.java +++ b/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/Bug8307Test.java @@ -17,15 +17,13 @@ import static org.opendaylight.yangtools.yang.stmt.StmtTestUtils.sourceForResour import com.google.common.collect.ImmutableMap; import com.google.common.collect.ImmutableSet; import java.net.URI; -import java.text.ParseException; -import java.util.Date; import java.util.Map; import java.util.Set; 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.SimpleDateFormatUtil; +import org.opendaylight.yangtools.yang.common.Revision; import org.opendaylight.yangtools.yang.model.api.SchemaContext; import org.opendaylight.yangtools.yang.model.api.SchemaPath; import org.opendaylight.yangtools.yang.model.util.SchemaContextUtil; @@ -49,7 +47,7 @@ public class Bug8307Test { private static final URI BAR_NS = URI.create("bar-ns"); private static final URI BAZ_NS = URI.create("baz-ns"); - private static Date revision; + private static Revision revision; private static QNameModule foo; private static QName myFooContA; private static QName myFooContB; @@ -61,8 +59,8 @@ public class Bug8307Test { private static QName myBazCont; @BeforeClass - public static void setup() throws ParseException { - revision = SimpleDateFormatUtil.getRevisionFormat().parse("2017-05-16"); + public static void setup() { + revision = Revision.valueOf("2017-05-16"); foo = QNameModule.create(FOO_NS, revision); myFooContA = QName.create(foo, "my-foo-cont-a"); myFooContB = QName.create(foo, "my-foo-cont-b"); diff --git a/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/Bug8597Test.java b/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/Bug8597Test.java index 168b877427..f4a7f6d60e 100644 --- a/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/Bug8597Test.java +++ b/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/Bug8597Test.java @@ -14,7 +14,7 @@ import static org.junit.Assert.fail; import java.util.Optional; 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.model.api.Module; import org.opendaylight.yangtools.yang.model.api.ModuleImport; import org.opendaylight.yangtools.yang.model.api.SchemaContext; @@ -31,12 +31,12 @@ public class Bug8597Test { for (final ModuleImport moduleImport : imports) { switch (moduleImport.getModuleName()) { case "bar": - assertEquals(Optional.of(QName.parseRevision("1970-01-01")), moduleImport.getRevision()); + assertEquals(Optional.of(Revision.valueOf("1970-01-01")), moduleImport.getRevision()); assertEquals("bar-ref", moduleImport.getReference()); assertEquals("bar-desc", moduleImport.getDescription()); break; case "baz": - assertEquals(Optional.of(QName.parseRevision("2010-10-10")), moduleImport.getRevision()); + assertEquals(Optional.of(Revision.valueOf("2010-10-10")), moduleImport.getRevision()); assertEquals("baz-ref", moduleImport.getReference()); assertEquals("baz-desc", moduleImport.getDescription()); break; diff --git a/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/Bug9005Test.java b/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/Bug9005Test.java index 64cb356ae3..eeb1635159 100644 --- a/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/Bug9005Test.java +++ b/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/Bug9005Test.java @@ -13,7 +13,7 @@ import static org.junit.Assert.assertNotNull; import java.util.Optional; 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.model.api.Module; import org.opendaylight.yangtools.yang.model.api.ModuleImport; import org.opendaylight.yangtools.yang.model.api.SchemaContext; @@ -24,14 +24,14 @@ public class Bug9005Test { final SchemaContext context = StmtTestUtils.parseYangSources("/bugs/bug9005"); assertNotNull(context); - final Module foo = context.findModule("foo", QName.parseRevision("2017-07-07")).get(); + final Module foo = context.findModule("foo", Revision.valueOf("2017-07-07")).get(); final Set imports = foo.getImports(); assertEquals(1, imports.size()); final ModuleImport imp1 = imports.iterator().next(); assertEquals("bar-2", imp1.getModuleName()); assertEquals("bar", imp1.getPrefix()); - assertEquals(Optional.of(QName.parseRevision("2000-01-02")), imp1.getRevision()); + assertEquals(Optional.of(Revision.valueOf("2000-01-02")), imp1.getRevision()); final Set submodules = foo.getSubmodules(); assertEquals(1, submodules.size()); @@ -42,6 +42,6 @@ public class Bug9005Test { final ModuleImport subImp1 = subImports.iterator().next(); assertEquals("bar-1", subImp1.getModuleName()); assertEquals("bar", subImp1.getPrefix()); - assertEquals(Optional.of(QName.parseRevision("2000-01-01")), subImp1.getRevision()); + assertEquals(Optional.of(Revision.valueOf("2000-01-01")), subImp1.getRevision()); } } diff --git a/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/Bug9242Test.java b/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/Bug9242Test.java index ec7158245a..4d43ae0b9b 100644 --- a/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/Bug9242Test.java +++ b/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/Bug9242Test.java @@ -11,9 +11,9 @@ package org.opendaylight.yangtools.yang.stmt; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertSame; -import java.util.Date; import org.junit.Test; import org.opendaylight.yangtools.yang.common.QName; +import org.opendaylight.yangtools.yang.common.Revision; import org.opendaylight.yangtools.yang.model.api.Deviation; import org.opendaylight.yangtools.yang.model.api.LeafSchemaNode; import org.opendaylight.yangtools.yang.model.api.Module; @@ -27,8 +27,7 @@ public class Bug9242Test { final SchemaContext schemaContext = StmtTestUtils.parseYangSources("/bugs/bug9242/"); assertNotNull(schemaContext); - final Date revision = QName.parseRevision("2017-10-13"); - + final Revision revision = Revision.valueOf("2017-10-13"); final Module rootModule = schemaContext.findModule("root-module", revision).get(); final Module impModule = schemaContext.findModule("imp-module", revision).get(); diff --git a/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/Bug9244Test.java b/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/Bug9244Test.java index 5dedf724d6..a26e407bba 100644 --- a/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/Bug9244Test.java +++ b/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/Bug9244Test.java @@ -15,6 +15,7 @@ import static org.junit.Assert.assertTrue; import org.junit.Test; import org.opendaylight.yangtools.yang.common.QName; +import org.opendaylight.yangtools.yang.common.Revision; import org.opendaylight.yangtools.yang.model.api.ContainerSchemaNode; import org.opendaylight.yangtools.yang.model.api.LeafListSchemaNode; import org.opendaylight.yangtools.yang.model.api.LeafSchemaNode; @@ -28,7 +29,7 @@ public class Bug9244Test { final SchemaContext schemaContext = StmtTestUtils.parseYangSources("/bugs/bug9244/"); assertNotNull(schemaContext); - final Module barModule = schemaContext.findModule("bar", QName.parseRevision("2017-10-13")).get(); + final Module barModule = schemaContext.findModule("bar", Revision.valueOf("2017-10-13")).get(); final ContainerSchemaNode barCont = (ContainerSchemaNode) barModule.getDataChildByName( QName.create(barModule.getQNameModule(), "bar-cont")); assertNotNull(barCont); diff --git a/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/CaseStmtTest.java b/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/CaseStmtTest.java index cd47bf687f..f54bf7b6e9 100644 --- a/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/CaseStmtTest.java +++ b/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/CaseStmtTest.java @@ -13,15 +13,13 @@ import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertTrue; import java.net.URI; -import java.text.SimpleDateFormat; -import java.util.Date; import org.junit.Before; import org.junit.Rule; import org.junit.Test; import org.junit.rules.ExpectedException; import org.opendaylight.yangtools.yang.common.QName; import org.opendaylight.yangtools.yang.common.QNameModule; -import org.opendaylight.yangtools.yang.common.SimpleDateFormatUtil; +import org.opendaylight.yangtools.yang.common.Revision; import org.opendaylight.yangtools.yang.model.api.ChoiceCaseNode; import org.opendaylight.yangtools.yang.model.api.DataSchemaNode; import org.opendaylight.yangtools.yang.model.api.Module; @@ -43,15 +41,13 @@ public class CaseStmtTest { @Before public void setup() throws Exception { schema = StmtTestUtils.parseYangSources("/case-test"); - String date_s = "2015-09-09 00:00:00.0"; - SimpleDateFormat dt = SimpleDateFormatUtil.getRevisionFormat(); - Date date = dt.parse(date_s); - rootFoo = schema.findModule("foo", date).get(); - rootBar = schema.findModule("bar", date).get(); + Revision rev = Revision.valueOf("2015-09-09"); + rootFoo = schema.findModule("foo", rev).get(); + rootBar = schema.findModule("bar", rev).get(); assertNotNull(rootFoo); assertNotNull(rootBar); - qnameFoo = QNameModule.create(URI.create("foo"), date); - qnameBar = QNameModule.create(URI.create("bar"), date); + qnameFoo = QNameModule.create(URI.create("foo"), rev); + qnameBar = QNameModule.create(URI.create("bar"), rev); assertNotNull(qnameFoo); assertNotNull(qnameBar); } diff --git a/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/ControllerStmtParserTest.java b/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/ControllerStmtParserTest.java index 6119f70e59..8f71d19267 100644 --- a/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/ControllerStmtParserTest.java +++ b/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/ControllerStmtParserTest.java @@ -12,13 +12,12 @@ import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertTrue; import java.net.URI; -import java.net.URISyntaxException; -import java.text.ParseException; import java.util.List; import java.util.Set; 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.model.api.AugmentationSchema; import org.opendaylight.yangtools.yang.model.api.ChoiceCaseNode; import org.opendaylight.yangtools.yang.model.api.ChoiceSchemaNode; @@ -42,10 +41,9 @@ public class ControllerStmtParserTest { configModuleTest(context); } - private static void salDomBrokerImplModuleTest(final SchemaContext context) - throws ParseException { + private static void salDomBrokerImplModuleTest(final SchemaContext context) { final Module module = context.findModule("opendaylight-sal-dom-broker-impl", - QName.parseRevision("2013-10-28")).get(); + Revision.valueOf("2013-10-28")).get(); final Set augmentations = module.getAugmentations(); boolean checked = false; @@ -74,11 +72,10 @@ public class ControllerStmtParserTest { assertTrue(checked); } - private static void configModuleTest(final SchemaContext context) throws ParseException, - URISyntaxException { - final Module configModule = context.findModule("config", QName.parseRevision("2013-04-05")).get(); + private static void configModuleTest(final SchemaContext context) { + final Module configModule = context.findModule("config", Revision.valueOf("2013-04-05")).get(); final Module module = context.findModule("opendaylight-sal-dom-broker-impl", - QName.parseRevision("2013-10-28")).get(); + Revision.valueOf("2013-10-28")).get(); final DataSchemaNode dataNode = configModule.getDataChildByName(QName.create(configModule.getQNameModule(), "modules")); @@ -138,9 +135,8 @@ public class ControllerStmtParserTest { assertEquals(1, typeUnknownSchemaNodes.size()); final UnknownSchemaNode typeUnknownSchemaNode = typeUnknownSchemaNodes.get(0); - final QNameModule qNameModule = QNameModule - .create(new URI("urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom"), - QName.parseRevision("2013-10-28")); + final QNameModule qNameModule = QNameModule.create( + URI.create("urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom"), Revision.valueOf("2013-10-28")); final QName qName = QName.create(qNameModule, "schema-service"); assertEquals(qName, typeUnknownSchemaNode.getQName()); diff --git a/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/DeclaredStatementsTest.java b/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/DeclaredStatementsTest.java index c6b22da800..fbcc004257 100644 --- a/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/DeclaredStatementsTest.java +++ b/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/DeclaredStatementsTest.java @@ -16,11 +16,11 @@ import static org.opendaylight.yangtools.yang.stmt.StmtTestUtils.sourceForResour import java.text.ParseException; import java.util.Collection; -import java.util.Date; import java.util.Set; import java.util.function.Predicate; import org.junit.Test; import org.opendaylight.yangtools.yang.common.QName; +import org.opendaylight.yangtools.yang.common.Revision; import org.opendaylight.yangtools.yang.model.api.AnyXmlSchemaNode; import org.opendaylight.yangtools.yang.model.api.AugmentationSchema; import org.opendaylight.yangtools.yang.model.api.ChoiceSchemaNode; @@ -303,8 +303,7 @@ public class DeclaredStatementsTest { final SchemaContext schemaContext = StmtTestUtils.parseYangSources(rootModule, importedModule); assertNotNull(schemaContext); - final Date revision = QName.parseRevision("2016-09-28"); - + final Revision revision = Revision.valueOf("2016-09-28"); final Module testModule = schemaContext.findModule("root-module-declared-test", revision).get(); assertNotNull(testModule); diff --git a/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/DeviationResolutionTest.java b/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/DeviationResolutionTest.java index 5121250fef..783d6fc628 100644 --- a/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/DeviationResolutionTest.java +++ b/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/DeviationResolutionTest.java @@ -20,6 +20,7 @@ import java.io.ByteArrayOutputStream; import java.io.PrintStream; import org.junit.Test; import org.opendaylight.yangtools.yang.common.QName; +import org.opendaylight.yangtools.yang.common.Revision; import org.opendaylight.yangtools.yang.model.api.AnyXmlSchemaNode; import org.opendaylight.yangtools.yang.model.api.ChoiceSchemaNode; import org.opendaylight.yangtools.yang.model.api.ContainerSchemaNode; @@ -43,7 +44,7 @@ public class DeviationResolutionTest { "/deviation-resolution-test/deviation-not-supported"); assertNotNull(schemaContext); - final Module importedModule = schemaContext.findModule("imported", QName.parseRevision("2017-01-20")).get(); + final Module importedModule = schemaContext.findModule("imported", Revision.valueOf("2017-01-20")).get(); final ContainerSchemaNode myContA = (ContainerSchemaNode) importedModule.getDataChildByName( QName.create(importedModule.getQNameModule(), "my-cont-a")); assertNotNull(myContA); @@ -71,7 +72,7 @@ public class DeviationResolutionTest { sourceForResource("/deviation-resolution-test/deviation-add/bar.yang")); assertNotNull(schemaContext); - final Module barModule = schemaContext.findModule("bar", QName.parseRevision("2017-01-20")).get(); + final Module barModule = schemaContext.findModule("bar", Revision.valueOf("2017-01-20")).get(); final LeafListSchemaNode myLeafList = (LeafListSchemaNode) barModule.getDataChildByName( QName.create(barModule.getQNameModule(), "my-leaf-list")); assertNotNull(myLeafList); @@ -115,7 +116,7 @@ public class DeviationResolutionTest { sourceForResource("/deviation-resolution-test/deviation-replace/bar.yang")); assertNotNull(schemaContext); - final Module barModule = schemaContext.findModule("bar", QName.parseRevision("2017-01-20")).get(); + final Module barModule = schemaContext.findModule("bar", Revision.valueOf("2017-01-20")).get(); assertNotNull(barModule); final LeafSchemaNode myLeaf = (LeafSchemaNode) barModule.getDataChildByName( @@ -178,7 +179,7 @@ public class DeviationResolutionTest { sourceForResource("/deviation-resolution-test/deviation-delete/bar.yang")); assertNotNull(schemaContext); - final Module barModule = schemaContext.findModule("bar", QName.parseRevision("2017-01-20")).get(); + final Module barModule = schemaContext.findModule("bar", Revision.valueOf("2017-01-20")).get(); final LeafSchemaNode myLeaf = (LeafSchemaNode) barModule.getDataChildByName( QName.create(barModule.getQNameModule(), "my-leaf")); assertNotNull(myLeaf); diff --git a/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/DeviationStmtTest.java b/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/DeviationStmtTest.java index 8fd0d4c75b..3c779aba48 100644 --- a/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/DeviationStmtTest.java +++ b/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/DeviationStmtTest.java @@ -18,7 +18,7 @@ import java.text.ParseException; import java.util.List; 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.model.api.DeviateDefinition; import org.opendaylight.yangtools.yang.model.api.DeviateKind; import org.opendaylight.yangtools.yang.model.api.Deviation; @@ -45,7 +45,7 @@ public class DeviationStmtTest { final SchemaContext schemaContext = reactor.buildEffective(); assertNotNull(schemaContext); - Module testModule = schemaContext.findModule("foo", QName.parseRevision("2016-06-23")).get(); + Module testModule = schemaContext.findModule("foo", Revision.valueOf("2016-06-23")).get(); Set deviations = testModule.getDeviations(); assertEquals(4, deviations.size()); @@ -82,7 +82,7 @@ public class DeviationStmtTest { } } - testModule = schemaContext.findModule("bar", QName.parseRevision("2016-09-22")).get(); + testModule = schemaContext.findModule("bar", Revision.valueOf("2016-09-22")).get(); assertNotNull(testModule); deviations = testModule.getDeviations(); diff --git a/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/EffectiveModuleTest.java b/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/EffectiveModuleTest.java index e3c4c1de23..39a884dde2 100644 --- a/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/EffectiveModuleTest.java +++ b/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/EffectiveModuleTest.java @@ -13,13 +13,13 @@ import static org.junit.Assert.assertNotNull; import static org.opendaylight.yangtools.yang.stmt.StmtTestUtils.sourceForResource; import java.net.URI; -import java.util.Date; import java.util.List; import java.util.Optional; import java.util.Set; 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.YangVersion; import org.opendaylight.yangtools.yang.model.api.AugmentationSchema; import org.opendaylight.yangtools.yang.model.api.ContainerSchemaNode; @@ -58,7 +58,7 @@ public class EffectiveModuleTest { private static final SchemaPath contSchemaPath = SchemaPath.create(true, cont); private static final SchemaPath feature1SchemaPath = SchemaPath.create(true, feature1); - private static final Date REVISION = QName.parseRevision("2000-01-01"); + private static final Revision REVISION = Revision.valueOf("2000-01-01"); @Test public void effectiveBuildTest() throws SourceException, ReactorException { diff --git a/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/EffectiveModulesAndSubmodulesTest.java b/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/EffectiveModulesAndSubmodulesTest.java index 715a1500ae..10f09dbd84 100644 --- a/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/EffectiveModulesAndSubmodulesTest.java +++ b/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/EffectiveModulesAndSubmodulesTest.java @@ -169,7 +169,7 @@ 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 Set foundRoots = result.findModules(URI.create("root-module")); - final Module foundRoot3 = result.findModule(URI.create("root-module"), null).get(); + final Module foundRoot3 = result.findModule(URI.create("root-module")).get(); assertNotNull(foundRoot); assertNotNull(foundRoots); @@ -185,7 +185,7 @@ public class EffectiveModulesAndSubmodulesTest { final Module foundImported = result.findModule("imported-module").get(); final Set foundImporteds = result.findModules(URI.create("imported-module")); - final Module foundImported3 = result.findModule(URI.create("imported-module"), null).get(); + final Module foundImported3 = result.findModule(URI.create("imported-module")).get(); assertNotNull(foundImported); assertNotNull(foundImporteds); diff --git a/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/EffectiveSchemaContextTest.java b/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/EffectiveSchemaContextTest.java index b677e71812..c5dd31b6f9 100644 --- a/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/EffectiveSchemaContextTest.java +++ b/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/EffectiveSchemaContextTest.java @@ -23,6 +23,7 @@ import java.util.List; 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.model.api.DataSchemaNode; import org.opendaylight.yangtools.yang.model.api.ExtensionDefinition; import org.opendaylight.yangtools.yang.model.api.Module; @@ -78,8 +79,8 @@ public class EffectiveSchemaContextTest { assertNull(schemaContext.getDataChildByName(QName.create("foo-namespace", "2016-09-21", "foo-cont"))); - assertFalse(schemaContext.findModule("foo", QName.parseRevision("2016-08-21")).isPresent()); - assertFalse(schemaContext.findModule(URI.create("foo-namespace"), QName.parseRevision("2016-08-21")) + assertFalse(schemaContext.findModule("foo", Revision.valueOf("2016-08-21")).isPresent()); + assertFalse(schemaContext.findModule(URI.create("foo-namespace"), Revision.valueOf("2016-08-21")) .isPresent()); assertFalse(schemaContext.isAugmenting()); @@ -97,7 +98,7 @@ public class EffectiveSchemaContextTest { assertNotNull(schemaContext.getAvailableAugmentations()); assertTrue(schemaContext.getAvailableAugmentations().isEmpty()); - Module fooModule = schemaContext.findModule("foo", QName.parseRevision("2016-09-21")).get(); + Module fooModule = schemaContext.findModule("foo", Revision.valueOf("2016-09-21")).get(); assertEquals(3, schemaContext.getModules().size()); assertEquals(3, ((EffectiveSchemaContext) schemaContext).getRootDeclaredStatements().size()); assertEquals(3,((EffectiveSchemaContext) schemaContext).getRootEffectiveStatements().size()); diff --git a/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/GroupingTest.java b/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/GroupingTest.java index 2e7ca27eb1..f92bc99d6c 100644 --- a/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/GroupingTest.java +++ b/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/GroupingTest.java @@ -24,6 +24,7 @@ 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.model.api.AnyXmlSchemaNode; import org.opendaylight.yangtools.yang.model.api.AugmentationSchema; import org.opendaylight.yangtools.yang.model.api.ChoiceCaseNode; @@ -431,8 +432,8 @@ public class GroupingTest { assertNotNull(gz); assertNotNull(gzz); - final QNameModule expectedModule = QNameModule.create( - URI.create("urn:grouping:cascade-uses"), QName.parseRevision("2013-07-18")); + final QNameModule expectedModule = QNameModule.create(URI.create("urn:grouping:cascade-uses"), + Revision.valueOf("2013-07-18")); SchemaPath expectedPath; // grouping-U diff --git a/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/MoreRevisionsTest.java b/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/MoreRevisionsTest.java index bda947e7a0..67d03e70a0 100644 --- a/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/MoreRevisionsTest.java +++ b/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/MoreRevisionsTest.java @@ -15,12 +15,12 @@ import static org.junit.Assert.assertTrue; import static org.opendaylight.yangtools.yang.stmt.StmtTestUtils.sourceForResource; import java.net.URI; -import java.util.Date; import java.util.Optional; import java.util.Set; 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.model.api.ContainerSchemaNode; import org.opendaylight.yangtools.yang.model.api.DataSchemaNode; import org.opendaylight.yangtools.yang.model.api.LeafSchemaNode; @@ -140,9 +140,9 @@ public class MoreRevisionsTest { private static void checkContentFullTest(final SchemaContext context) { URI yangTypesNS = URI.create("urn:ietf:params:xml:ns:yang:ietf-yang-types"); - final Date rev20100924 = QName.parseRevision("2010-09-24"); - final Date rev20130516 = QName.parseRevision("2013-05-16"); - final Date rev20130715 = QName.parseRevision("2013-07-15"); + final Revision rev20100924 = Revision.valueOf("2010-09-24"); + final Revision rev20130516 = Revision.valueOf("2013-05-16"); + final Revision rev20130715 = Revision.valueOf("2013-07-15"); final QNameModule yangTypes_20100924 = QNameModule.create(yangTypesNS, rev20100924); final QNameModule yangTypes_20130516 = QNameModule.create(yangTypesNS, rev20130516); @@ -163,9 +163,9 @@ public class MoreRevisionsTest { checkInterfacesModuleFullTest(context, rev20100924, dateTimeTypeDef_20100924); } - private static void checkInterfacesModuleFullTest(final SchemaContext context, final Date rev20100924, + private static void checkInterfacesModuleFullTest(final SchemaContext context, final Revision rev20100924, final QName dateTimeTypeDef_20100924) { - Date rev20121115 = QName.parseRevision("2012-11-15"); + Revision rev20121115 = Revision.valueOf("2012-11-15"); Module interfacesModule_20121115 = context.findModule("ietf-interfaces", rev20121115).get(); Set imports = interfacesModule_20121115.getImports(); @@ -176,8 +176,8 @@ public class MoreRevisionsTest { } private static void checkNetconfMonitoringModuleFullTest(final SchemaContext context, - final Date rev20130715, final QName dateTimeTypeDef_20130715) { - Date rev20101004 = QName.parseRevision("2010-10-04"); + final Revision rev20130715, final QName dateTimeTypeDef_20130715) { + Revision rev20101004 = Revision.valueOf("2010-10-04"); Module monitoringModule_20101004 = context.findModule("ietf-netconf-monitoring", rev20101004).get(); Set imports = monitoringModule_20101004.getImports(); @@ -203,9 +203,9 @@ public class MoreRevisionsTest { private static void checkContentSimpleTest(final SchemaContext context) { URI yangTypesNS = URI.create("urn:ietf:params:xml:ns:yang:ietf-yang-types"); - final Date rev20100924 = QName.parseRevision("2010-09-24"); - final Date rev20130516 = QName.parseRevision("2013-05-16"); - final Date rev20130715 = QName.parseRevision("2013-07-15"); + final Revision rev20100924 = Revision.valueOf("2010-09-24"); + final Revision rev20130516 = Revision.valueOf("2013-05-16"); + final Revision rev20130715 = Revision.valueOf("2013-07-15"); final QNameModule yangTypes_20100924 = QNameModule.create(yangTypesNS, rev20100924); final QNameModule yangTypes_20130516 = QNameModule.create(yangTypesNS, rev20130516); @@ -227,9 +227,9 @@ public class MoreRevisionsTest { } private static void checkInterfacesModuleSimpleTest(final SchemaContext context, - final Date rev20100924, final QName dateTimeTypeDef_20100924) { + final Revision rev20100924, final QName dateTimeTypeDef_20100924) { URI interfacesNS = URI.create("urn:ietf:params:xml:ns:yang:ietf-interfaces"); - Date rev20121115 = QName.parseRevision("2012-11-15"); + Revision rev20121115 = Revision.valueOf("2012-11-15"); final QNameModule interfacesNS_20121115 = QNameModule.create(interfacesNS, rev20121115); QName lastChange = QName.create(interfacesNS_20121115, "last-change"); @@ -249,7 +249,7 @@ public class MoreRevisionsTest { } private static void checkNetconfMonitoringModuleSimpleTest(final SchemaContext context, - final Date rev20130715, final QName dateTimeTypeDef_20130715) { + final Revision rev20130715, final QName dateTimeTypeDef_20130715) { URI monitoringNS = URI.create("urn:ietf:params:xml:ns:yang:ietf-netconf-monitoring"); final QNameModule monitoring_19700101 = QNameModule.create(monitoringNS); QName lockedTime = QName.create(monitoring_19700101, "locked-time"); diff --git a/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/RpcStmtTest.java b/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/RpcStmtTest.java index 2e2709ab2c..ed90b26058 100644 --- a/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/RpcStmtTest.java +++ b/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/RpcStmtTest.java @@ -18,6 +18,7 @@ import static org.opendaylight.yangtools.yang.stmt.StmtTestUtils.sourceForResour 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.model.api.AnyXmlSchemaNode; import org.opendaylight.yangtools.yang.model.api.ContainerSchemaNode; import org.opendaylight.yangtools.yang.model.api.Module; @@ -68,7 +69,7 @@ public class RpcStmtTest { anyXml = (AnyXmlSchemaNode) output.getDataChildByName(QName.create(testModule.getQNameModule(), "data")); assertNotNull(anyXml); - final Module fooModule = result.findModule("foo", QName.parseRevision("2016-09-23")).get(); + final Module fooModule = result.findModule("foo", Revision.valueOf("2016-09-23")).get(); final Set rpcs = fooModule.getRpcs(); assertEquals(2, rpcs.size()); @@ -106,7 +107,7 @@ public class RpcStmtTest { final SchemaContext schemaContext = StmtTestUtils.parseYangSource("/rpc-stmt-test/bar.yang"); assertNotNull(schemaContext); - final Module barModule = schemaContext.findModule("bar", QName.parseRevision("2016-11-25")).get(); + final Module barModule = schemaContext.findModule("bar", Revision.valueOf("2016-11-25")).get(); final Set rpcs = barModule.getRpcs(); assertEquals(1, rpcs.size()); diff --git a/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/TypesResolutionTest.java b/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/TypesResolutionTest.java index 423a01f225..4ff689adbc 100644 --- a/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/TypesResolutionTest.java +++ b/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/TypesResolutionTest.java @@ -24,6 +24,7 @@ import java.util.Set; import org.junit.Before; import org.junit.Test; import org.opendaylight.yangtools.yang.common.QName; +import org.opendaylight.yangtools.yang.common.Revision; import org.opendaylight.yangtools.yang.model.api.IdentitySchemaNode; import org.opendaylight.yangtools.yang.model.api.LeafSchemaNode; import org.opendaylight.yangtools.yang.model.api.Module; @@ -283,7 +284,7 @@ public class TypesResolutionTest { QName testedTypeQName = testedType.getQName(); assertEquals(URI.create("urn:ietf:params:xml:ns:yang:iana-timezones"), testedTypeQName.getNamespace()); - assertEquals(Optional.of(QName.parseRevision("2012-07-09")), testedTypeQName.getRevision()); + assertEquals(Optional.of(Revision.valueOf("2012-07-09")), testedTypeQName.getRevision()); assertEquals("iana-timezone", testedTypeQName.getLocalName()); EnumTypeDefinition enumType = (EnumTypeDefinition) testedType.getBaseType(); @@ -315,7 +316,7 @@ public class TypesResolutionTest { QName testedTypeQName = testedType.getQName(); assertEquals(URI.create("urn:ietf:params:xml:ns:yang:ietf-yang-types"), testedTypeQName.getNamespace()); - assertEquals(Optional.of(QName.parseRevision("2010-09-24")), testedTypeQName.getRevision()); + assertEquals(Optional.of(Revision.valueOf("2010-09-24")), testedTypeQName.getRevision()); assertEquals("object-identifier-128", testedTypeQName.getLocalName()); StringTypeDefinition testedTypeBase = testedType.getBaseType(); @@ -328,7 +329,7 @@ public class TypesResolutionTest { QName testedTypeBaseQName = testedTypeBase.getQName(); assertEquals(URI.create("urn:ietf:params:xml:ns:yang:ietf-yang-types"), testedTypeBaseQName.getNamespace()); - assertEquals(Optional.of(QName.parseRevision("2010-09-24")), testedTypeBaseQName.getRevision()); + assertEquals(Optional.of(Revision.valueOf("2010-09-24")), testedTypeBaseQName.getRevision()); assertEquals("object-identifier", testedTypeBaseQName.getLocalName()); } @@ -340,7 +341,7 @@ public class TypesResolutionTest { IdentityrefTypeDefinition baseType = (IdentityrefTypeDefinition) testedType.getBaseType(); QName identity = baseType.getIdentity().getQName(); assertEquals(URI.create("urn:custom.types.demo"), identity.getNamespace()); - assertEquals(Optional.of(QName.parseRevision("2012-04-16")), identity.getRevision()); + assertEquals(Optional.of(Revision.valueOf("2012-04-16")), identity.getRevision()); assertEquals("service-type", identity.getLocalName()); LeafSchemaNode type = (LeafSchemaNode) tested.getDataChildByName(QName.create(tested.getQNameModule(), "type")); diff --git a/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/UsesAugmentTest.java b/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/UsesAugmentTest.java index 69da4c5cf4..7b5ea96f40 100644 --- a/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/UsesAugmentTest.java +++ b/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/UsesAugmentTest.java @@ -23,6 +23,7 @@ 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.model.api.ChoiceSchemaNode; import org.opendaylight.yangtools.yang.model.api.ContainerSchemaNode; import org.opendaylight.yangtools.yang.model.api.DataSchemaNode; @@ -42,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"), QName.parseRevision("2013-07-30")); + URI.create("urn:opendaylight:params:xml:ns:yang:uses-grouping"), Revision.valueOf("2013-07-30")); private static final QNameModule GD = QNameModule.create( - URI.create("urn:opendaylight:params:xml:ns:yang:grouping-definitions"), QName.parseRevision("2013-09-04")); + URI.create("urn:opendaylight:params:xml:ns:yang:grouping-definitions"), Revision.valueOf("2013-09-04")); private SchemaContext context; diff --git a/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/YangDataExtensionTest.java b/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/YangDataExtensionTest.java index 49b48f06a9..8ad658fdfd 100644 --- a/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/YangDataExtensionTest.java +++ b/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/YangDataExtensionTest.java @@ -16,12 +16,12 @@ import static org.opendaylight.yangtools.yang.stmt.StmtTestUtils.sourceForResour import com.google.common.collect.ImmutableSet; import java.net.URI; -import java.util.Date; import java.util.List; import java.util.Set; 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.model.api.ContainerSchemaNode; import org.opendaylight.yangtools.yang.model.api.ExtensionDefinition; import org.opendaylight.yangtools.yang.model.api.Module; @@ -54,7 +54,7 @@ public class YangDataExtensionTest { private static final StatementStreamSource IETF_RESTCONF_MODULE = sourceForResource( "/yang-data-extension-test/ietf-restconf.yang"); - private static final Date REVISION = QName.parseRevision("2017-06-01"); + private static final Revision REVISION = Revision.valueOf("2017-06-01"); private static final QNameModule FOO_QNAMEMODULE = QNameModule.create(URI.create("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"); diff --git a/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/YangParserSimpleTest.java b/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/YangParserSimpleTest.java index 5b70aa8f7e..3041c8df0e 100644 --- a/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/YangParserSimpleTest.java +++ b/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/YangParserSimpleTest.java @@ -15,13 +15,13 @@ import static org.junit.Assert.assertTrue; import java.net.URI; import java.util.ArrayList; -import java.util.Date; import java.util.List; import java.util.Set; 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.model.api.AnyXmlSchemaNode; import org.opendaylight.yangtools.yang.model.api.ConstraintDefinition; import org.opendaylight.yangtools.yang.model.api.ContainerSchemaNode; @@ -37,8 +37,8 @@ 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"), QName.parseRevision("2013-07-30")); + private static final QNameModule SN = QNameModule.create(URI.create("urn:opendaylight:simple-nodes"), + Revision.valueOf("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); @@ -189,7 +189,7 @@ public class YangParserSimpleTest { private static final URI NS = URI.create("urn:opendaylight:simple-nodes"); private static SchemaPath createPath(final String... names) { - final Date rev = QName.parseRevision("2013-07-30"); + final Revision rev = Revision.valueOf("2013-07-30"); final List path = new ArrayList<>(); for (final String name : names) { path.add(QName.create(NS, rev, name)); diff --git a/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/YangParserTest.java b/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/YangParserTest.java index 37cc03a72b..43e57f26a1 100644 --- a/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/YangParserTest.java +++ b/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/YangParserTest.java @@ -30,6 +30,7 @@ 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.YangConstants; import org.opendaylight.yangtools.yang.common.YangVersion; import org.opendaylight.yangtools.yang.model.api.AugmentationSchema; @@ -70,11 +71,11 @@ import org.opendaylight.yangtools.yang.parser.stmt.rfc6020.YangInferencePipeline public class YangParserTest { private static final QNameModule FOO = QNameModule.create( - URI.create("urn:opendaylight.foo"), QName.parseRevision("2013-02-27")); + URI.create("urn:opendaylight.foo"), Revision.valueOf("2013-02-27")); private static final QNameModule BAR = QNameModule.create( - URI.create("urn:opendaylight.bar"), QName.parseRevision("2013-07-03")); + URI.create("urn:opendaylight.bar"), Revision.valueOf("2013-07-03")); private static final QNameModule BAZ = QNameModule.create( - URI.create("urn:opendaylight.baz"), QName.parseRevision("2013-02-27")); + URI.create("urn:opendaylight.baz"), Revision.valueOf("2013-02-27")); private SchemaContext context; private Module foo; @@ -109,7 +110,7 @@ public class YangParserTest { assertEquals("opendaylight", foo.getOrganization()); assertEquals("http://www.opendaylight.org/", foo.getContact()); - assertEquals(Optional.of(QName.parseRevision("2013-02-27")), foo.getRevision()); + assertEquals(Optional.of(Revision.valueOf("2013-02-27")), foo.getRevision()); assertNull(foo.getReference()); } diff --git a/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/YangParserWithContextTest.java b/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/YangParserWithContextTest.java index 3b3fe690fc..a0f6d3e14c 100644 --- a/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/YangParserWithContextTest.java +++ b/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/YangParserWithContextTest.java @@ -16,13 +16,13 @@ import static org.opendaylight.yangtools.yang.stmt.StmtTestUtils.sourceForResour import com.google.common.collect.Iterables; import java.net.URI; import java.util.ArrayList; -import java.util.Date; import java.util.List; import java.util.Map; import java.util.Optional; 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.model.api.AnyXmlSchemaNode; import org.opendaylight.yangtools.yang.model.api.ChoiceSchemaNode; import org.opendaylight.yangtools.yang.model.api.ContainerSchemaNode; @@ -50,7 +50,7 @@ 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 Date REV = QName.parseRevision("2013-06-18"); + private static final Revision REV = Revision.valueOf("2013-06-18"); private static final StatementStreamSource BAR = sourceForResource("/model/bar.yang"); private static final StatementStreamSource BAZ = sourceForResource("/model/baz.yang"); @@ -79,7 +79,7 @@ public class YangParserWithContextTest { final SchemaContext context = reactor.buildEffective(); - final Module module = context.findModule("test1", QName.parseRevision("2013-06-18")).get(); + final Module module = context.findModule("test1", Revision.valueOf("2013-06-18")).get(); final LeafSchemaNode leaf = (LeafSchemaNode) module.getDataChildByName(QName.create(module.getQNameModule(), "id")); @@ -87,13 +87,13 @@ public class YangParserWithContextTest { final UnsignedIntegerTypeDefinition leafType = (UnsignedIntegerTypeDefinition) leaf.getType(); QName qname = leafType.getQName(); assertEquals(URI.create("urn:simple.demo.test1"), qname.getNamespace()); - assertEquals(Optional.of(QName.parseRevision("2013-06-18")), qname.getRevision()); + assertEquals(Optional.of(Revision.valueOf("2013-06-18")), qname.getRevision()); assertEquals("port-number", qname.getLocalName()); final UnsignedIntegerTypeDefinition leafBaseType = leafType.getBaseType(); qname = leafBaseType.getQName(); assertEquals(URI.create("urn:ietf:params:xml:ns:yang:ietf-inet-types"), qname.getNamespace()); - assertEquals(Optional.of(QName.parseRevision("2010-09-24")), qname.getRevision()); + assertEquals(Optional.of(Revision.valueOf("2010-09-24")), qname.getRevision()); assertEquals("port-number", qname.getLocalName()); final UnsignedIntegerTypeDefinition dscpExt = (UnsignedIntegerTypeDefinition) TestUtils.findTypedef( @@ -113,7 +113,7 @@ public class YangParserWithContextTest { reactor.addSources(BAZ, FOO, BAR, SUBFOO, test2); final SchemaContext context = reactor.buildEffective(); - final Module testModule = context.findModule("test2", QName.parseRevision("2013-06-18")).get(); + final Module testModule = context.findModule("test2", Revision.valueOf("2013-06-18")).get(); final Module contextModule = context.findModules(URI.create("urn:opendaylight.baz")).iterator().next(); assertNotNull(contextModule); final Set groupings = contextModule.getGroupings(); @@ -220,7 +220,7 @@ public class YangParserWithContextTest { reactor.addSources(BAZ, FOO, BAR, SUBFOO, test2); final SchemaContext context = reactor.buildEffective(); - final Module module = context.findModule("test2", QName.parseRevision("2013-06-18")).get(); + final Module module = context.findModule("test2", Revision.valueOf("2013-06-18")).get(); final ContainerSchemaNode peer = (ContainerSchemaNode) module.getDataChildByName(QName.create( module.getQNameModule(), "peer")); final ContainerSchemaNode destination = (ContainerSchemaNode) peer.getDataChildByName(QName.create( @@ -231,8 +231,7 @@ public class YangParserWithContextTest { // test grouping path final List path = new ArrayList<>(); - final QName qname = QName.create(URI.create("urn:opendaylight.baz"), QName.parseRevision("2013-02-27"), - "target"); + final QName qname = QName.create(URI.create("urn:opendaylight.baz"), Revision.valueOf("2013-02-27"), "target"); path.add(qname); final SchemaPath expectedPath = SchemaPath.create(path, true); assertEquals(expectedPath, usesNode.getGroupingPath()); @@ -297,20 +296,20 @@ public class YangParserWithContextTest { reactor.addSources(types, test3); final SchemaContext context = reactor.buildEffective(); - final Module module = context.findModule("test3", QName.parseRevision("2013-06-18")).get(); + final Module module = context.findModule("test3", Revision.valueOf("2013-06-18")).get(); final Set identities = module.getIdentities(); assertEquals(1, identities.size()); final IdentitySchemaNode identity = identities.iterator().next(); final QName idQName = identity.getQName(); assertEquals(URI.create("urn:simple.demo.test3"), idQName.getNamespace()); - assertEquals(Optional.of(QName.parseRevision("2013-06-18")), idQName.getRevision()); + assertEquals(Optional.of(Revision.valueOf("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(Optional.of(QName.parseRevision("2012-04-16")), idBaseQName.getRevision()); + assertEquals(Optional.of(Revision.valueOf("2012-04-16")), idBaseQName.getRevision()); assertEquals("service-type", idBaseQName.getLocalName()); } @@ -327,7 +326,7 @@ public class YangParserWithContextTest { final SchemaContext context = reactor.buildEffective(); - final Module module = context.findModule("test3", QName.parseRevision("2013-06-18")).get(); + final Module module = context.findModule("test3", Revision.valueOf("2013-06-18")).get(); final ContainerSchemaNode network = (ContainerSchemaNode) module.getDataChildByName(QName.create( module.getQNameModule(), "network")); final List unknownNodes = network.getUnknownSchemaNodes(); @@ -336,7 +335,7 @@ public class YangParserWithContextTest { final UnknownSchemaNode un = unknownNodes.get(0); final QName unType = un.getNodeType(); assertEquals(URI.create("urn:custom.types.demo"), unType.getNamespace()); - assertEquals(Optional.of(QName.parseRevision("2012-04-16")), unType.getRevision()); + assertEquals(Optional.of(Revision.valueOf("2012-04-16")), unType.getRevision()); assertEquals("mountpoint", unType.getLocalName()); assertEquals("point", un.getNodeParameter()); assertNotNull(un.getExtensionDefinition()); @@ -389,7 +388,7 @@ public class YangParserWithContextTest { reactor.addSources(bar, deviationTest); final SchemaContext context = reactor.buildEffective(); - final Module testModule = context.findModule("deviation-test", QName.parseRevision("2013-02-27")).get(); + final Module testModule = context.findModule("deviation-test", Revision.valueOf("2013-02-27")).get(); final Set deviations = testModule.getDeviations(); assertEquals(1, deviations.size()); final Deviation dev = deviations.iterator().next(); @@ -397,7 +396,7 @@ public class YangParserWithContextTest { assertEquals("system/user ref", dev.getReference()); final URI expectedNS = URI.create("urn:opendaylight.bar"); - final Date expectedRev = QName.parseRevision("2013-07-03"); + final Revision expectedRev = Revision.valueOf("2013-07-03"); final List path = new ArrayList<>(); path.add(QName.create(expectedNS, expectedRev, "interfaces")); path.add(QName.create(expectedNS, expectedRev, "ifEntry")); diff --git a/yang/yang-parser-spi/src/main/java/org/opendaylight/yangtools/yang/parser/spi/meta/NamespaceKeyCriterion.java b/yang/yang-parser-spi/src/main/java/org/opendaylight/yangtools/yang/parser/spi/meta/NamespaceKeyCriterion.java index 3c8ff18bee..c285614482 100644 --- a/yang/yang-parser-spi/src/main/java/org/opendaylight/yangtools/yang/parser/spi/meta/NamespaceKeyCriterion.java +++ b/yang/yang-parser-spi/src/main/java/org/opendaylight/yangtools/yang/parser/spi/meta/NamespaceKeyCriterion.java @@ -13,6 +13,7 @@ import com.google.common.annotations.Beta; import com.google.common.base.MoreObjects; import com.google.common.base.MoreObjects.ToStringHelper; import javax.annotation.Nonnull; +import org.opendaylight.yangtools.yang.common.Revision; import org.opendaylight.yangtools.yang.model.api.ModuleIdentifier; /** @@ -38,7 +39,7 @@ public abstract class NamespaceKeyCriterion { @Override public ModuleIdentifier select(final ModuleIdentifier first, final ModuleIdentifier second) { - return ModuleIdentifier.compareRevisions(first.getRevision(), second.getRevision()) >= 0 ? first : second; + return Revision.compare(first.getRevision(), second.getRevision()) >= 0 ? first : second; } @Override diff --git a/yang/yang-parser-spi/src/main/java/org/opendaylight/yangtools/yang/parser/spi/meta/StmtContextUtils.java b/yang/yang-parser-spi/src/main/java/org/opendaylight/yangtools/yang/parser/spi/meta/StmtContextUtils.java index 1cdbff5883..cd91b51cc2 100644 --- a/yang/yang-parser-spi/src/main/java/org/opendaylight/yangtools/yang/parser/spi/meta/StmtContextUtils.java +++ b/yang/yang-parser-spi/src/main/java/org/opendaylight/yangtools/yang/parser/spi/meta/StmtContextUtils.java @@ -14,12 +14,12 @@ import com.google.common.base.Splitter; import com.google.common.base.Strings; import com.google.common.collect.ImmutableList; import java.util.Collection; -import java.util.Date; +import java.util.Optional; import java.util.Set; import java.util.function.Predicate; import org.opendaylight.yangtools.yang.common.QName; import org.opendaylight.yangtools.yang.common.QNameModule; -import org.opendaylight.yangtools.yang.common.SimpleDateFormatUtil; +import org.opendaylight.yangtools.yang.common.Revision; import org.opendaylight.yangtools.yang.common.YangVersion; import org.opendaylight.yangtools.yang.model.api.YangStmtMapping; import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement; @@ -553,25 +553,25 @@ public final class StmtContextUtils { } // creates SourceIdentifier for a submodule - final Date revision = getLatestRevision(root.declaredSubstatements()); - return revision == null ? RevisionSourceIdentifier.create((String) root.getStatementArgument()) - : RevisionSourceIdentifier.create((String) root.getStatementArgument(), - SimpleDateFormatUtil.getRevisionFormat().format(revision)); + final Optional revision = getLatestRevision(root.declaredSubstatements()); + return revision.isPresent() + ? RevisionSourceIdentifier.create((String) root.getStatementArgument(), revision.get().toString()) + : RevisionSourceIdentifier.create((String) root.getStatementArgument()); } - public static Date getLatestRevision(final Iterable> subStmts) { - Date revision = null; + public static Optional getLatestRevision(final Iterable> subStmts) { + Revision revision = null; for (final StmtContext subStmt : subStmts) { if (subStmt.getPublicDefinition().getDeclaredRepresentationClass().isAssignableFrom( RevisionStatement.class)) { if (revision == null && subStmt.getStatementArgument() != null) { - revision = (Date) subStmt.getStatementArgument(); + revision = (Revision) subStmt.getStatementArgument(); } else if (subStmt.getStatementArgument() != null - && ((Date) subStmt.getStatementArgument()).compareTo(revision) > 0) { - revision = (Date) subStmt.getStatementArgument(); + && ((Revision) subStmt.getStatementArgument()).compareTo(revision) > 0) { + revision = (Revision) subStmt.getStatementArgument(); } } } - return revision; + return Optional.ofNullable(revision); } } -- 2.36.6