Hide extractYangModuleInfo()
[mdsal.git] / binding / mdsal-binding-runtime-spi / src / main / java / org / opendaylight / mdsal / binding / runtime / spi / BindingRuntimeHelpers.java
index 62c36378ab99b3318aab5b605beedef12923267d..d724dd498f0e5699ef7d93f646df969fd2a3ac39 100644 (file)
@@ -20,8 +20,8 @@ import org.opendaylight.mdsal.binding.runtime.api.ModuleInfoSnapshot;
 import org.opendaylight.mdsal.binding.spec.reflect.BindingReflections;
 import org.opendaylight.yangtools.yang.binding.YangModuleInfo;
 import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext;
-import org.opendaylight.yangtools.yang.model.parser.api.YangParserException;
-import org.opendaylight.yangtools.yang.model.parser.api.YangParserFactory;
+import org.opendaylight.yangtools.yang.parser.api.YangParserException;
+import org.opendaylight.yangtools.yang.parser.api.YangParserFactory;
 
 /**
  * Simple helpers to help with reconstruction of BindingRuntimeContext from generated binding classes. These involve
@@ -75,6 +75,20 @@ public final class BindingRuntimeHelpers {
         }
     }
 
+    public static @NonNull BindingRuntimeContext createRuntimeContext(
+            final Collection<? extends YangModuleInfo> infos) {
+        final ModuleInfoSnapshot snapshot;
+
+        try {
+            snapshot = prepareContext(ServiceLoaderState.ParserFactory.INSTANCE, infos);
+        } catch (YangParserException e) {
+            throw new IllegalStateException("Failed to parse models", e);
+        }
+
+        return new DefaultBindingRuntimeContext(
+            ServiceLoaderState.Generator.INSTANCE.generateTypeMapping(snapshot.getEffectiveModelContext()), snapshot);
+    }
+
     public static @NonNull BindingRuntimeContext createRuntimeContext(final YangParserFactory parserFactory,
             final BindingRuntimeGenerator generator, final Class<?>... classes) throws YangParserException {
         return createRuntimeContext(parserFactory, generator, Arrays.asList(classes));
@@ -89,7 +103,7 @@ public final class BindingRuntimeHelpers {
     }
 
     @SuppressWarnings("checkstyle:IllegalCatch")
-    static @NonNull YangModuleInfo extractYangModuleInfo(final Class<?> clazz) {
+    private static @NonNull YangModuleInfo extractYangModuleInfo(final Class<?> clazz) {
         try {
             return BindingReflections.getModuleInfo(clazz);
         } catch (Exception e) {