+
+ @Override public Object toSerializable() {
+ PersistentMessages.CompositeModification.Builder builder =
+ PersistentMessages.CompositeModification.newBuilder();
+
+ builder.setTimeStamp(System.nanoTime());
+
+ for (Modification m : modifications) {
+ builder.addModification(
+ (PersistentMessages.Modification) m.toSerializable());
+ }
+
+ return builder.build();
+ }
+
+ public static MutableCompositeModification fromSerializable(Object serializable, SchemaContext schemaContext){
+ PersistentMessages.CompositeModification o = (PersistentMessages.CompositeModification) serializable;
+ MutableCompositeModification compositeModification = new MutableCompositeModification();
+
+ for(PersistentMessages.Modification m : o.getModificationList()){
+ if(m.getType().equals(DeleteModification.class.toString())){
+ compositeModification.addModification(DeleteModification.fromSerializable(m));
+ } else if(m.getType().equals(WriteModification.class.toString())){
+ compositeModification.addModification(WriteModification.fromSerializable(m, schemaContext));
+ } else if(m.getType().equals(MergeModification.class.toString())){
+ compositeModification.addModification(MergeModification.fromSerializable(m, schemaContext));
+ }
+ }
+
+ return compositeModification;
+ }