From: Robert Varga Date: Thu, 11 Apr 2019 19:43:14 +0000 (+0200) Subject: Update RpcResultBuilder X-Git-Tag: v2.1.11~15 X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=commitdiff_plain;h=1fc0094aaa88f5b7a65c51caaec8fdf4bd67acc2;p=yangtools.git Update RpcResultBuilder Annotation @NonNull returns and make sure we correctly propagate out ImmutableList as the implementation. Change-Id: I0e0e78dda729305a99958240228b5349048ff2d7 Signed-off-by: Robert Varga (cherry picked from commit 09afded9faab5432879fc27035e3dd0cab1a97a6) --- diff --git a/yang/yang-common/src/main/java/org/opendaylight/yangtools/yang/common/RpcResult.java b/yang/yang-common/src/main/java/org/opendaylight/yangtools/yang/common/RpcResult.java index 1aed5df711..4f86d9ce3f 100644 --- a/yang/yang-common/src/main/java/org/opendaylight/yangtools/yang/common/RpcResult.java +++ b/yang/yang-common/src/main/java/org/opendaylight/yangtools/yang/common/RpcResult.java @@ -29,10 +29,12 @@ public interface RpcResult { T getResult(); /** - * Returns a set of errors and warnings which occurred during processing - * the call. + * Returns a set of errors and warnings which occurred during processing the call. * * @return a Collection of {@link RpcError} */ + // FIXME: 4.0.0: annotate with @NonNull + // FIXME: 4.0.0: the description says 'set' and the default implementations uses a list. RpcError does not define + // equality and hence this should return a List Collection getErrors(); } diff --git a/yang/yang-common/src/main/java/org/opendaylight/yangtools/yang/common/RpcResultBuilder.java b/yang/yang-common/src/main/java/org/opendaylight/yangtools/yang/common/RpcResultBuilder.java index 2641613e02..50dffbc2a1 100644 --- a/yang/yang-common/src/main/java/org/opendaylight/yangtools/yang/common/RpcResultBuilder.java +++ b/yang/yang-common/src/main/java/org/opendaylight/yangtools/yang/common/RpcResultBuilder.java @@ -7,11 +7,14 @@ */ package org.opendaylight.yangtools.yang.common; +import static java.util.Objects.requireNonNull; + import com.google.common.collect.ImmutableList; import com.google.common.util.concurrent.FluentFuture; import com.google.common.util.concurrent.Futures; import java.io.Serializable; import java.util.Collection; +import org.eclipse.jdt.annotation.NonNull; import org.opendaylight.yangtools.concepts.Builder; import org.opendaylight.yangtools.yang.common.RpcError.ErrorSeverity; import org.opendaylight.yangtools.yang.common.RpcError.ErrorType; @@ -28,19 +31,18 @@ public final class RpcResultBuilder extends RpcResultBuilderCompat impleme private static class RpcResultImpl implements RpcResult, Serializable { private static final long serialVersionUID = 1L; - private final Collection errors; + private final ImmutableList errors; private final T result; private final boolean successful; - RpcResultImpl(final boolean successful, final T result, - final Collection errors) { + RpcResultImpl(final boolean successful, final T result, final ImmutableList errors) { this.successful = successful; this.result = result; - this.errors = errors; + this.errors = requireNonNull(errors); } @Override - public Collection getErrors() { + public ImmutableList getErrors() { return errors; } @@ -140,7 +142,7 @@ public final class RpcResultBuilder extends RpcResultBuilderCompat impleme /** * Returns a builder for a successful result. */ - public static RpcResultBuilder success() { + public static @NonNull RpcResultBuilder success() { return new RpcResultBuilder<>(true, null); } @@ -149,7 +151,7 @@ public final class RpcResultBuilder extends RpcResultBuilderCompat impleme * * @param result the result value */ - public static RpcResultBuilder success(final T result) { + public static @NonNull RpcResultBuilder success(final T result) { return new RpcResultBuilder<>(true, result); } @@ -158,14 +160,14 @@ public final class RpcResultBuilder extends RpcResultBuilderCompat impleme * * @param builder builder for the result value */ - public static RpcResultBuilder success(final Builder builder) { + public static @NonNull RpcResultBuilder success(final Builder builder) { return success(builder.build()); } /** * Returns a builder for a failed result. */ - public static RpcResultBuilder failed() { + public static @NonNull RpcResultBuilder failed() { return new RpcResultBuilder<>(false, null); } @@ -174,7 +176,7 @@ public final class RpcResultBuilder extends RpcResultBuilderCompat impleme * * @param success true if successful, false otherwise. */ - public static RpcResultBuilder status(final boolean success) { + public static @NonNull RpcResultBuilder status(final boolean success) { return new RpcResultBuilder<>(success, null); } @@ -183,7 +185,7 @@ public final class RpcResultBuilder extends RpcResultBuilderCompat impleme * * @param other the other RpcResult. */ - public static RpcResultBuilder from(final RpcResult other) { + public static @NonNull RpcResultBuilder from(final RpcResult other) { return new RpcResultBuilder<>(other.isSuccessful(), other.getResult()) .withRpcErrors(other.getErrors()); } @@ -198,7 +200,7 @@ public final class RpcResultBuilder extends RpcResultBuilderCompat impleme * * @return an RpcError */ - public static RpcError newError(final ErrorType errorType, final String tag, final String message) { + public static @NonNull RpcError newError(final ErrorType errorType, final String tag, final String message) { return new RpcErrorImpl(ErrorSeverity.ERROR, errorType, tag != null ? tag : "operation-failed", message, null, null, null); } @@ -217,7 +219,7 @@ public final class RpcResultBuilder extends RpcResultBuilderCompat impleme * * @return an RpcError */ - public static RpcError newError(final ErrorType errorType, final String tag, final String message, + public static @NonNull RpcError newError(final ErrorType errorType, final String tag, final String message, final String applicationTag, final String info, final Throwable cause) { return new RpcErrorImpl(ErrorSeverity.ERROR, errorType, tag != null ? tag : "operation-failed", message, applicationTag, info, cause); @@ -233,7 +235,7 @@ public final class RpcResultBuilder extends RpcResultBuilderCompat impleme * * @return an RpcError */ - public static RpcError newWarning(final ErrorType errorType, final String tag, final String message) { + public static @NonNull RpcError newWarning(final ErrorType errorType, final String tag, final String message) { return new RpcErrorImpl(ErrorSeverity.WARNING, errorType, tag, message, null, null, null); } @@ -251,7 +253,7 @@ public final class RpcResultBuilder extends RpcResultBuilderCompat impleme * * @return an RpcError */ - public static RpcError newWarning(final ErrorType errorType, final String tag, final String message, + public static @NonNull RpcError newWarning(final ErrorType errorType, final String tag, final String message, final String applicationTag, final String info, final Throwable cause) { return new RpcErrorImpl(ErrorSeverity.WARNING, errorType, tag, message, applicationTag, info, cause); @@ -263,7 +265,7 @@ public final class RpcResultBuilder extends RpcResultBuilderCompat impleme * @param result the result value */ @SuppressWarnings("checkstyle:hiddenField") - public RpcResultBuilder withResult(final T result) { + public @NonNull RpcResultBuilder withResult(final T result) { this.result = result; return this; } @@ -273,7 +275,7 @@ public final class RpcResultBuilder extends RpcResultBuilderCompat impleme * * @param builder builder for the result value */ - public RpcResultBuilder withResult(final Builder builder) { + public @NonNull RpcResultBuilder withResult(final Builder builder) { return withResult(builder.build()); } @@ -303,7 +305,7 @@ public final class RpcResultBuilder extends RpcResultBuilderCompat impleme * {@link RpcError#getTag} for a list of suggested values. * @param message a string suitable for human display that describes the warning condition. */ - public RpcResultBuilder withWarning(final ErrorType errorType, final String tag, final String message) { + public @NonNull RpcResultBuilder withWarning(final ErrorType errorType, final String tag, final String message) { addError(ErrorSeverity.WARNING, errorType, tag, message, null, null, null); return this; } @@ -320,7 +322,7 @@ public final class RpcResultBuilder extends RpcResultBuilderCompat impleme * and/or implementation-specific debugging information. * @param cause the exception that triggered the warning. */ - public RpcResultBuilder withWarning(final ErrorType errorType, final String tag, final String message, + public @NonNull RpcResultBuilder withWarning(final ErrorType errorType, final String tag, final String message, final String applicationTag, final String info, final Throwable cause) { addError(ErrorSeverity.WARNING, errorType, tag, message, applicationTag, info, cause); return this; @@ -332,7 +334,7 @@ public final class RpcResultBuilder extends RpcResultBuilderCompat impleme * @param errorType the conceptual layer at which the error occurred. * @param message a string suitable for human display that describes the error condition. */ - public RpcResultBuilder withError(final ErrorType errorType, final String message) { + public @NonNull RpcResultBuilder withError(final ErrorType errorType, final String message) { addError(ErrorSeverity.ERROR, errorType, null, message, null, null, null); return this; } @@ -345,7 +347,7 @@ public final class RpcResultBuilder extends RpcResultBuilderCompat impleme * {@link RpcError#getTag} for a list of suggested values. * @param message a string suitable for human display that describes the error condition. */ - public RpcResultBuilder withError(final ErrorType errorType, final String tag, final String message) { + public @NonNull RpcResultBuilder withError(final ErrorType errorType, final String tag, final String message) { addError(ErrorSeverity.ERROR, errorType, tag, message, null, null, null); return this; } @@ -357,7 +359,7 @@ public final class RpcResultBuilder extends RpcResultBuilderCompat impleme * @param message a string suitable for human display that describes the error condition. * @param cause the exception that triggered the error. */ - public RpcResultBuilder withError(final ErrorType errorType, final String message, + public @NonNull RpcResultBuilder withError(final ErrorType errorType, final String message, final Throwable cause) { addError(ErrorSeverity.ERROR, errorType, null, message, null, null, cause); return this; @@ -375,7 +377,7 @@ public final class RpcResultBuilder extends RpcResultBuilderCompat impleme * and/or implementation-specific debugging information. * @param cause the exception that triggered the error. */ - public RpcResultBuilder withError(final ErrorType errorType, final String tag, final String message, + public @NonNull RpcResultBuilder withError(final ErrorType errorType, final String tag, final String message, final String applicationTag, final String info, final Throwable cause) { addError(ErrorSeverity.ERROR, errorType, tag, message, applicationTag, info, cause); return this; @@ -386,7 +388,7 @@ public final class RpcResultBuilder extends RpcResultBuilderCompat impleme * * @param error the RpcError */ - public RpcResultBuilder withRpcError(final RpcError error) { + public @NonNull RpcResultBuilder withRpcError(final RpcError error) { addError(error); return this; } @@ -421,7 +423,7 @@ public final class RpcResultBuilder extends RpcResultBuilderCompat impleme * @return Future for RpcResult built by RpcResultBuilder */ @Override - public FluentFuture> buildFuture() { + public @NonNull FluentFuture> buildFuture() { return FluentFuture.from(Futures.immediateFuture(build())); } }