import static java.util.Objects.requireNonNull;
+import java.io.Serializable;
import org.eclipse.jdt.annotation.NonNullByDefault;
import org.eclipse.jdt.annotation.Nullable;
* error tag.
*/
@NonNullByDefault
-public final class ErrorTag {
+public final class ErrorTag implements Serializable {
/**
* {@code access-denied} {@link ErrorTag}.
*/
* {@code lock-denied} {@link ErrorTag}.
*/
public static final ErrorTag LOCK_DENIED = new ErrorTag("lock-denied");
+ /**
+ * {@code unknown-element} {@link ErrorTag}. Covers mechanics specified in
+ * <a href="https://datatracker.ietf.org/doc/html/rfc6241#page-80">RFC6241, Appendix A, last item</a>. Note the
+ * specification expressly forbids reporting this tag for NETCONF clients older than {@code :base:1.1}.
+ */
+ public static final ErrorTag MALFORMED_MESSAGE = new ErrorTag("malformed-message");
/**
* {@code missing-attribute} {@link ErrorTag}.
*/
*/
public static final ErrorTag UNKNOWN_NAMESPACE = new ErrorTag("unknown-namespace");
+ private static final long serialVersionUID = 1L;
+
private final String elementBody;
public ErrorTag(final String elementBody) {
@Override
public boolean equals(final @Nullable Object obj) {
- return obj == this || obj instanceof ErrorTag && elementBody.equals(((ErrorTag) obj).elementBody);
+ return obj == this || obj instanceof ErrorTag other && elementBody.equals(other.elementBody);
}
@Override
public String toString() {
return elementBody;
}
-}
\ No newline at end of file
+
+ Object writeReplace() {
+ return new ETv1(this);
+ }
+}