*/
package org.opendaylight.mdsal.yanglib.rfc7895;
+import static java.util.Objects.requireNonNull;
+
import java.io.IOException;
+import java.util.ServiceLoader;
import org.eclipse.jdt.annotation.NonNullByDefault;
import org.kohsuke.MetaInfServices;
+import org.opendaylight.mdsal.binding.generator.api.BindingRuntimeGenerator;
import org.opendaylight.mdsal.yanglib.api.YangLibSupport;
import org.opendaylight.mdsal.yanglib.api.YangLibSupportFactory;
import org.opendaylight.yangtools.yang.model.parser.api.YangParserException;
@MetaInfServices
@NonNullByDefault
public final class YangModuleLibrarySupportFactory implements YangLibSupportFactory {
+ private final BindingRuntimeGenerator generator;
+
+ public YangModuleLibrarySupportFactory() {
+ this(ServiceLoader.load(BindingRuntimeGenerator.class).findFirst()
+ .orElseThrow(() -> new IllegalStateException("Failed to find a BindingRuntimeGenerator service")));
+ }
+
+ public YangModuleLibrarySupportFactory(final BindingRuntimeGenerator generator) {
+ this.generator = requireNonNull(generator);
+ }
+
@Override
public YangLibSupport createYangLibSupport(final YangParserFactory parserFactory)
throws YangParserException, IOException {
- return new YangModuleLibrarySupport(parserFactory);
+ return new YangModuleLibrarySupport(parserFactory, generator);
}
}