import java.io.Serializable;
import java.util.Collection;
import org.eclipse.jdt.annotation.NonNull;
-import org.opendaylight.yangtools.concepts.Builder;
+import org.opendaylight.yangtools.concepts.Mutable;
/**
* A builder for creating RpcResult instances.
*
* @param <T> the result value type
*/
-public final class RpcResultBuilder<T> implements Builder<RpcResult<T>> {
+public final class RpcResultBuilder<T> implements Mutable {
private static class RpcResultImpl<T> implements RpcResult<T>, Serializable {
private static final long serialVersionUID = 1L;
private static final long serialVersionUID = 1L;
private final String applicationTag;
- private final String tag;
+ private final ErrorTag tag;
private final String info;
private final ErrorSeverity severity;
private final String message;
private final ErrorType errorType;
private final Throwable cause;
- RpcErrorImpl(final ErrorSeverity severity, final ErrorType errorType,
- final String tag, final String message, final String applicationTag, final String info,
- final Throwable cause) {
+ RpcErrorImpl(final ErrorSeverity severity, final ErrorType errorType, final ErrorTag tag, final String message,
+ final String applicationTag, final String info, final Throwable cause) {
this.severity = severity;
this.errorType = errorType;
this.tag = tag;
}
@Override
- public String getTag() {
+ public ErrorTag getTag() {
return tag;
}
return new RpcResultBuilder<>(true, result);
}
- /**
- * Returns a builder for a successful result.
- *
- * @param builder builder for the result value
- */
- public static <T> @NonNull RpcResultBuilder<T> success(final Builder<T> builder) {
- return success(builder.build());
- }
-
/**
* Returns a builder for a failed result.
*/
*
* @return an RpcError
*/
- 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);
+ public static @NonNull RpcError newError(final ErrorType errorType, final ErrorTag tag, final String message) {
+ return new RpcErrorImpl(ErrorSeverity.ERROR, errorType, tag != null ? tag : ErrorTag.OPERATION_FAILED, message,
+ null, null, null);
}
/**
*
* @return an RpcError
*/
- public static @NonNull RpcError newError(final ErrorType errorType, final String tag, final String message,
+ public static @NonNull RpcError newError(final ErrorType errorType, final ErrorTag 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);
+ return new RpcErrorImpl(ErrorSeverity.ERROR, errorType, tag != null ? tag : ErrorTag.OPERATION_FAILED, message,
+ applicationTag, info, cause);
}
/**
*
* @return an RpcError
*/
- public static @NonNull RpcError newWarning(final ErrorType errorType, final String tag, final String message) {
+ public static @NonNull RpcError newWarning(final ErrorType errorType, final ErrorTag tag, final String message) {
return new RpcErrorImpl(ErrorSeverity.WARNING, errorType, tag, message, null, null, null);
}
*
* @return an RpcError
*/
- public static @NonNull RpcError newWarning(final ErrorType errorType, final String tag, final String message,
+ public static @NonNull RpcError newWarning(final ErrorType errorType, final ErrorTag tag, final String message,
final String applicationTag, final String info, final Throwable cause) {
- return new RpcErrorImpl(ErrorSeverity.WARNING, errorType, tag, message,
- applicationTag, info, cause);
+ return new RpcErrorImpl(ErrorSeverity.WARNING, errorType, tag, message, applicationTag, info, cause);
}
/**
return this;
}
- /**
- * Sets the value of the result.
- *
- * @param builder builder for the result value
- */
- public @NonNull RpcResultBuilder<T> withResult(final Builder<T> builder) {
- return withResult(builder.build());
- }
-
- private void addError(final ErrorSeverity severity, final ErrorType errorType,
- final String tag, final String message, final String applicationTag, final String info,
- final Throwable cause) {
-
- addError(new RpcErrorImpl(severity, errorType,
- tag != null ? tag : "operation-failed", message,
- applicationTag, info, cause));
+ private void addError(final ErrorSeverity severity, final ErrorType errorType, final ErrorTag tag,
+ final String message, final String applicationTag, final String info, final Throwable cause) {
+ addError(new RpcErrorImpl(severity, errorType, tag != null ? tag : ErrorTag.OPERATION_FAILED, message,
+ applicationTag, info, cause));
}
private void addError(final RpcError error) {
* {@link RpcError#getTag} for a list of suggested values.
* @param message a string suitable for human display that describes the warning condition.
*/
- public @NonNull RpcResultBuilder<T> withWarning(final ErrorType errorType, final String tag, final String message) {
+ public @NonNull RpcResultBuilder<T> withWarning(final ErrorType errorType, final ErrorTag tag,
+ final String message) {
addError(ErrorSeverity.WARNING, errorType, tag, message, null, null, null);
return this;
}
* and/or implementation-specific debugging information.
* @param cause the exception that triggered the warning.
*/
- public @NonNull RpcResultBuilder<T> withWarning(final ErrorType errorType, final String tag, final String message,
+ public @NonNull RpcResultBuilder<T> withWarning(final ErrorType errorType, final ErrorTag tag, final String message,
final String applicationTag, final String info, final Throwable cause) {
addError(ErrorSeverity.WARNING, errorType, tag, message, applicationTag, info, cause);
return this;
* {@link RpcError#getTag} for a list of suggested values.
* @param message a string suitable for human display that describes the error condition.
*/
- public @NonNull RpcResultBuilder<T> withError(final ErrorType errorType, final String tag, final String message) {
+ public @NonNull RpcResultBuilder<T> withError(final ErrorType errorType, final ErrorTag tag, final String message) {
addError(ErrorSeverity.ERROR, errorType, tag, message, null, null, null);
return this;
}
* and/or implementation-specific debugging information.
* @param cause the exception that triggered the error.
*/
- public @NonNull RpcResultBuilder<T> withError(final ErrorType errorType, final String tag, final String message,
+ public @NonNull RpcResultBuilder<T> withError(final ErrorType errorType, final ErrorTag tag, final String message,
final String applicationTag, final String info, final Throwable cause) {
addError(ErrorSeverity.ERROR, errorType, tag, message, applicationTag, info, cause);
return this;
return this;
}
- @Override
- public RpcResult<T> build() {
+ /**
+ * Build the resulting {@link RpcResult}.
+ *
+ * @return An RpcResult instance
+ */
+ public @NonNull RpcResult<T> build() {
return new RpcResultImpl<>(successful, result, errors != null ? errors.build() : ImmutableList.of());
}