X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=controller.git;a=blobdiff_plain;f=opendaylight%2Fmd-sal%2Fsal-distributed-datastore%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fcluster%2Fdatastore%2Fpersisted%2FShardSnapshotState.java;h=a8c7393b52f6804872e50a9db803aa279bf404d2;hp=152ffd368fdd68b76b8cdda063860902dfbd4460;hb=refs%2Fchanges%2F14%2F82314%2F25;hpb=9d6b18257717db4f6f722422ee3224154150cbf7 diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/ShardSnapshotState.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/ShardSnapshotState.java index 152ffd368f..a8c7393b52 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/ShardSnapshotState.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/ShardSnapshotState.java @@ -48,7 +48,7 @@ public class ShardSnapshotState implements Snapshot.State { @Override public void readExternal(final ObjectInput in) throws IOException { - snapshotState = new ShardSnapshotState(ShardDataTreeSnapshot.deserialize(in)); + snapshotState = ShardDataTreeSnapshot.deserialize(in); } private Object readResolve() { @@ -59,16 +59,27 @@ public class ShardSnapshotState implements Snapshot.State { @SuppressFBWarnings(value = "SE_BAD_FIELD", justification = "This field is not Serializable but this class " + "implements writeReplace to delegate serialization to a Proxy class and thus instances of this class " + "aren't serialized. FindBugs does not recognize this.") - private final ShardDataTreeSnapshot snapshot; + private final @NonNull ShardDataTreeSnapshot snapshot; + private final boolean migrated; - public ShardSnapshotState(final @NonNull ShardDataTreeSnapshot snapshot) { + ShardSnapshotState(final @NonNull ShardDataTreeSnapshot snapshot, final boolean migrated) { this.snapshot = requireNonNull(snapshot); + this.migrated = migrated; + } + + public ShardSnapshotState(final @NonNull ShardDataTreeSnapshot snapshot) { + this(snapshot, false); } public @NonNull ShardDataTreeSnapshot getSnapshot() { return snapshot; } + @Override + public boolean needsMigration() { + return migrated; + } + private Object writeReplace() { return new Proxy(this); }