- InstallSnapshot installSnapshot = new InstallSnapshot(from.getTerm(),
- from.getLeaderId(), from.getLastIncludedIndex(),
- from.getLastIncludedTerm(), from.getData(),
- from.getChunkIndex(), from.getTotalChunks(), lastChunkHashCode);
+ public static InstallSnapshot fromSerializable (Object o) {
+ if(o instanceof InstallSnapshot) {
+ return (InstallSnapshot)o;
+ } else {
+ InstallSnapshotMessages.InstallSnapshot from =
+ (InstallSnapshotMessages.InstallSnapshot) o;
+
+ Optional<Integer> lastChunkHashCode = Optional.absent();
+ if(from.hasLastChunkHashCode()){
+ lastChunkHashCode = Optional.of(from.getLastChunkHashCode());
+ }
+
+ InstallSnapshot installSnapshot = new InstallSnapshot(from.getTerm(),
+ from.getLeaderId(), from.getLastIncludedIndex(),
+ from.getLastIncludedTerm(), from.getData().toByteArray(),
+ from.getChunkIndex(), from.getTotalChunks(), lastChunkHashCode);
+
+ return installSnapshot;
+ }
+ }