From 8d2d762fafee92289c99c07e2ac9a3637d92f432 Mon Sep 17 00:00:00 2001 From: Robert Varga Date: Tue, 21 Apr 2020 00:27:29 +0200 Subject: [PATCH] Remove CodeHelpers.nonNullValue() This method is used only with augmentations. Remove it and update callers to use Objects.requireNonNull() instead. This removes a source of IAEs in favor of more consistent NPE as well as trims down a few bytes from builder classes. Change-Id: I57ee77c19230f57b34bf85eb5e31863f17372437 Signed-off-by: Robert Varga --- .../java/api/generator/BuilderTemplate.xtend | 2 +- .../yang/binding/AbstractAugmentable.java | 2 +- .../yangtools/yang/binding/CodeHelpers.java | 22 ------------------- 3 files changed, 2 insertions(+), 24 deletions(-) diff --git a/binding/mdsal-binding-java-api-generator/src/main/java/org/opendaylight/mdsal/binding/java/api/generator/BuilderTemplate.xtend b/binding/mdsal-binding-java-api-generator/src/main/java/org/opendaylight/mdsal/binding/java/api/generator/BuilderTemplate.xtend index b57296bf5b..673ca581d6 100644 --- a/binding/mdsal-binding-java-api-generator/src/main/java/org/opendaylight/mdsal/binding/java/api/generator/BuilderTemplate.xtend +++ b/binding/mdsal-binding-java-api-generator/src/main/java/org/opendaylight/mdsal/binding/java/api/generator/BuilderTemplate.xtend @@ -418,7 +418,7 @@ class BuilderTemplate extends AbstractBuilderTemplate { private def generateAugmentation() ''' @«SUPPRESS_WARNINGS.importedName»({ "unchecked", "checkstyle:methodTypeParameterName"}) public E$$ «AUGMENTABLE_AUGMENTATION_NAME»(«CLASS.importedName» augmentationType) { - return (E$$) «AUGMENTATION_FIELD».get(«CODEHELPERS.importedName».nonNullValue(augmentationType, "augmentationType")); + return (E$$) «AUGMENTATION_FIELD».get(«JU_OBJECTS.importedName».requireNonNull(augmentationType)); } ''' diff --git a/binding/yang-binding/src/main/java/org/opendaylight/yangtools/yang/binding/AbstractAugmentable.java b/binding/yang-binding/src/main/java/org/opendaylight/yangtools/yang/binding/AbstractAugmentable.java index ddc04ef007..a095e519f5 100644 --- a/binding/yang-binding/src/main/java/org/opendaylight/yangtools/yang/binding/AbstractAugmentable.java +++ b/binding/yang-binding/src/main/java/org/opendaylight/yangtools/yang/binding/AbstractAugmentable.java @@ -45,7 +45,7 @@ public abstract class AbstractAugmentable> implements A @SuppressWarnings("unchecked") @Override public final > A augmentation(final Class augmentationType) { - return (A) augmentations.get(CodeHelpers.nonNullValue(augmentationType, "augmentationType")); + return (A) augmentations.get(requireNonNull(augmentationType)); } @Override 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 b7d8a8e48e..836092a3d8 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 @@ -47,28 +47,6 @@ public final class CodeHelpers { checkArgument(expression, "expected one of: %s \n%but was: %s", options, value); } - /** - * Require an argument being received. This is similar to {@link java.util.Objects#requireNonNull(Object)}, but - * throws an IllegalArgumentException. - * - *

- * Implementation note: we expect argName to be a string literal or a constant, so that it's non-nullness can be - * quickly discovered for a call site (where we are going to be inlined). - * - * @param value Value itself - * @param name Symbolic name - * @return non-null value - * @throws IllegalArgumentException if value is null - * @throws NullPointerException if name is null - */ - // FIXME: another advantage is that it is JDT-annotated, but we could live without that. At some point we should - // schedule a big ISE-to-NPE conversion and just use Objects.requireNonNull() instead. - public static @NonNull T nonNullValue(@Nullable final T value, final @NonNull String name) { - requireNonNull(name); - checkArgument(value != null, "%s must not be null", name); - return value; - } - /** * A shortcut for {@code Objects.requireNonNull(value, "Supplied value may not be null")}. * -- 2.36.6