Clean up use of Augmentation generics
[yangtools.git] / tools / yang-model-validator / src / main / java / org / opendaylight / yangtools / yang / validator / SystemTestUtils.java
index 8db35300baffffe9dae8f5a61a5cfc553ed7b7eb..e927855ac8946af4ea954c111a2cdba607bcb0c3 100644 (file)
@@ -32,8 +32,9 @@ import org.eclipse.jdt.annotation.NonNull;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.common.YangConstants;
 import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext;
-import org.opendaylight.yangtools.yang.model.repo.api.YangTextSchemaSource;
-import org.opendaylight.yangtools.yang.parser.api.YangParser;
+import org.opendaylight.yangtools.yang.model.api.stmt.FeatureSet;
+import org.opendaylight.yangtools.yang.model.spi.source.FileYangTextSource;
+import org.opendaylight.yangtools.yang.parser.api.YangParserConfiguration;
 import org.opendaylight.yangtools.yang.parser.api.YangParserException;
 import org.opendaylight.yangtools.yang.parser.api.YangParserFactory;
 
@@ -61,7 +62,8 @@ final class SystemTestUtils {
     };
 
     static EffectiveModelContext parseYangSources(final List<String> yangLibDirs, final List<String> yangTestFiles,
-            final Set<QName> supportedFeatures, final boolean recursiveSearch) throws IOException, YangParserException {
+            final Set<QName> supportedFeatures, final boolean recursiveSearch,
+            final boolean warnForUnkeyedLists) throws IOException, YangParserException {
         /*
          * Current dir "." should be always present implicitly in the list of
          * directories where dependencies are searched for
@@ -84,23 +86,24 @@ final class SystemTestUtils {
             }
         }
 
-        return parseYangSources(supportedFeatures, testFiles, libFiles);
+        return parseYangSources(supportedFeatures, testFiles, libFiles, warnForUnkeyedLists);
     }
 
     static EffectiveModelContext parseYangSources(final Set<QName> supportedFeatures, final List<File> testFiles,
-            final List<File> libFiles) throws IOException, YangParserException {
+            final List<File> libFiles,  final boolean warnForUnkeyedLists) throws IOException, YangParserException {
         checkArgument(!testFiles.isEmpty(), "No yang sources");
 
-        final YangParser parser = PARSER_FACTORY.createParser();
+        final var configuration = YangParserConfiguration.builder().warnForUnkeyedLists(warnForUnkeyedLists).build();
+        final var parser = PARSER_FACTORY.createParser(configuration);
         if (supportedFeatures != null) {
-            parser.setSupportedFeatures(supportedFeatures);
+            parser.setSupportedFeatures(FeatureSet.of(supportedFeatures));
         }
 
-        for (File file : testFiles) {
-            parser.addSource(YangTextSchemaSource.forFile(file));
+        for (var file : testFiles) {
+            parser.addSource(new FileYangTextSource(file.toPath()));
         }
-        for (File file : libFiles) {
-            parser.addLibSource(YangTextSchemaSource.forFile(file));
+        for (var file : libFiles) {
+            parser.addLibSource(new FileYangTextSource(file.toPath()));
         }
 
         return parser.buildEffectiveModel();