Bug 7521: Move DatastoreSnapshotList et al to persisted package
[controller.git] / opendaylight / md-sal / sal-distributed-datastore / src / main / java / org / opendaylight / controller / cluster / datastore / messages / DatastoreSnapshotList.java
index f0f18568c71467a0a5d5bdaa49e637b6b3894934..ca137d73dbc6f7a5853940f896614e7a161e4dc1 100644 (file)
@@ -12,7 +12,10 @@ import java.util.List;
 
 /**
  * Stores a list of DatastoreSnapshot instances.
+ *
+ * @deprecated Use {@link org.opendaylight.controller.cluster.datastore.persisted.DatastoreSnapshotList} instead.
  */
+@Deprecated
 public class DatastoreSnapshotList extends ArrayList<DatastoreSnapshot> {
     private static final long serialVersionUID = 1L;
 
@@ -22,4 +25,27 @@ public class DatastoreSnapshotList extends ArrayList<DatastoreSnapshot> {
     public DatastoreSnapshotList(List<DatastoreSnapshot> snapshots) {
         super(snapshots);
     }
+
+    private Object readResolve() {
+        List<org.opendaylight.controller.cluster.datastore.persisted.DatastoreSnapshot> snapshots =
+                new ArrayList<>(size());
+        for (DatastoreSnapshot legacy: this) {
+            snapshots.add(new org.opendaylight.controller.cluster.datastore.persisted.DatastoreSnapshot(
+                    legacy.getType(), legacy.getShardManagerSnapshot(), fromLegacy(legacy.getShardSnapshots())));
+        }
+
+        return new org.opendaylight.controller.cluster.datastore.persisted.DatastoreSnapshotList(snapshots);
+    }
+
+    private List<org.opendaylight.controller.cluster.datastore.persisted.DatastoreSnapshot.ShardSnapshot> fromLegacy(
+            List<DatastoreSnapshot.ShardSnapshot> from) {
+        List<org.opendaylight.controller.cluster.datastore.persisted.DatastoreSnapshot.ShardSnapshot> snapshots =
+                new ArrayList<>(from.size());
+        for (DatastoreSnapshot.ShardSnapshot legacy: from) {
+            snapshots.add(new org.opendaylight.controller.cluster.datastore.persisted.DatastoreSnapshot.ShardSnapshot(
+                    legacy.getName(), legacy.getSnapshot()));
+        }
+
+        return snapshots;
+    }
 }