*/
package org.opendaylight.mdsal.yanglib.rfc7895;
+import static java.util.Objects.requireNonNull;
+
+import com.google.common.annotations.Beta;
import java.io.IOException;
+import java.util.ServiceLoader;
import org.eclipse.jdt.annotation.NonNullByDefault;
import org.kohsuke.MetaInfServices;
+import org.opendaylight.binding.runtime.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;
import org.opendaylight.yangtools.yang.model.parser.api.YangParserFactory;
-import org.opendaylight.yangtools.yang.model.parser.api.YangSyntaxErrorException;
+@Beta
@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 YangSyntaxErrorException, YangParserException, IOException {
- return new YangModuleLibrarySupport(parserFactory);
-
+ throws YangParserException, IOException {
+ return new YangModuleLibrarySupport(parserFactory, generator);
}
}