X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=yanglib%2Fmdsal-yanglib-rfc7895%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fmdsal%2Fyanglib%2Frfc7895%2FYangModuleLibrarySupportFactory.java;h=a6e38c60c568fc1a1cd6371fe3308639197e58a3;hb=refs%2Fchanges%2F28%2F87828%2F25;hp=147921821773d1459873bd855985d41349c7bba7;hpb=b7f26a0e6a877bdb9970cd4c7609029eacaacd05;p=mdsal.git diff --git a/yanglib/mdsal-yanglib-rfc7895/src/main/java/org/opendaylight/mdsal/yanglib/rfc7895/YangModuleLibrarySupportFactory.java b/yanglib/mdsal-yanglib-rfc7895/src/main/java/org/opendaylight/mdsal/yanglib/rfc7895/YangModuleLibrarySupportFactory.java index 1479218217..a6e38c60c5 100644 --- a/yanglib/mdsal-yanglib-rfc7895/src/main/java/org/opendaylight/mdsal/yanglib/rfc7895/YangModuleLibrarySupportFactory.java +++ b/yanglib/mdsal-yanglib-rfc7895/src/main/java/org/opendaylight/mdsal/yanglib/rfc7895/YangModuleLibrarySupportFactory.java @@ -7,22 +7,35 @@ */ 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; import org.opendaylight.yangtools.yang.model.parser.api.YangParserFactory; -import org.opendaylight.yangtools.yang.model.parser.api.YangSyntaxErrorException; @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); } }