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;
/**
* 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);
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());
+ }
}