X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=dom%2Fmdsal-dom-spi%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fmdsal%2Fdom%2Fspi%2FFixedDOMSchemaService.java;h=c2d49c449237274506249139283002e760e31328;hb=e996a1b5aa1f8986deb917e0d1d77bd1dab0b82e;hp=42b364665a6864a7602dea3786d44b221ee2e513;hpb=eb776dbafa9dea22900fad6e13cf32beb0a98840;p=mdsal.git diff --git a/dom/mdsal-dom-spi/src/main/java/org/opendaylight/mdsal/dom/spi/FixedDOMSchemaService.java b/dom/mdsal-dom-spi/src/main/java/org/opendaylight/mdsal/dom/spi/FixedDOMSchemaService.java index 42b364665a..c2d49c4492 100644 --- a/dom/mdsal-dom-spi/src/main/java/org/opendaylight/mdsal/dom/spi/FixedDOMSchemaService.java +++ b/dom/mdsal-dom-spi/src/main/java/org/opendaylight/mdsal/dom/spi/FixedDOMSchemaService.java @@ -12,32 +12,33 @@ import static java.util.Objects.requireNonNull; import com.google.common.annotations.Beta; import com.google.common.util.concurrent.ListenableFuture; import java.util.List; -import org.eclipse.jdt.annotation.NonNull; +import java.util.function.Consumer; +import java.util.function.Supplier; +import org.eclipse.jdt.annotation.NonNullByDefault; import org.opendaylight.mdsal.dom.api.DOMSchemaService; import org.opendaylight.mdsal.dom.api.DOMYangTextSourceProvider; import org.opendaylight.yangtools.concepts.Registration; import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext; -import org.opendaylight.yangtools.yang.model.api.EffectiveModelContextListener; -import org.opendaylight.yangtools.yang.model.api.EffectiveModelContextProvider; -import org.opendaylight.yangtools.yang.model.repo.api.SourceIdentifier; -import org.opendaylight.yangtools.yang.model.repo.api.YangTextSchemaSource; +import org.opendaylight.yangtools.yang.model.api.source.SourceIdentifier; +import org.opendaylight.yangtools.yang.model.api.source.YangTextSource; import org.opendaylight.yangtools.yang.model.repo.spi.SchemaSourceProvider; /** * {@link DOMSchemaService} (and {@link DOMYangTextSourceProvider}) implementations backed by a - * {@link EffectiveModelContextProvider} (and {@link SchemaSourceProvider}) which are known to be fixed and never change - * schemas. + * {@code Supplier} (and {@link SchemaSourceProvider}) which are known to be fixed and never + * change schemas. * * @author Michael Vorburger.ch */ @Beta -public class FixedDOMSchemaService extends AbstractDOMSchemaService { +@NonNullByDefault +public sealed class FixedDOMSchemaService implements DOMSchemaService { private static final class WithYangTextSources extends FixedDOMSchemaService implements DOMYangTextSourceProvider { - private final @NonNull SchemaSourceProvider schemaSourceProvider; + private final SchemaSourceProvider schemaSourceProvider; - WithYangTextSources(final EffectiveModelContextProvider schemaContextProvider, - final SchemaSourceProvider schemaSourceProvider) { - super(schemaContextProvider); + WithYangTextSources(final Supplier modelContextSupplier, + final SchemaSourceProvider schemaSourceProvider) { + super(modelContextSupplier); this.schemaSourceProvider = requireNonNull(schemaSourceProvider); } @@ -47,39 +48,39 @@ public class FixedDOMSchemaService extends AbstractDOMSchemaService { } @Override - public ListenableFuture getSource(final SourceIdentifier sourceIdentifier) { + public ListenableFuture getSource(final SourceIdentifier sourceIdentifier) { return schemaSourceProvider.getSource(sourceIdentifier); } } - private final @NonNull EffectiveModelContextProvider schemaContextProvider; + private final Supplier modelContextSupplier; - private FixedDOMSchemaService(final EffectiveModelContextProvider schemaContextProvider) { - this.schemaContextProvider = requireNonNull(schemaContextProvider); + private FixedDOMSchemaService(final Supplier modelContextSupplier) { + this.modelContextSupplier = requireNonNull(modelContextSupplier); } - public static @NonNull DOMSchemaService of(final EffectiveModelContext effectiveModel) { + public static DOMSchemaService of(final EffectiveModelContext effectiveModel) { final var checked = requireNonNull(effectiveModel); - return of(() -> checked); + return new FixedDOMSchemaService(() -> checked); } - public static @NonNull DOMSchemaService of(final EffectiveModelContextProvider schemaContextProvider) { - return new FixedDOMSchemaService(schemaContextProvider); + public static DOMSchemaService of(final Supplier modelContextSupplier) { + return new FixedDOMSchemaService(modelContextSupplier); } - public static @NonNull DOMSchemaService of(final EffectiveModelContextProvider schemaContextProvider, - final SchemaSourceProvider yangTextSourceProvider) { - return new WithYangTextSources(schemaContextProvider, requireNonNull(yangTextSourceProvider)); + public static DOMSchemaService of(final Supplier modelContextSupplier, + final SchemaSourceProvider yangTextSourceProvider) { + return new WithYangTextSources(modelContextSupplier, requireNonNull(yangTextSourceProvider)); } @Override - public final @NonNull EffectiveModelContext getGlobalContext() { - return schemaContextProvider.getEffectiveModelContext(); + public final EffectiveModelContext getGlobalContext() { + return modelContextSupplier.get(); } @Override - public final Registration registerSchemaContextListener(final EffectiveModelContextListener listener) { - listener.onModelContextUpdated(getGlobalContext()); + public final Registration registerSchemaContextListener(final Consumer listener) { + listener.accept(getGlobalContext()); return () -> { }; } }