From c3dbaeb04652650784327d0db021ff772ae585f4 Mon Sep 17 00:00:00 2001 From: Robert Varga Date: Fri, 18 Nov 2022 02:21:02 +0100 Subject: [PATCH] Rename Enumeration to EnumTypeObject Enumeration is a troublesome name, let's use a more regular EnumTypeObject, which follows the TypeObject naming. Change-Id: I2581d760db8597f7ccfe6f0d2c68e28423fbea5d Signed-off-by: Robert Varga --- .../mdsal/binding/dom/codec/impl/EnumerationCodec.java | 8 ++++---- .../binding/dom/codec/impl/EnumerationCodecTest.java | 4 ++-- .../mdsal/binding/java/api/generator/EnumTemplate.xtend | 6 +++++- .../opendaylight/yangtools/yang/binding/CodeHelpers.java | 8 ++++---- .../binding/{Enumeration.java => EnumTypeObject.java} | 5 +---- .../opendaylight/yangtools/yang/binding/TypeObject.java | 2 +- .../yangtools/yang/binding/CodeHelpersTest.java | 4 ++-- 7 files changed, 19 insertions(+), 18 deletions(-) rename binding/yang-binding/src/main/java/org/opendaylight/yangtools/yang/binding/{Enumeration.java => EnumTypeObject.java} (87%) diff --git a/binding/mdsal-binding-dom-codec/src/main/java/org/opendaylight/mdsal/binding/dom/codec/impl/EnumerationCodec.java b/binding/mdsal-binding-dom-codec/src/main/java/org/opendaylight/mdsal/binding/dom/codec/impl/EnumerationCodec.java index 1a25ea05d4..aa77aa8d40 100644 --- a/binding/mdsal-binding-dom-codec/src/main/java/org/opendaylight/mdsal/binding/dom/codec/impl/EnumerationCodec.java +++ b/binding/mdsal-binding-dom-codec/src/main/java/org/opendaylight/mdsal/binding/dom/codec/impl/EnumerationCodec.java @@ -20,7 +20,7 @@ import java.util.Set; import java.util.concurrent.ExecutionException; import java.util.stream.Collectors; import org.eclipse.jdt.annotation.NonNull; -import org.opendaylight.yangtools.yang.binding.Enumeration; +import org.opendaylight.yangtools.yang.binding.EnumTypeObject; import org.opendaylight.yangtools.yang.model.api.type.EnumTypeDefinition; import org.opendaylight.yangtools.yang.model.api.type.EnumTypeDefinition.EnumPair; import org.slf4j.Logger; @@ -56,9 +56,9 @@ final class EnumerationCodec extends SchemaUnawareCodec { final Map> mapping = Maps.uniqueIndex(Arrays.asList(enumType.getEnumConstants()), value -> { - checkArgument(value instanceof Enumeration, - "Enumeration constant %s.%s is not implementing Enumeration", enumType.getName(), value); - return ((Enumeration) value).getName(); + checkArgument(value instanceof EnumTypeObject, + "Enumeration constant %s.%s is not implementing EnumTypeObject", enumType.getName(), value); + return ((EnumTypeObject) value).getName(); }); // Check if mapping is a bijection diff --git a/binding/mdsal-binding-dom-codec/src/test/java/org/opendaylight/mdsal/binding/dom/codec/impl/EnumerationCodecTest.java b/binding/mdsal-binding-dom-codec/src/test/java/org/opendaylight/mdsal/binding/dom/codec/impl/EnumerationCodecTest.java index 30d17ff6b7..b6fc7609b3 100644 --- a/binding/mdsal-binding-dom-codec/src/test/java/org/opendaylight/mdsal/binding/dom/codec/impl/EnumerationCodecTest.java +++ b/binding/mdsal-binding-dom-codec/src/test/java/org/opendaylight/mdsal/binding/dom/codec/impl/EnumerationCodecTest.java @@ -13,12 +13,12 @@ import static org.mockito.Mockito.mock; import com.google.common.collect.ImmutableList; import org.junit.Test; -import org.opendaylight.yangtools.yang.binding.Enumeration; +import org.opendaylight.yangtools.yang.binding.EnumTypeObject; import org.opendaylight.yangtools.yang.model.api.type.EnumTypeDefinition; import org.opendaylight.yangtools.yang.model.api.type.EnumTypeDefinition.EnumPair; public class EnumerationCodecTest { - private enum TestEnum implements Enumeration { + private enum TestEnum implements EnumTypeObject { ENUM; @Override diff --git a/binding/mdsal-binding-java-api-generator/src/main/java/org/opendaylight/mdsal/binding/java/api/generator/EnumTemplate.xtend b/binding/mdsal-binding-java-api-generator/src/main/java/org/opendaylight/mdsal/binding/java/api/generator/EnumTemplate.xtend index c382c0902f..b6d3fd7847 100644 --- a/binding/mdsal-binding-java-api-generator/src/main/java/org/opendaylight/mdsal/binding/java/api/generator/EnumTemplate.xtend +++ b/binding/mdsal-binding-java-api-generator/src/main/java/org/opendaylight/mdsal/binding/java/api/generator/EnumTemplate.xtend @@ -12,11 +12,15 @@ import static org.opendaylight.mdsal.binding.model.ri.Types.STRING; import org.opendaylight.mdsal.binding.model.api.Enumeration import org.opendaylight.mdsal.binding.model.api.GeneratedType +import org.opendaylight.mdsal.binding.model.api.JavaTypeName +import org.opendaylight.yangtools.yang.binding.EnumTypeObject /** * Template for generating JAVA enumeration type. */ class EnumTemplate extends BaseTemplate { + static val ENUM_TYPE_OBJECT = JavaTypeName.create(EnumTypeObject) + /** * Enumeration which will be transformed to JAVA source code for enumeration */ @@ -66,7 +70,7 @@ class EnumTemplate extends BaseTemplate { override body() ''' «enums.formatDataForJavaDoc.wrapToDocumentation» «generatedAnnotation» - public enum «enums.name» implements «org.opendaylight.yangtools.yang.binding.Enumeration.importedName» { + public enum «enums.name» implements «ENUM_TYPE_OBJECT.importedName» { «writeEnumeration(enums)» private final «STRING.importedNonNull» name; diff --git a/binding/yang-binding/src/main/java/org/opendaylight/yangtools/yang/binding/CodeHelpers.java b/binding/yang-binding/src/main/java/org/opendaylight/yangtools/yang/binding/CodeHelpers.java index 2b41164122..58ee21f082 100644 --- a/binding/yang-binding/src/main/java/org/opendaylight/yangtools/yang/binding/CodeHelpers.java +++ b/binding/yang-binding/src/main/java/org/opendaylight/yangtools/yang/binding/CodeHelpers.java @@ -383,7 +383,7 @@ public final class CodeHelpers { } /** - * Check that the specified {@link Enumeration} object is not {@code null}. This method is meant to be used with + * Check that the specified {@link EnumTypeObject} object is not {@code null}. This method is meant to be used with * {@code ofName(String)} and {@code ofValue(int)} static factory methods. * * @param obj enumeration object, possibly null @@ -391,7 +391,7 @@ public final class CodeHelpers { * @return Enumeration object * @throws IllegalArgumentException if {@code obj} is null */ - public static @NonNull T checkEnum(final @Nullable T obj, final String name) { + public static @NonNull T checkEnum(final @Nullable T obj, final String name) { if (obj == null) { throw new IllegalArgumentException("\"" + name + "\" is not a valid name"); } @@ -399,7 +399,7 @@ public final class CodeHelpers { } /** - * Check that the specified {@link Enumeration} object is not {@code null}. This method is meant to be used with + * Check that the specified {@link EnumTypeObject} object is not {@code null}. This method is meant to be used with * {@code ofName(String)} and {@code ofValue(int)} static factory methods. * * @param obj enumeration object, possibly null @@ -407,7 +407,7 @@ public final class CodeHelpers { * @return Enumeration object * @throws IllegalArgumentException if {@code obj} is null */ - public static @NonNull T checkEnum(final @Nullable T obj, final int value) { + public static @NonNull T checkEnum(final @Nullable T obj, final int value) { if (obj == null) { throw new IllegalArgumentException(value + " is not a valid value"); } diff --git a/binding/yang-binding/src/main/java/org/opendaylight/yangtools/yang/binding/Enumeration.java b/binding/yang-binding/src/main/java/org/opendaylight/yangtools/yang/binding/EnumTypeObject.java similarity index 87% rename from binding/yang-binding/src/main/java/org/opendaylight/yangtools/yang/binding/Enumeration.java rename to binding/yang-binding/src/main/java/org/opendaylight/yangtools/yang/binding/EnumTypeObject.java index d3fdd3755b..50f9907e2c 100644 --- a/binding/yang-binding/src/main/java/org/opendaylight/yangtools/yang/binding/Enumeration.java +++ b/binding/yang-binding/src/main/java/org/opendaylight/yangtools/yang/binding/EnumTypeObject.java @@ -9,11 +9,8 @@ package org.opendaylight.yangtools.yang.binding; /** * Interface implemented by all enumerations generated by YANG Binding. - * - * @author Robert Varga */ -// FIXME: 12.0.0: rename to EnumTypeObject -public non-sealed interface Enumeration extends TypeObject { +public non-sealed interface EnumTypeObject extends TypeObject { /** * Returns the assigned name of the enumeration item as it is specified in the input YANG. * diff --git a/binding/yang-binding/src/main/java/org/opendaylight/yangtools/yang/binding/TypeObject.java b/binding/yang-binding/src/main/java/org/opendaylight/yangtools/yang/binding/TypeObject.java index aa477a5c29..24bf8cecf2 100644 --- a/binding/yang-binding/src/main/java/org/opendaylight/yangtools/yang/binding/TypeObject.java +++ b/binding/yang-binding/src/main/java/org/opendaylight/yangtools/yang/binding/TypeObject.java @@ -13,6 +13,6 @@ package org.opendaylight.yangtools.yang.binding; * @author Jie Han */ public sealed interface TypeObject extends BindingObject - permits BitsTypeObject, Enumeration, ScalarTypeObject, UnionTypeObject { + permits BitsTypeObject, EnumTypeObject, ScalarTypeObject, UnionTypeObject { } diff --git a/binding/yang-binding/src/test/java/org/opendaylight/yangtools/yang/binding/CodeHelpersTest.java b/binding/yang-binding/src/test/java/org/opendaylight/yangtools/yang/binding/CodeHelpersTest.java index f39c5062ce..91926c7fd3 100644 --- a/binding/yang-binding/src/test/java/org/opendaylight/yangtools/yang/binding/CodeHelpersTest.java +++ b/binding/yang-binding/src/test/java/org/opendaylight/yangtools/yang/binding/CodeHelpersTest.java @@ -68,7 +68,7 @@ public class CodeHelpersTest { final var ex = assertThrows(IllegalArgumentException.class, () -> CodeHelpers.checkEnum(null, "xyzzy")); assertEquals("\"xyzzy\" is not a valid name", ex.getMessage()); - final var obj = mock(Enumeration.class); + final var obj = mock(EnumTypeObject.class); assertSame(obj, CodeHelpers.checkEnum(obj, "xyzzy")); } @@ -77,7 +77,7 @@ public class CodeHelpersTest { final var ex = assertThrows(IllegalArgumentException.class, () -> CodeHelpers.checkEnum(null, 1234)); assertEquals("1234 is not a valid value", ex.getMessage()); - final var obj = mock(Enumeration.class); + final var obj = mock(EnumTypeObject.class); assertSame(obj, CodeHelpers.checkEnum(obj, 1234)); } } -- 2.36.6