Skip to content

Commit 54a232f

Browse files
220: API V2: JsonPatchHelper doesn't properly handle 'add' operations
for single-valued references - Use distinct commands for single-valued and multi-valued references Fixes #220 Contributed on behalf of STMicroelectronics. Signed-off-by: Camille Letavernier <cletavernier@eclipsesource.com>
1 parent 750f45e commit 54a232f

1 file changed

Lines changed: 7 additions & 3 deletions

File tree

bundles/org.eclipse.emfcloud.modelserver.common/src/org/eclipse/emfcloud/modelserver/common/patch/AbstractJsonPatchHelper.java

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -291,9 +291,13 @@ protected Command getAddReferenceCommand(final String modelURI, final ResourceSe
291291
}
292292
}
293293

294-
Command create = AddCommand.create(getEditingDomain(setting.getEObject()), setting.getEObject(),
295-
setting.getFeature(), Collections.singleton(objectToAdd));
296-
result = result == null ? create : result.chain(create);
294+
Command addOrSet = feature.isMany()
295+
? AddCommand.create(getEditingDomain(setting.getEObject()), setting.getEObject(),
296+
setting.getFeature(), Collections.singleton(objectToAdd))
297+
: SetCommand.create(getEditingDomain(setting.getEObject()), setting.getEObject(), feature,
298+
objectToAdd);
299+
result = result == null ? addOrSet : result.chain(addOrSet);
300+
297301
return result;
298302
}
299303

0 commit comments

Comments
 (0)