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>
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);
}
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
}
@Override
- public Date getRevision() {
- return revision;
+ public Optional<Date> getRevision() {
+ return Optional.ofNullable(revision);
}
@Override