Remove StatementParserMode.SEMVER_MODE
[yangtools.git] / parser / yang-parser-impl / src / main / java / org / opendaylight / yangtools / yang / parser / repo / AssembleSources.java
index 2b04e8e4ddc8fa0b637f40e180a09401816dcecc..5684f57f874498c0e08b233c244888e92db1e3fd 100644 (file)
@@ -18,13 +18,10 @@ import java.util.List;
 import java.util.Map;
 import java.util.Map.Entry;
 import org.eclipse.jdt.annotation.NonNull;
-import org.opendaylight.yangtools.concepts.SemVer;
 import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext;
 import org.opendaylight.yangtools.yang.model.repo.api.SchemaContextFactoryConfiguration;
 import org.opendaylight.yangtools.yang.model.repo.api.SchemaResolutionException;
-import org.opendaylight.yangtools.yang.model.repo.api.SemVerSourceIdentifier;
 import org.opendaylight.yangtools.yang.model.repo.api.SourceIdentifier;
-import org.opendaylight.yangtools.yang.model.repo.api.StatementParserMode;
 import org.opendaylight.yangtools.yang.parser.api.YangParser;
 import org.opendaylight.yangtools.yang.parser.api.YangParserException;
 import org.opendaylight.yangtools.yang.parser.api.YangParserFactory;
@@ -46,13 +43,9 @@ final class AssembleSources implements AsyncFunction<List<IRSchemaSource>, Effec
             final @NonNull SchemaContextFactoryConfiguration config) {
         this.parserFactory = parserFactory;
         this.config = config;
-        switch (config.getStatementParserMode()) {
-            case SEMVER_MODE:
-                this.getIdentifier = AssembleSources::getSemVerIdentifier;
-                break;
-            default:
-                this.getIdentifier = IRSchemaSource::getIdentifier;
-        }
+        getIdentifier = switch (config.getStatementParserMode()) {
+            case DEFAULT_MODE -> IRSchemaSource::getIdentifier;
+        };
     }
 
     @Override
@@ -64,9 +57,10 @@ final class AssembleSources implements AsyncFunction<List<IRSchemaSource>, Effec
 
         LOG.debug("Resolving dependency reactor {}", deps);
 
-        final StatementParserMode statementParserMode = config.getStatementParserMode();
-        final DependencyResolver res = statementParserMode == StatementParserMode.SEMVER_MODE
-                ? SemVerDependencyResolver.create(deps) : RevisionDependencyResolver.create(deps);
+        final DependencyResolver res = switch (config.getStatementParserMode()) {
+            case DEFAULT_MODE -> RevisionDependencyResolver.create(deps);
+        };
+
         if (!res.getUnresolvedSources().isEmpty()) {
             LOG.debug("Omitting models {} due to unsatisfied imports {}", res.getUnresolvedSources(),
                 res.getUnsatisfiedImports());
@@ -90,19 +84,12 @@ final class AssembleSources implements AsyncFunction<List<IRSchemaSource>, Effec
         try {
             schemaContext = parser.buildEffectiveModel();
         } catch (final YangParserException e) {
+            if (e.getCause() instanceof ReactorException re) {
+                throw new SchemaResolutionException("Failed to resolve required models", re.getSourceIdentifier(), e);
+            }
             throw new SchemaResolutionException("Failed to resolve required models", e);
         }
 
         return immediateFluentFuture(schemaContext);
     }
-
-    private static SemVerSourceIdentifier getSemVerIdentifier(final IRSchemaSource source) {
-        final SourceIdentifier identifier = source.getIdentifier();
-        final SemVer semver = YangModelDependencyInfo.findSemanticVersion(source.getRootStatement(), identifier);
-        if (identifier instanceof SemVerSourceIdentifier && semver == null) {
-            return (SemVerSourceIdentifier) identifier;
-        }
-
-        return SemVerSourceIdentifier.create(identifier.getName(), identifier.getRevision(), semver);
-    }
-}
\ No newline at end of file
+}