From 6c92275ae2b3c6ce597c0c0f7a915ec911aacf21 Mon Sep 17 00:00:00 2001 From: Robert Varga Date: Fri, 12 Aug 2022 22:41:15 +0200 Subject: [PATCH] Share AbstractExplicitGenerator.runtimeJavaType() Most implementations do the same thing, pull the implementation down into the abstract class. Change-Id: Iaf0b6cee34e62c89ea3d34b8c83fa4f02bce913e Signed-off-by: Robert Varga --- .../reactor/AbstractCompositeGenerator.java | 65 +++++++++---------- .../reactor/AbstractExplicitGenerator.java | 4 +- .../impl/reactor/IdentityGenerator.java | 10 +-- .../generator/impl/reactor/KeyGenerator.java | 20 ++---- .../impl/reactor/OpaqueObjectGenerator.java | 10 +-- 5 files changed, 42 insertions(+), 67 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 d7552006eb..d63e6cf438 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 @@ -160,11 +160,6 @@ public abstract class AbstractCompositeGenerator augments() { return augments; } @@ -199,10 +194,10 @@ public abstract class AbstractCompositeGenerator findGenerator(final MatchStrategy childStrategy, // TODO: Wouldn't this method be nicer with Deque> ? final List> stmtPath, final int offset) { - final EffectiveStatement stmt = stmtPath.get(offset); + final var stmt = stmtPath.get(offset); // Try direct children first, which is simple - AbstractExplicitGenerator ret = childStrategy.findGenerator(stmt, childGenerators); + var ret = childStrategy.findGenerator(stmt, childGenerators); if (ret != null) { final int next = offset + 1; if (stmtPath.size() == next) { @@ -254,17 +249,17 @@ public abstract class AbstractCompositeGenerator tmp = new ArrayList<>(); - for (EffectiveStatement stmt : statement().effectiveSubstatements()) { + final var tmp = new ArrayList(); + for (var stmt : statement().effectiveSubstatements()) { if (stmt instanceof UsesEffectiveStatement uses) { - final GroupingGenerator grouping = context.resolveTreeScoped(GroupingGenerator.class, uses.argument()); + final var grouping = context.resolveTreeScoped(GroupingGenerator.class, uses.argument()); tmp.add(grouping); // Trigger resolution of uses/augment statements. This looks like guesswork, but there may be multiple // 'augment' statements in a 'uses' statement and keeping a ListMultimap here seems wasteful. for (Generator gen : this) { - if (gen instanceof UsesAugmentGenerator) { - ((UsesAugmentGenerator) gen).resolveGrouping(uses, grouping); + if (gen instanceof UsesAugmentGenerator usesGen) { + usesGen.resolveGrouping(uses, grouping); } } } @@ -273,12 +268,12 @@ public abstract class AbstractCompositeGenerator requirements) { - for (Generator child : childGenerators) { - if (child instanceof UsesAugmentGenerator) { - requirements.add(((UsesAugmentGenerator) child).startLinkage()); + for (var child : childGenerators) { + if (child instanceof UsesAugmentGenerator uses) { + requirements.add(uses.startLinkage()); } - if (child instanceof AbstractCompositeGenerator) { - ((AbstractCompositeGenerator) child).startUsesAugmentLinkage(requirements); + if (child instanceof AbstractCompositeGenerator composite) { + composite.startUsesAugmentLinkage(requirements); } } } @@ -321,11 +316,11 @@ public abstract class AbstractCompositeGenerator composite) { if (unlinkedComposites.isEmpty()) { unlinkedComposites = new ArrayList<>(); } - unlinkedComposites.add((AbstractCompositeGenerator) child); + unlinkedComposites.add(composite); } } } @@ -392,7 +387,7 @@ public abstract class AbstractCompositeGenerator findSchemaTreeGenerator(final QName qname) { - final AbstractExplicitGenerator found = super.findSchemaTreeGenerator(qname); + final var found = super.findSchemaTreeGenerator(qname); return found != null ? found : findInferredGenerator(qname); } @@ -407,7 +402,7 @@ public abstract class AbstractCompositeGenerator) child).addAsGetterMethod(builder, builderFactory); + if (child instanceof AbstractExplicitGenerator explicit) { + explicit.addAsGetterMethod(builder, builderFactory); } - final GeneratedType enclosedType = child.enclosedType(builderFactory); - if (enclosedType instanceof GeneratedTransferObject) { - builder.addEnclosingTransferObject((GeneratedTransferObject) enclosedType); - } else if (enclosedType instanceof Enumeration) { - builder.addEnumeration((Enumeration) enclosedType); + final var enclosedType = child.enclosedType(builderFactory); + if (enclosedType instanceof GeneratedTransferObject gto) { + builder.addEnclosingTransferObject(gto); + } else if (enclosedType instanceof Enumeration enumeration) { + builder.addEnumeration(enumeration); } else { verify(enclosedType == null, "Unhandled enclosed type %s in %s", enclosedType, child); } @@ -596,9 +591,9 @@ public abstract class AbstractCompositeGenerator stmt) { - if (stmt instanceof AddedByUsesAware) { - if (((AddedByUsesAware) stmt).isAddedByUses() - || stmt instanceof CopyableNode && ((CopyableNode) stmt).isAugmenting()) { + if (stmt instanceof AddedByUsesAware aware) { + if (aware.isAddedByUses() + || stmt instanceof CopyableNode copyable && copyable.isAugmenting()) { return false; } } @@ -606,10 +601,10 @@ public abstract class AbstractCompositeGenerator stmt) { - return stmt instanceof AddedByUsesAware && ((AddedByUsesAware) stmt).isAddedByUses(); + return stmt instanceof AddedByUsesAware aware && aware.isAddedByUses(); } private static boolean isAugmenting(final EffectiveStatement stmt) { - return stmt instanceof CopyableNode && ((CopyableNode) stmt).isAugmenting(); + return stmt instanceof CopyableNode copyable && copyable.isAugmenting(); } } 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 39456cbbaa..ad1f91154f 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 @@ -112,7 +112,9 @@ public abstract class AbstractExplicitGenerator leafNames = statement().argument(); - for (Generator listChild : listGen) { - if (listChild instanceof LeafGenerator) { - final LeafGenerator leafGen = (LeafGenerator) listChild; + final var leafNames = statement().argument(); + for (var listChild : listGen) { + if (listChild instanceof LeafGenerator leafGen) { final QName qname = leafGen.statement().argument(); if (leafNames.contains(qname)) { - final GeneratedPropertyBuilder prop = builder + final var prop = builder .addProperty(BindingMapping.getPropertyName(qname.getLocalName())) .setReturnType(leafGen.methodReturnType(builderFactory)) .setReadOnly(true); @@ -77,11 +72,6 @@ final class KeyGenerator extends AbstractExplicitGenerator, R @Override GeneratedType createTypeImpl(final TypeBuilderFactory builderFactory) { - final GeneratedTypeBuilder builder = builderFactory.newGeneratedTypeBuilder(typeName()); + final var builder = builderFactory.newGeneratedTypeBuilder(typeName()); builder.addImplementsType(BindingTypes.opaqueObject(builder)); addImplementsChildOf(builder); defaultImplementedInterace(builder); annotateDeprecatedIfNecessary(builder); - final ModuleGenerator module = currentModule(); + final var module = currentModule(); module.addQNameConstant(builder, localName()); builderFactory.addCodegenInformation(module, statement(), builder); @@ -96,11 +95,6 @@ abstract class OpaqueObjectGenerator, R constructRequireImpl(builder, returnType); } - @Override - final GeneratedType runtimeJavaType() { - return generatedType().orElse(null); - } - @Override final @NonNull R createExternalRuntimeType(final Type type) { verify(type instanceof GeneratedType, "Unexpected type %s", type); -- 2.36.6