import org.opendaylight.netconf.sal.restconf.impl.RestconfError.ErrorTag;
import org.opendaylight.netconf.sal.restconf.impl.RestconfError.ErrorType;
import org.opendaylight.yangtools.yang.common.RpcError;
+import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
/**
* Unchecked exception to communicate error information, as defined in the ietf restcong draft, to be sent to the
* @param message
* A string which provides a plain text string describing the error.
*/
- public RestconfDocumentedException(String message) {
+ public RestconfDocumentedException(final String message) {
this(message, RestconfError.ErrorType.APPLICATION, RestconfError.ErrorTag.OPERATION_FAILED);
}
* @param cause
* The underlying exception cause.
*/
- public RestconfDocumentedException(String message, ErrorType errorType, ErrorTag errorTag, Throwable cause) {
- this(cause, new RestconfError(errorType, errorTag, message, null, Throwables.getStackTraceAsString(cause)));
+ public RestconfDocumentedException(final String message, final ErrorType errorType, final ErrorTag errorTag,
+ final Throwable cause) {
+ this(cause, new RestconfError(errorType, errorTag, message, null,
+ Throwables.getStackTraceAsString(cause), null));
}
/**
* @param errorTag
* The enumerated tag representing a more specific error cause.
*/
- public RestconfDocumentedException(String message, ErrorType errorType, ErrorTag errorTag) {
+ public RestconfDocumentedException(final String message, final ErrorType errorType, final ErrorTag errorTag) {
this(null, new RestconfError(errorType, errorTag, message));
}
+ /**
+ * Constructs an instance with an error message, error type, error tag and error path.
+ *
+ * @param message
+ * A string which provides a plain text string describing the error.
+ * @param errorType
+ * The enumerated type indicating the layer where the error occurred.
+ * @param errorTag
+ * The enumerated tag representing a more specific error cause.
+ * @param errorPath
+ * The instance identifier representing error path
+ */
+ public RestconfDocumentedException(final String message, final ErrorType errorType, final ErrorTag errorTag,
+ final YangInstanceIdentifier errorPath) {
+ this(null, new RestconfError(errorType, errorTag, message, errorPath));
+ }
+
/**
* Constructs an instance with an error message and exception cause.
* The stack trace of the exception is included in the error info.
* @param cause
* The underlying exception cause.
*/
- public RestconfDocumentedException(String message, Throwable cause) {
+ public RestconfDocumentedException(final String message, final Throwable cause) {
this(cause, new RestconfError(RestconfError.ErrorType.APPLICATION, RestconfError.ErrorTag.OPERATION_FAILED,
- message, null, Throwables.getStackTraceAsString(cause)));
+ message, null, Throwables.getStackTraceAsString(cause), null));
}
/**
* Constructs an instance with the given error.
*/
- public RestconfDocumentedException(RestconfError error) {
+ public RestconfDocumentedException(final RestconfError error) {
this(null, error);
}
/**
* Constructs an instance with the given errors.
*/
- public RestconfDocumentedException(String message, Throwable cause, List<RestconfError> errors) {
+ public RestconfDocumentedException(final String message, final Throwable cause, final List<RestconfError> errors) {
// FIXME: We override getMessage so supplied message is lost for any public access
// this was lost also in original code.
super(cause);
/**
* Constructs an instance with the given RpcErrors.
*/
- public RestconfDocumentedException(String message, Throwable cause, Collection<RpcError> rpcErrors) {
+ public RestconfDocumentedException(final String message, final Throwable cause,
+ final Collection<RpcError> rpcErrors) {
this(message, cause, convertToRestconfErrors(rpcErrors));
}
* @param status
* the HTTP status.
*/
- public RestconfDocumentedException(Status status) {
+ public RestconfDocumentedException(final Status status) {
Preconditions.checkNotNull(status, "Status can't be null");
errors = ImmutableList.of();
this.status = status;
}
- private RestconfDocumentedException(Throwable cause, RestconfError error) {
+ private RestconfDocumentedException(final Throwable cause, final RestconfError error) {
super(cause);
Preconditions.checkNotNull(error, "RestconfError can't be null");
errors = ImmutableList.of(error);
status = null;
}
- private static List<RestconfError> convertToRestconfErrors(Collection<RpcError> rpcErrors) {
- List<RestconfError> errorList = Lists.newArrayList();
+ private static List<RestconfError> convertToRestconfErrors(final Collection<RpcError> rpcErrors) {
+ final List<RestconfError> errorList = Lists.newArrayList();
if(rpcErrors != null) {
for (RpcError rpcError : rpcErrors) {
errorList.add(new RestconfError(rpcError));
return errorList;
}
-
public List<RestconfError> getErrors() {
return errors;
}