BUG-4688: align Optional/nullable Date usage
[yangtools.git] / yang / yang-parser-impl / src / main / java / org / opendaylight / yangtools / yang / parser / stmt / rfc6020 / effective / ImportEffectiveStatementImpl.java
index 82b173621b16cc397e345382cefc56cdc249b7eb..00d71e83f45270e0730e865d2a85fda1c87b18ed 100644 (file)
@@ -12,14 +12,15 @@ 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.model.api.ModuleIdentifier;
 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;
 import org.opendaylight.yangtools.yang.parser.spi.meta.MissingSubstatementException;
 import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext;
 import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContextUtils;
-import org.opendaylight.yangtools.yang.parser.spi.source.ImpPrefixToSemVerModuleIdentifier;
+import org.opendaylight.yangtools.yang.parser.spi.source.ImportPrefixToSemVerSourceIdentifier;
 import org.opendaylight.yangtools.yang.parser.spi.source.SourceException;
 
 public class ImportEffectiveStatementImpl extends DeclaredEffectiveStatementBase<String, ImportStatement>
@@ -50,9 +51,9 @@ public class ImportEffectiveStatementImpl extends DeclaredEffectiveStatementBase
             this.revision = revisionDateStmt == null ? getImportedRevision(ctx) : revisionDateStmt.argument();
             this.semVer = null;
         } else {
-            final ModuleIdentifier importedModuleIdentifier = ctx.getFromNamespace(
-                ImpPrefixToSemVerModuleIdentifier.class, prefix);
-            revision = importedModuleIdentifier.getRevision();
+            final SemVerSourceIdentifier importedModuleIdentifier = ctx.getFromNamespace(
+                ImportPrefixToSemVerSourceIdentifier.class, prefix);
+            revision = QName.parseRevision(importedModuleIdentifier.getRevision());
             semVer = importedModuleIdentifier.getSemanticVersion().orElse(null);
         }
 
@@ -72,7 +73,7 @@ public class ImportEffectiveStatementImpl extends DeclaredEffectiveStatementBase
         final QNameModule importedModule = StmtContextUtils.getModuleQNameByPrefix(ctx, this.prefix);
         SourceException.throwIfNull(importedModule, ctx.getStatementSourceReference(),
                 "Unable to find import of module %s with prefix %s.", this.moduleName, this.prefix);
-        return importedModule.getRevision();
+        return importedModule.getRevision().orElse(null);
     }
 
     @Override
@@ -81,8 +82,8 @@ public class ImportEffectiveStatementImpl extends DeclaredEffectiveStatementBase
     }
 
     @Override
-    public Date getRevision() {
-        return revision;
+    public Optional<Date> getRevision() {
+        return Optional.ofNullable(revision);
     }
 
     @Override