X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=binding%2Fmdsal-binding-generator%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fmdsal%2Fbinding%2Fgenerator%2Fimpl%2Freactor%2FOriginalLink.java;h=a766ca45fb218844b284fc2f27129805feb7cf4a;hb=ecdcdb340457ded6898193197e88ea33c84d58ae;hp=3d9009a42b4c6dfc068e38f2f7bb22799df5178b;hpb=60039d4d027e172f6e1d644fb1c2fa60688c06c0;p=mdsal.git diff --git a/binding/mdsal-binding-generator/src/main/java/org/opendaylight/mdsal/binding/generator/impl/reactor/OriginalLink.java b/binding/mdsal-binding-generator/src/main/java/org/opendaylight/mdsal/binding/generator/impl/reactor/OriginalLink.java index 3d9009a42b..a766ca45fb 100644 --- a/binding/mdsal-binding-generator/src/main/java/org/opendaylight/mdsal/binding/generator/impl/reactor/OriginalLink.java +++ b/binding/mdsal-binding-generator/src/main/java/org/opendaylight/mdsal/binding/generator/impl/reactor/OriginalLink.java @@ -13,27 +13,29 @@ import com.google.common.base.MoreObjects; import com.google.common.base.MoreObjects.ToStringHelper; import org.eclipse.jdt.annotation.NonNull; import org.eclipse.jdt.annotation.Nullable; +import org.opendaylight.mdsal.binding.runtime.api.RuntimeType; import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement; /** * Link to the original definition of an {@link AbstractExplicitGenerator}. */ // FIXME: sealed when we have JDK17+ -abstract class OriginalLink> { - private static final class Complete> extends OriginalLink { - private final @NonNull AbstractExplicitGenerator original; +abstract class OriginalLink, R extends RuntimeType> { + private static final class Complete, R extends RuntimeType> + extends OriginalLink { + private final @NonNull AbstractExplicitGenerator original; - Complete(final AbstractExplicitGenerator original) { + Complete(final AbstractExplicitGenerator original) { this.original = requireNonNull(original); } @Override - AbstractExplicitGenerator previous() { + AbstractExplicitGenerator previous() { return original; } @Override - @NonNull AbstractExplicitGenerator original() { + @NonNull AbstractExplicitGenerator original() { return original; } @@ -43,21 +45,22 @@ abstract class OriginalLink> { } } - private static final class Partial> extends OriginalLink { - private final @NonNull AbstractExplicitGenerator previous; - private AbstractExplicitGenerator original; + private static final class Partial, R extends RuntimeType> + extends OriginalLink { + private final @NonNull AbstractExplicitGenerator previous; + private AbstractExplicitGenerator original; - Partial(final AbstractExplicitGenerator previous) { + Partial(final AbstractExplicitGenerator previous) { this.previous = requireNonNull(previous); } @Override - AbstractExplicitGenerator previous() { + AbstractExplicitGenerator previous() { return previous; } @Override - AbstractExplicitGenerator original() { + AbstractExplicitGenerator original() { if (original == null) { final var link = previous.originalLink(); if (link instanceof Complete || link.previous() != previous) { @@ -77,19 +80,19 @@ abstract class OriginalLink> { // Hidden on purpose } - static > @NonNull OriginalLink complete( - final AbstractExplicitGenerator original) { + static , R extends RuntimeType> @NonNull OriginalLink complete( + final AbstractExplicitGenerator original) { return new Complete<>(original); } - static > @NonNull OriginalLink partial( - final AbstractExplicitGenerator previous) { + static , R extends RuntimeType> @NonNull OriginalLink partial( + final AbstractExplicitGenerator previous) { return new Partial<>(previous); } - abstract @NonNull AbstractExplicitGenerator previous(); + abstract @NonNull AbstractExplicitGenerator previous(); - abstract @Nullable AbstractExplicitGenerator original(); + abstract @Nullable AbstractExplicitGenerator original(); abstract ToStringHelper addToStringAttributes(ToStringHelper helper);