*/
package org.opendaylight.mdsal.common.api;
-import org.opendaylight.yangtools.concepts.Path;
-import org.opendaylight.yangtools.yang.common.RpcError.ErrorType;
-import org.opendaylight.yangtools.yang.common.RpcResultBuilder;
+import static java.util.Objects.requireNonNull;
-import com.google.common.base.Preconditions;
+import org.opendaylight.yangtools.concepts.HierarchicalIdentifier;
+import org.opendaylight.yangtools.yang.common.ErrorTag;
+import org.opendaylight.yangtools.yang.common.ErrorType;
+import org.opendaylight.yangtools.yang.common.RpcResultBuilder;
/**
+ * Failure of asynchronous transaction commit caused by invalid data. This exception is raised and returned when
+ * a transaction commit failed, because other data submitted via transactions.
*
- * Failure of asynchronous transaction commit caused by invalid data.
- *
- * This exception is raised and returned when transaction commit
- * failed, because other data submitted via transactions
- *
- * Clients usually are not able recover from this error condition by
- * retrieving same transaction, since data introduced by this transaction
- * are invalid.
- *
+ * <p>
+ * Clients usually are not able recover from this error condition by retrieving same transaction, since data introduced
+ * by this transaction is invalid.
*/
public class DataValidationFailedException extends TransactionCommitFailedException {
-
private static final long serialVersionUID = 1L;
- private Path<?> path;
+ private final HierarchicalIdentifier<?> path;
+ private final Class<? extends HierarchicalIdentifier<?>> pathType;
- private Class<? extends Path<?>> pathType;
-
- public <P extends Path<P>> DataValidationFailedException(final Class<P> pathType,final P path,
- final String message, final Throwable cause) {
- super(message, cause, RpcResultBuilder.newError(ErrorType.APPLICATION, "invalid-value", message, null,
- path != null ? path.toString() : null, cause));
- this.pathType = Preconditions.checkNotNull(pathType, "path type must not be null");
- this.path = Preconditions.checkNotNull(path,"path must not be null.");
+ public <P extends HierarchicalIdentifier<P>> DataValidationFailedException(final Class<P> pathType, final P path,
+ final String message, final Throwable cause) {
+ super(message, cause, RpcResultBuilder.newError(ErrorType.APPLICATION, ErrorTag.INVALID_VALUE, message, null,
+ path != null ? path.toString() : null, cause));
+ this.pathType = requireNonNull(pathType, "path type must not be null");
+ this.path = requireNonNull(path, "path must not be null.");
}
- public <P extends Path<P>> DataValidationFailedException(final Class<P> pathType,final P path,
- final String message) {
+ public <P extends HierarchicalIdentifier<P>> DataValidationFailedException(final Class<P> pathType, final P path,
+ final String message) {
this(pathType, path, message, null);
}
- public final Path<?> getPath() {
+ public final HierarchicalIdentifier<?> getPath() {
return path;
}
- public final Class<? extends Path<?>> getPathType() {
+ public final Class<? extends HierarchicalIdentifier<?>> getPathType() {
return pathType;
}
-
}