+ public MergeModification(YangInstanceIdentifier path, NormalizedNode data,
+ SchemaContext schemaContext) {
+ super(path);
+ this.data = data;
+ this.schemaContext = schemaContext;
+ }
+
+ @Override
+ public void apply(DOMStoreWriteTransaction transaction) {
+ transaction.merge(path, data);
+ }
+
+ @Override public Object toSerializable() {
+ NormalizedNodeMessages.Container encode =
+ new NormalizedNodeToNodeCodec(schemaContext).encode(
+ path, data);
+
+ return PersistentMessages.Modification.newBuilder()
+ .setType(this.getClass().toString())
+ .setPath(InstanceIdentifierUtils.toSerializable(this.path))
+ .setData(encode.getNormalizedNode())
+ .build();
+
+ }
+
+ public static MergeModification fromSerializable(
+ Object serializable,
+ SchemaContext schemaContext) {
+ PersistentMessages.Modification o = (PersistentMessages.Modification) serializable;
+
+ YangInstanceIdentifier path = InstanceIdentifierUtils.fromSerializable(o.getPath());
+ NormalizedNode data = new NormalizedNodeToNodeCodec(schemaContext).decode(
+ path, o.getData());
+
+ return new MergeModification(path, data, schemaContext);
+ }