From 32fec636ad3113a3acc52d56410c5e1b90d647e0 Mon Sep 17 00:00:00 2001 From: Robert Varga Date: Sat, 16 Dec 2023 13:58:17 +0100 Subject: [PATCH] Unify GeneratedType verification We have number of places where we do verify a Type is a GeneratedType. Introduce AbstractExplicitGenerator.verifyGeneratedType() to reduce duplication and explicit casts. Change-Id: Idcdc2344d59befa2c39d74893348de6627b6c39d Signed-off-by: Robert Varga --- .../impl/reactor/AbstractCompositeGenerator.java | 7 ++----- .../impl/reactor/AbstractExplicitGenerator.java | 8 ++++++++ .../generator/impl/reactor/IdentityGenerator.java | 6 ++---- .../generator/impl/reactor/OpaqueObjectGenerator.java | 10 +++------- .../generator/impl/reactor/TypedefGenerator.java | 11 ++++------- 5 files changed, 19 insertions(+), 23 deletions(-) diff --git a/binding/mdsal-binding-generator/src/main/java/org/opendaylight/mdsal/binding/generator/impl/reactor/AbstractCompositeGenerator.java b/binding/mdsal-binding-generator/src/main/java/org/opendaylight/mdsal/binding/generator/impl/reactor/AbstractCompositeGenerator.java index 938412c1d5..37918184d9 100644 --- a/binding/mdsal-binding-generator/src/main/java/org/opendaylight/mdsal/binding/generator/impl/reactor/AbstractCompositeGenerator.java +++ b/binding/mdsal-binding-generator/src/main/java/org/opendaylight/mdsal/binding/generator/impl/reactor/AbstractCompositeGenerator.java @@ -19,7 +19,6 @@ import org.eclipse.jdt.annotation.NonNull; import org.eclipse.jdt.annotation.Nullable; import org.opendaylight.mdsal.binding.model.api.Enumeration; import org.opendaylight.mdsal.binding.model.api.GeneratedTransferObject; -import org.opendaylight.mdsal.binding.model.api.GeneratedType; import org.opendaylight.mdsal.binding.model.api.Type; import org.opendaylight.mdsal.binding.model.api.type.builder.GeneratedTypeBuilder; import org.opendaylight.mdsal.binding.model.ri.BindingTypes; @@ -172,16 +171,14 @@ public abstract class AbstractCompositeGenerator createBuilder(S statement); @Override final R createInternalRuntimeType(final AugmentResolver resolver, final S statement, final Type type) { - verify(type instanceof GeneratedType, "Unexpected type %s", type); - return createBuilder(statement).populate(resolver, this).build((GeneratedType) type); + return createBuilder(statement).populate(resolver, this).build(verifyGeneratedType(type)); } @Override diff --git a/binding/mdsal-binding-generator/src/main/java/org/opendaylight/mdsal/binding/generator/impl/reactor/AbstractExplicitGenerator.java b/binding/mdsal-binding-generator/src/main/java/org/opendaylight/mdsal/binding/generator/impl/reactor/AbstractExplicitGenerator.java index 609bdedca7..1ffd292865 100644 --- a/binding/mdsal-binding-generator/src/main/java/org/opendaylight/mdsal/binding/generator/impl/reactor/AbstractExplicitGenerator.java +++ b/binding/mdsal-binding-generator/src/main/java/org/opendaylight/mdsal/binding/generator/impl/reactor/AbstractExplicitGenerator.java @@ -17,6 +17,7 @@ import org.eclipse.jdt.annotation.NonNull; import org.eclipse.jdt.annotation.Nullable; import org.opendaylight.mdsal.binding.generator.impl.reactor.CollisionDomain.Member; import org.opendaylight.mdsal.binding.generator.impl.tree.StatementRepresentation; +import org.opendaylight.mdsal.binding.model.api.GeneratedType; import org.opendaylight.mdsal.binding.model.api.MethodSignature.ValueMechanics; import org.opendaylight.mdsal.binding.model.api.Type; import org.opendaylight.mdsal.binding.model.api.TypeMemberComment; @@ -366,4 +367,11 @@ public abstract class AbstractExplicitGenerator, R } @Override - final @NonNull R createExternalRuntimeType(final Type type) { - verify(type instanceof GeneratedType, "Unexpected type %s", type); - return createExternalRuntimeType((GeneratedType) type); + final R createExternalRuntimeType(final Type type) { + return createExternalRuntimeType(verifyGeneratedType(type)); } abstract @NonNull R createExternalRuntimeType(@NonNull GeneratedType type); @Override final R createInternalRuntimeType(final AugmentResolver resolver, final S statement, final Type type) { - verify(type instanceof GeneratedType, "Unexpected type %s", type); - return createInternalRuntimeType(statement, (GeneratedType) type); + return createInternalRuntimeType(statement, verifyGeneratedType(type)); } abstract @NonNull R createInternalRuntimeType(@NonNull S statement, @NonNull GeneratedType type); diff --git a/binding/mdsal-binding-generator/src/main/java/org/opendaylight/mdsal/binding/generator/impl/reactor/TypedefGenerator.java b/binding/mdsal-binding-generator/src/main/java/org/opendaylight/mdsal/binding/generator/impl/reactor/TypedefGenerator.java index c77394bd63..446ddfd75c 100644 --- a/binding/mdsal-binding-generator/src/main/java/org/opendaylight/mdsal/binding/generator/impl/reactor/TypedefGenerator.java +++ b/binding/mdsal-binding-generator/src/main/java/org/opendaylight/mdsal/binding/generator/impl/reactor/TypedefGenerator.java @@ -7,7 +7,6 @@ */ package org.opendaylight.mdsal.binding.generator.impl.reactor; -import static com.google.common.base.Verify.verify; import static com.google.common.base.Verify.verifyNotNull; import static java.util.Objects.requireNonNull; @@ -15,7 +14,6 @@ import java.util.ArrayList; import java.util.List; import org.opendaylight.mdsal.binding.generator.impl.rt.DefaultTypedefRuntimeType; import org.opendaylight.mdsal.binding.model.api.GeneratedTransferObject; -import org.opendaylight.mdsal.binding.model.api.GeneratedType; import org.opendaylight.mdsal.binding.model.api.Type; import org.opendaylight.mdsal.binding.model.api.YangSourceDefinition; import org.opendaylight.mdsal.binding.model.api.type.builder.GeneratedTOBuilder; @@ -64,7 +62,7 @@ final class TypedefGenerator extends AbstractTypeObjectGenerator derived : derivedGenerators) { + for (var derived : derivedGenerators) { derived.bindTypeDefinition(reference); } } @@ -85,14 +83,14 @@ final class TypedefGenerator extends AbstractTypeObjectGenerator typedef = statement().getTypeDefinition(); + final var typedef = statement().getTypeDefinition(); annotateDeprecatedIfNecessary(typedef, builder); addStringRegExAsConstant(builder, resolveRegExpressions(typedef)); addUnits(builder, typedef); @@ -130,8 +128,7 @@ final class TypedefGenerator extends AbstractTypeObjectGenerator