Deprecate yang.common.YangError
[yangtools.git] / data / yang-data-api / src / main / java / org / opendaylight / yangtools / yang / data / api / codec / YangInvalidValueException.java
index 5e845ed7963940006910484ca8c610c07487e0bf..a75cfc2649395f18bae3614f9cb8a156020c0ed4 100644 (file)
@@ -10,12 +10,17 @@ package org.opendaylight.yangtools.yang.data.api.codec;
 import static java.util.Objects.requireNonNull;
 
 import com.google.common.annotations.Beta;
+import java.util.List;
 import java.util.Optional;
 import org.eclipse.jdt.annotation.NonNull;
 import org.eclipse.jdt.annotation.Nullable;
-import org.opendaylight.yangtools.yang.common.RpcError.ErrorSeverity;
-import org.opendaylight.yangtools.yang.common.RpcError.ErrorType;
+import org.opendaylight.yangtools.yang.common.ErrorSeverity;
+import org.opendaylight.yangtools.yang.common.ErrorTag;
+import org.opendaylight.yangtools.yang.common.RpcError;
 import org.opendaylight.yangtools.yang.common.YangError;
+import org.opendaylight.yangtools.yang.data.api.ImmutableYangNetconfError;
+import org.opendaylight.yangtools.yang.data.api.YangNetconfError;
+import org.opendaylight.yangtools.yang.data.api.YangNetconfErrorAware;
 import org.opendaylight.yangtools.yang.model.api.ConstraintMetaDefinition;
 
 /**
@@ -35,14 +40,14 @@ import org.opendaylight.yangtools.yang.model.api.ConstraintMetaDefinition;
  * which defines the appropriate severity and adds more semantics.
  */
 @Beta
-public class YangInvalidValueException extends IllegalArgumentException implements YangError {
+public class YangInvalidValueException extends IllegalArgumentException implements YangError, YangNetconfErrorAware {
     private static final long serialVersionUID = 1L;
 
-    private final @NonNull ErrorType errorType;
+    private final RpcError.@NonNull ErrorType errorType;
     private final @Nullable String errorAppTag;
     private final @Nullable String errorMessage;
 
-    public YangInvalidValueException(final ErrorType errorType, final ConstraintMetaDefinition constraint,
+    public YangInvalidValueException(final RpcError.ErrorType errorType, final ConstraintMetaDefinition constraint,
             final String message) {
         super(requireNonNull(message));
         this.errorType = requireNonNull(errorType);
@@ -50,28 +55,44 @@ public class YangInvalidValueException extends IllegalArgumentException implemen
         this.errorMessage = constraint.getErrorMessage().orElse(null);
     }
 
+    @Deprecated
     @Override
-    public final ErrorType getErrorType() {
+    public final RpcError.ErrorType getErrorType() {
         return errorType;
     }
 
+    @Deprecated
     @Override
-    public final ErrorSeverity getSeverity() {
-        return ErrorSeverity.ERROR;
+    public final RpcError.ErrorSeverity getSeverity() {
+        return RpcError.ErrorSeverity.ERROR;
     }
 
+    @Deprecated
     @Override
     public final String getErrorTag() {
         return "invalid-value";
     }
 
+    @Deprecated
     @Override
     public final Optional<String> getErrorAppTag() {
         return Optional.ofNullable(errorAppTag);
     }
 
+    @Deprecated
     @Override
     public final Optional<String> getErrorMessage() {
         return Optional.ofNullable(errorMessage);
     }
+
+    @Override
+    public List<YangNetconfError> getNetconfErrors() {
+        return List.of(ImmutableYangNetconfError.builder()
+            .severity(ErrorSeverity.ERROR)
+            .type(errorType.toNetconf())
+            .tag(ErrorTag.INVALID_VALUE)
+            .message(errorMessage)
+            .appTag(errorAppTag)
+            .build());
+    }
 }