import static java.util.Objects.requireNonNull;
import com.google.common.annotations.Beta;
+import com.google.common.base.Throwables;
import java.io.IOException;
import java.util.HashMap;
import java.util.HashSet;
import org.opendaylight.mdsal.binding.runtime.api.ModuleInfoSnapshot;
import org.opendaylight.mdsal.binding.spec.reflect.BindingReflections;
import org.opendaylight.yangtools.concepts.CheckedBuilder;
+import org.opendaylight.yangtools.yang.binding.BindingObject;
import org.opendaylight.yangtools.yang.binding.YangModuleInfo;
import org.opendaylight.yangtools.yang.model.parser.api.YangParser;
import org.opendaylight.yangtools.yang.model.parser.api.YangParserException;
this.parserFactory = requireNonNull(parserFactory);
}
+ @SuppressWarnings("checkstyle:illegalCatch")
+ public @NonNull ModuleInfoSnapshotBuilder add(final Class<? extends BindingObject> clazz) {
+ final YangModuleInfo moduleInfo;
+ try {
+ moduleInfo = BindingReflections.getModuleInfo(clazz);
+ } catch (Exception e) {
+ Throwables.throwIfUnchecked(e);
+ throw new IllegalStateException("Failed to introspect " + clazz, e);
+ }
+
+ return add(moduleInfo);
+ }
+
+ @SuppressWarnings("unchecked")
+ public @NonNull ModuleInfoSnapshotBuilder add(final Class<? extends BindingObject>... classes) {
+ for (Class<? extends BindingObject> clazz : classes) {
+ add(clazz);
+ }
+ return this;
+ }
+
public @NonNull ModuleInfoSnapshotBuilder add(final YangModuleInfo info) {
ModuleInfoSnapshotResolver.flatDependencies(moduleInfos, info);
return this;
import org.opendaylight.mdsal.binding.runtime.spi.ModuleInfoSnapshotBuilder;
import org.opendaylight.mdsal.yanglib.api.SchemaContextResolver;
import org.opendaylight.mdsal.yanglib.api.YangLibSupport;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.library.rev160621.$YangModuleInfoImpl;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.library.rev160621.ModulesState;
import org.opendaylight.yangtools.rfc8528.data.api.MountPointContextFactory;
import org.opendaylight.yangtools.rfc8528.data.api.MountPointIdentifier;
public YangModuleLibrarySupport(final YangParserFactory parserFactory, final BindingRuntimeGenerator generator,
final BindingCodecTreeFactory codecFactory) throws YangParserException {
final ModuleInfoSnapshot snapshot = new ModuleInfoSnapshotBuilder(parserFactory)
- .add($YangModuleInfoImpl.getInstance())
+ .add(ModulesState.class)
.build();
context = snapshot.getEffectiveModelContext();
import org.opendaylight.mdsal.binding.runtime.spi.ModuleInfoSnapshotBuilder;
import org.opendaylight.mdsal.yanglib.api.SchemaContextResolver;
import org.opendaylight.mdsal.yanglib.api.YangLibSupport;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.library.rev190104.$YangModuleInfoImpl;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.library.rev190104.ModulesState;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.library.rev190104.YangLibrary;
import org.opendaylight.yangtools.rfc8528.data.api.MountPointContextFactory;
public YangLibrarySupport(final YangParserFactory parserFactory, final BindingRuntimeGenerator generator,
final BindingCodecTreeFactory codecFactory) throws YangParserException {
final ModuleInfoSnapshot snapshot = new ModuleInfoSnapshotBuilder(parserFactory)
- .add($YangModuleInfoImpl.getInstance())
+ .add(YangLibrary.class)
.build();
context = snapshot.getEffectiveModelContext();