Remove old unversioned proxies
[controller.git] / opendaylight / md-sal / cds-access-api / src / main / java / org / opendaylight / controller / cluster / access / concepts / MN.java
index 83ef1e59ba0298866046db1c1e26c2dcc79a9600..37b9fb837fda5e906d5fa3fbedf469f2878cd462 100644 (file)
@@ -7,39 +7,47 @@
  */
 package org.opendaylight.controller.cluster.access.concepts;
 
-import static com.google.common.base.Verify.verifyNotNull;
 import static java.util.Objects.requireNonNull;
 
+import java.io.Externalizable;
+import java.io.IOException;
+import java.io.ObjectInput;
+import java.io.ObjectOutput;
+import java.nio.charset.StandardCharsets;
+
 /**
  * Serialization proxy for {@link MemberName}.
  */
-final class MN implements MemberName.SerialForm {
+final class MN implements Externalizable {
     @java.io.Serial
     private static final long serialVersionUID = 1L;
 
-    private MemberName name;
+    private byte[] serialized;
 
     @SuppressWarnings("checkstyle:RedundantModifier")
     public MN() {
         // for Externalizable
     }
 
-    MN(final MemberName name) {
-        this.name = requireNonNull(name);
+    MN(final byte[] serialized) {
+        this.serialized = requireNonNull(serialized);
     }
 
     @Override
-    public MemberName name() {
-        return verifyNotNull(name);
+    public void writeExternal(final ObjectOutput out) throws IOException {
+        out.writeInt(serialized.length);
+        out.write(serialized);
     }
 
     @Override
-    public void setName(final MemberName name) {
-        this.name = requireNonNull(name);
+    public void readExternal(final ObjectInput in) throws IOException {
+        serialized = new byte[in.readInt()];
+        in.readFully(serialized);
     }
 
-    @Override
-    public Object readResolve() {
-        return name();
+    @java.io.Serial
+    private Object readResolve() {
+        // TODO: consider caching instances here
+        return new MemberName(new String(serialized, StandardCharsets.UTF_8), serialized);
     }
 }