@lionweb/class-core 0.7.0-beta.9 → 0.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (117) hide show
  1. package/CHANGELOG.md +18 -1
  2. package/README.md +6 -6
  3. package/dist/LionCore_builtins.g.d.ts +2 -2
  4. package/dist/LionCore_builtins.g.d.ts.map +1 -1
  5. package/dist/LionCore_builtins.g.js +1 -1
  6. package/dist/LionCore_builtins.g.js.map +1 -1
  7. package/dist/base-types.d.ts +7 -11
  8. package/dist/base-types.d.ts.map +1 -1
  9. package/dist/base-types.js +3 -28
  10. package/dist/base-types.js.map +1 -1
  11. package/dist/convenience.d.ts +10 -9
  12. package/dist/convenience.d.ts.map +1 -1
  13. package/dist/convenience.js +12 -11
  14. package/dist/convenience.js.map +1 -1
  15. package/dist/deltas/appliers.d.ts +5 -4
  16. package/dist/deltas/appliers.d.ts.map +1 -1
  17. package/dist/deltas/appliers.js +369 -163
  18. package/dist/deltas/appliers.js.map +1 -1
  19. package/dist/deltas/compositor.d.ts +51 -0
  20. package/dist/deltas/compositor.d.ts.map +1 -0
  21. package/dist/deltas/compositor.js +95 -0
  22. package/dist/deltas/compositor.js.map +1 -0
  23. package/dist/deltas/index.d.ts +2 -1
  24. package/dist/deltas/index.d.ts.map +1 -1
  25. package/dist/deltas/index.js +2 -1
  26. package/dist/deltas/index.js.map +1 -1
  27. package/dist/deltas/inverters.d.ts.map +1 -1
  28. package/dist/deltas/inverters.js +91 -28
  29. package/dist/deltas/inverters.js.map +1 -1
  30. package/dist/deltas/receivers.d.ts +39 -0
  31. package/dist/deltas/receivers.d.ts.map +1 -0
  32. package/dist/deltas/receivers.js +60 -0
  33. package/dist/deltas/receivers.js.map +1 -0
  34. package/dist/deltas/serialization/deserializer.g.d.ts.map +1 -1
  35. package/dist/deltas/serialization/deserializer.g.js +167 -59
  36. package/dist/deltas/serialization/deserializer.g.js.map +1 -1
  37. package/dist/deltas/serialization/serializer-helpers.d.ts +1 -1
  38. package/dist/deltas/serialization/serializer-helpers.d.ts.map +1 -1
  39. package/dist/deltas/serialization/serializer-helpers.js +3 -4
  40. package/dist/deltas/serialization/serializer-helpers.js.map +1 -1
  41. package/dist/deltas/serialization/serializer.g.d.ts +2 -2
  42. package/dist/deltas/serialization/serializer.g.d.ts.map +1 -1
  43. package/dist/deltas/serialization/serializer.g.js +186 -47
  44. package/dist/deltas/serialization/serializer.g.js.map +1 -1
  45. package/dist/deltas/serialization/types.g.d.ts +156 -43
  46. package/dist/deltas/serialization/types.g.d.ts.map +1 -1
  47. package/dist/deltas/types.g.d.ts +155 -55
  48. package/dist/deltas/types.g.d.ts.map +1 -1
  49. package/dist/deltas/types.g.js +170 -57
  50. package/dist/deltas/types.g.js.map +1 -1
  51. package/dist/deserializer.d.ts +6 -6
  52. package/dist/deserializer.d.ts.map +1 -1
  53. package/dist/deserializer.js +16 -27
  54. package/dist/deserializer.js.map +1 -1
  55. package/dist/duplicator.d.ts.map +1 -1
  56. package/dist/duplicator.js.map +1 -1
  57. package/dist/factory.d.ts +10 -2
  58. package/dist/factory.d.ts.map +1 -1
  59. package/dist/factory.js +25 -16
  60. package/dist/factory.js.map +1 -1
  61. package/dist/id-mapping.d.ts +31 -3
  62. package/dist/id-mapping.d.ts.map +1 -1
  63. package/dist/id-mapping.js +46 -14
  64. package/dist/id-mapping.js.map +1 -1
  65. package/dist/serializer.d.ts.map +1 -1
  66. package/dist/textualizer.d.ts +1 -1
  67. package/dist/textualizer.d.ts.map +1 -1
  68. package/dist/textualizer.js +1 -1
  69. package/dist/textualizer.js.map +1 -1
  70. package/dist/value-managers/annotations.d.ts +5 -0
  71. package/dist/value-managers/annotations.d.ts.map +1 -1
  72. package/dist/value-managers/annotations.js +31 -3
  73. package/dist/value-managers/annotations.js.map +1 -1
  74. package/dist/value-managers/base.d.ts +2 -2
  75. package/dist/value-managers/base.d.ts.map +1 -1
  76. package/dist/value-managers/base.js +4 -4
  77. package/dist/value-managers/base.js.map +1 -1
  78. package/dist/value-managers/containments.d.ts +4 -1
  79. package/dist/value-managers/containments.d.ts.map +1 -1
  80. package/dist/value-managers/containments.js +151 -20
  81. package/dist/value-managers/containments.js.map +1 -1
  82. package/dist/value-managers/properties.d.ts.map +1 -1
  83. package/dist/value-managers/properties.js +1 -0
  84. package/dist/value-managers/properties.js.map +1 -1
  85. package/dist/value-managers/references.d.ts +3 -0
  86. package/dist/value-managers/references.d.ts.map +1 -1
  87. package/dist/value-managers/references.js +26 -8
  88. package/dist/value-managers/references.js.map +1 -1
  89. package/package.json +34 -37
  90. package/src/LionCore_builtins.g.ts +2 -2
  91. package/src/base-types.ts +6 -32
  92. package/src/convenience.ts +15 -14
  93. package/src/deltas/appliers.ts +377 -177
  94. package/src/deltas/compositor.ts +107 -0
  95. package/src/deltas/index.ts +3 -1
  96. package/src/deltas/inverters.ts +108 -36
  97. package/src/deltas/receivers.ts +92 -0
  98. package/src/deltas/serialization/deserializer.g.ts +185 -64
  99. package/src/deltas/serialization/serializer-helpers.ts +3 -10
  100. package/src/deltas/serialization/serializer.g.ts +242 -63
  101. package/src/deltas/serialization/types.g.ts +190 -51
  102. package/src/deltas/types.g.ts +190 -51
  103. package/src/deserializer.ts +32 -43
  104. package/src/duplicator.ts +1 -1
  105. package/src/factory.ts +31 -17
  106. package/src/id-mapping.ts +43 -5
  107. package/src/textualizer.ts +1 -1
  108. package/src/value-managers/annotations.ts +28 -2
  109. package/src/value-managers/base.ts +4 -4
  110. package/src/value-managers/containments.ts +144 -20
  111. package/src/value-managers/properties.ts +1 -0
  112. package/src/value-managers/references.ts +28 -8
  113. package/dist/deltas/handlers.d.ts +0 -17
  114. package/dist/deltas/handlers.d.ts.map +0 -1
  115. package/dist/deltas/handlers.js +0 -43
  116. package/dist/deltas/handlers.js.map +0 -1
  117. package/src/deltas/handlers.ts +0 -64
@@ -18,140 +18,157 @@
18
18
  // Warning: this file is generated!
19
19
  // Modifying it by hand is useless at best, and sabotage at worst.
20
20
 
21
- import { Containment, MemoisingSymbolTable, Property, Reference } from "@lionweb/core";
22
-
21
+ import { featureResolversFor } from "@lionweb/core";
23
22
  import { ILanguageBase } from "../../base-types.js";
23
+ import { IDelta } from "../base.js";
24
24
  import { IdMapping } from "../../id-mapping.js";
25
25
  import { SerializedDelta } from "./types.g.js";
26
26
  import { DeltaDeserializer } from "./base.js";
27
27
  import {
28
28
  AnnotationAddedDelta,
29
29
  AnnotationDeletedDelta,
30
+ AnnotationMovedAndReplacedFromOtherParentDelta,
31
+ AnnotationMovedAndReplacedInSameParentDelta,
30
32
  AnnotationMovedFromOtherParentDelta,
31
33
  AnnotationMovedInSameParentDelta,
32
34
  AnnotationReplacedDelta,
33
35
  ChildAddedDelta,
34
36
  ChildDeletedDelta,
35
- ChildMovedDelta,
37
+ ChildMovedAndReplacedFromOtherContainmentDelta,
38
+ ChildMovedAndReplacedFromOtherContainmentInSameParentDelta,
39
+ ChildMovedAndReplacedInSameContainmentDelta,
40
+ ChildMovedFromOtherContainmentDelta,
41
+ ChildMovedFromOtherContainmentInSameParentDelta,
36
42
  ChildMovedInSameContainmentDelta,
37
43
  ChildReplacedDelta,
44
+ CompositeDelta,
45
+ EntryMovedAndReplacedFromOtherReferenceDelta,
46
+ EntryMovedAndReplacedFromOtherReferenceInSameParentDelta,
47
+ EntryMovedAndReplacedInSameReferenceDelta,
48
+ EntryMovedFromOtherReferenceDelta,
49
+ EntryMovedFromOtherReferenceInSameParentDelta,
50
+ EntryMovedInSameReferenceDelta,
38
51
  NoOpDelta,
52
+ PartitionAddedDelta,
53
+ PartitionDeletedDelta,
39
54
  PropertyAddedDelta,
40
55
  PropertyChangedDelta,
41
56
  PropertyDeletedDelta,
42
57
  ReferenceAddedDelta,
43
- ReferenceDeletedDelta,
44
- ReferenceMovedDelta,
45
- ReferenceMovedInSameReferenceDelta,
46
- ReferenceReplacedDelta
58
+ ReferenceChangedDelta,
59
+ ReferenceDeletedDelta
47
60
  } from "../types.g.js";
48
61
 
49
62
 
50
63
  export const deltaDeserializer = (languageBases: ILanguageBase[], idMapping: IdMapping): DeltaDeserializer => {
51
- const symbolTable = new MemoisingSymbolTable(languageBases.map(({language}) => language));
52
- return (delta: SerializedDelta) => {
64
+ const { resolvedPropertyFrom, resolvedContainmentFrom, resolvedReferenceFrom } = featureResolversFor(languageBases.map(({language}) => language));
65
+ const deserializedDelta = (delta: SerializedDelta): IDelta => {
53
66
  switch (delta.kind) {
54
- case "NoOp": {
55
- return new NoOpDelta();
67
+ case "PartitionAdded": {
68
+ const newPartition = idMapping.fromId(delta.newPartition);
69
+ return new PartitionAddedDelta(newPartition);
70
+ }
71
+ case "PartitionDeleted": {
72
+ const deletedPartition = idMapping.fromId(delta.deletedPartition);
73
+ return new PartitionDeletedDelta(deletedPartition);
56
74
  }
57
75
  case "PropertyAdded": {
58
- const container = idMapping.fromId(delta.container);
59
- const property = symbolTable.featureMatching(container.classifier.metaPointer(), delta.property) as Property;
76
+ const node = idMapping.fromId(delta.node);
77
+ const property = resolvedPropertyFrom(delta.property, node.classifier);
60
78
  const value = delta.value;
61
- return new PropertyAddedDelta(container, property, value);
79
+ return new PropertyAddedDelta(node, property, value);
62
80
  }
63
81
  case "PropertyDeleted": {
64
- const container = idMapping.fromId(delta.container);
65
- const property = symbolTable.featureMatching(container.classifier.metaPointer(), delta.property) as Property;
82
+ const node = idMapping.fromId(delta.node);
83
+ const property = resolvedPropertyFrom(delta.property, node.classifier);
66
84
  const oldValue = delta.oldValue;
67
- return new PropertyDeletedDelta(container, property, oldValue);
85
+ return new PropertyDeletedDelta(node, property, oldValue);
68
86
  }
69
87
  case "PropertyChanged": {
70
- const container = idMapping.fromId(delta.container);
71
- const property = symbolTable.featureMatching(container.classifier.metaPointer(), delta.property) as Property;
88
+ const node = idMapping.fromId(delta.node);
89
+ const property = resolvedPropertyFrom(delta.property, node.classifier);
72
90
  const oldValue = delta.oldValue;
73
91
  const newValue = delta.newValue;
74
- return new PropertyChangedDelta(container, property, oldValue, newValue);
92
+ return new PropertyChangedDelta(node, property, oldValue, newValue);
75
93
  }
76
94
  case "ChildAdded": {
77
95
  const parent = idMapping.fromId(delta.parent);
78
- const containment = symbolTable.featureMatching(parent.classifier.metaPointer(), delta.containment) as Containment;
96
+ const containment = resolvedContainmentFrom(delta.containment, parent.classifier);
79
97
  const index = delta.index;
80
98
  const newChild = idMapping.fromId(delta.newChild);
81
99
  return new ChildAddedDelta(parent, containment, index, newChild);
82
100
  }
83
101
  case "ChildDeleted": {
84
102
  const parent = idMapping.fromId(delta.parent);
85
- const containment = symbolTable.featureMatching(parent.classifier.metaPointer(), delta.containment) as Containment;
103
+ const containment = resolvedContainmentFrom(delta.containment, parent.classifier);
86
104
  const index = delta.index;
87
105
  const deletedChild = idMapping.fromId(delta.deletedChild);
88
106
  return new ChildDeletedDelta(parent, containment, index, deletedChild);
89
107
  }
90
108
  case "ChildReplaced": {
91
109
  const parent = idMapping.fromId(delta.parent);
92
- const containment = symbolTable.featureMatching(parent.classifier.metaPointer(), delta.containment) as Containment;
110
+ const containment = resolvedContainmentFrom(delta.containment, parent.classifier);
93
111
  const index = delta.index;
94
112
  const replacedChild = idMapping.fromId(delta.replacedChild);
95
113
  const newChild = idMapping.fromId(delta.newChild);
96
114
  return new ChildReplacedDelta(parent, containment, index, replacedChild, newChild);
97
115
  }
98
- case "ChildMoved": {
116
+ case "ChildMovedFromOtherContainment": {
99
117
  const oldParent = idMapping.fromId(delta.oldParent);
100
- const oldContainment = symbolTable.featureMatching(oldParent.classifier.metaPointer(), delta.oldContainment) as Containment;
118
+ const oldContainment = resolvedContainmentFrom(delta.oldContainment, oldParent.classifier);
101
119
  const oldIndex = delta.oldIndex;
102
120
  const newParent = idMapping.fromId(delta.newParent);
103
- const newContainment = symbolTable.featureMatching(newParent.classifier.metaPointer(), delta.newContainment) as Containment;
121
+ const newContainment = resolvedContainmentFrom(delta.newContainment, newParent.classifier);
104
122
  const newIndex = delta.newIndex;
105
- const child = idMapping.fromId(delta.child);
106
- return new ChildMovedDelta(oldParent, oldContainment, oldIndex, newParent, newContainment, newIndex, child);
123
+ const movedChild = idMapping.fromId(delta.movedChild);
124
+ return new ChildMovedFromOtherContainmentDelta(oldParent, oldContainment, oldIndex, newParent, newContainment, newIndex, movedChild);
107
125
  }
108
- case "ChildMovedInSameContainment": {
126
+ case "ChildMovedFromOtherContainmentInSameParent": {
109
127
  const parent = idMapping.fromId(delta.parent);
110
- const containment = symbolTable.featureMatching(parent.classifier.metaPointer(), delta.containment) as Containment;
128
+ const oldContainment = resolvedContainmentFrom(delta.oldContainment, parent.classifier);
111
129
  const oldIndex = delta.oldIndex;
130
+ const movedChild = idMapping.fromId(delta.movedChild);
131
+ const newContainment = resolvedContainmentFrom(delta.newContainment, parent.classifier);
112
132
  const newIndex = delta.newIndex;
113
- const child = idMapping.fromId(delta.child);
114
- return new ChildMovedInSameContainmentDelta(parent, containment, oldIndex, newIndex, child);
133
+ return new ChildMovedFromOtherContainmentInSameParentDelta(parent, oldContainment, oldIndex, movedChild, newContainment, newIndex);
115
134
  }
116
- case "ReferenceAdded": {
117
- const container = idMapping.fromId(delta.container);
118
- const reference = symbolTable.featureMatching(container.classifier.metaPointer(), delta.reference) as Reference;
119
- const index = delta.index;
120
- const newTarget = idMapping.fromRefId(delta.newTarget);
121
- return new ReferenceAddedDelta(container, reference, index, newTarget);
122
- }
123
- case "ReferenceDeleted": {
124
- const container = idMapping.fromId(delta.container);
125
- const reference = symbolTable.featureMatching(container.classifier.metaPointer(), delta.reference) as Reference;
126
- const index = delta.index;
127
- const deletedTarget = idMapping.fromRefId(delta.deletedTarget);
128
- return new ReferenceDeletedDelta(container, reference, index, deletedTarget);
135
+ case "ChildMovedInSameContainment": {
136
+ const parent = idMapping.fromId(delta.parent);
137
+ const containment = resolvedContainmentFrom(delta.containment, parent.classifier);
138
+ const oldIndex = delta.oldIndex;
139
+ const newIndex = delta.newIndex;
140
+ const movedChild = idMapping.fromId(delta.movedChild);
141
+ return new ChildMovedInSameContainmentDelta(parent, containment, oldIndex, newIndex, movedChild);
129
142
  }
130
- case "ReferenceReplaced": {
131
- const container = idMapping.fromId(delta.container);
132
- const reference = symbolTable.featureMatching(container.classifier.metaPointer(), delta.reference) as Reference;
133
- const index = delta.index;
134
- const replacedTarget = idMapping.fromRefId(delta.replacedTarget);
135
- const newTarget = idMapping.fromRefId(delta.newTarget);
136
- return new ReferenceReplacedDelta(container, reference, index, replacedTarget, newTarget);
143
+ case "ChildMovedAndReplacedFromOtherContainment": {
144
+ const newParent = idMapping.fromId(delta.newParent);
145
+ const newContainment = resolvedContainmentFrom(delta.newContainment, newParent.classifier);
146
+ const newIndex = delta.newIndex;
147
+ const movedChild = idMapping.fromId(delta.movedChild);
148
+ const oldParent = idMapping.fromId(delta.oldParent);
149
+ const oldContainment = resolvedContainmentFrom(delta.oldContainment, oldParent.classifier);
150
+ const oldIndex = delta.oldIndex;
151
+ const replacedChild = idMapping.fromId(delta.replacedChild);
152
+ return new ChildMovedAndReplacedFromOtherContainmentDelta(newParent, newContainment, newIndex, movedChild, oldParent, oldContainment, oldIndex, replacedChild);
137
153
  }
138
- case "ReferenceMoved": {
139
- const oldContainer = idMapping.fromId(delta.oldContainer);
140
- const oldReference = symbolTable.featureMatching(oldContainer.classifier.metaPointer(), delta.oldReference) as Reference;
154
+ case "ChildMovedAndReplacedFromOtherContainmentInSameParent": {
155
+ const parent = idMapping.fromId(delta.parent);
156
+ const oldContainment = resolvedContainmentFrom(delta.oldContainment, parent.classifier);
141
157
  const oldIndex = delta.oldIndex;
142
- const newContainer = idMapping.fromId(delta.newContainer);
143
- const newReference = symbolTable.featureMatching(newContainer.classifier.metaPointer(), delta.newReference) as Reference;
158
+ const newContainment = resolvedContainmentFrom(delta.newContainment, parent.classifier);
144
159
  const newIndex = delta.newIndex;
145
- const target = idMapping.fromRefId(delta.target);
146
- return new ReferenceMovedDelta(oldContainer, oldReference, oldIndex, newContainer, newReference, newIndex, target);
160
+ const movedChild = idMapping.fromId(delta.movedChild);
161
+ const replacedChild = idMapping.fromId(delta.replacedChild);
162
+ return new ChildMovedAndReplacedFromOtherContainmentInSameParentDelta(parent, oldContainment, oldIndex, newContainment, newIndex, movedChild, replacedChild);
147
163
  }
148
- case "ReferenceMovedInSameReference": {
149
- const container = idMapping.fromId(delta.container);
150
- const reference = symbolTable.featureMatching(container.classifier.metaPointer(), delta.reference) as Reference;
164
+ case "ChildMovedAndReplacedInSameContainment": {
165
+ const parent = idMapping.fromId(delta.parent);
166
+ const containment = resolvedContainmentFrom(delta.containment, parent.classifier);
151
167
  const oldIndex = delta.oldIndex;
152
168
  const newIndex = delta.newIndex;
153
- const target = idMapping.fromRefId(delta.target);
154
- return new ReferenceMovedInSameReferenceDelta(container, reference, oldIndex, newIndex, target);
169
+ const movedChild = idMapping.fromId(delta.movedChild);
170
+ const replacedChild = idMapping.fromId(delta.replacedChild);
171
+ return new ChildMovedAndReplacedInSameContainmentDelta(parent, containment, oldIndex, newIndex, movedChild, replacedChild);
155
172
  }
156
173
  case "AnnotationAdded": {
157
174
  const parent = idMapping.fromId(delta.parent);
@@ -187,7 +204,111 @@ export const deltaDeserializer = (languageBases: ILanguageBase[], idMapping: IdM
187
204
  const movedAnnotation = idMapping.fromId(delta.movedAnnotation);
188
205
  return new AnnotationMovedInSameParentDelta(parent, oldIndex, newIndex, movedAnnotation);
189
206
  }
207
+ case "AnnotationMovedAndReplacedFromOtherParent": {
208
+ const oldParent = idMapping.fromId(delta.oldParent);
209
+ const oldIndex = delta.oldIndex;
210
+ const replacedAnnotation = idMapping.fromId(delta.replacedAnnotation);
211
+ const newParent = idMapping.fromId(delta.newParent);
212
+ const newIndex = delta.newIndex;
213
+ const movedAnnotation = idMapping.fromId(delta.movedAnnotation);
214
+ return new AnnotationMovedAndReplacedFromOtherParentDelta(oldParent, oldIndex, replacedAnnotation, newParent, newIndex, movedAnnotation);
215
+ }
216
+ case "AnnotationMovedAndReplacedInSameParent": {
217
+ const parent = idMapping.fromId(delta.parent);
218
+ const oldIndex = delta.oldIndex;
219
+ const newIndex = delta.newIndex;
220
+ const replacedAnnotation = idMapping.fromId(delta.replacedAnnotation);
221
+ const movedAnnotation = idMapping.fromId(delta.movedAnnotation);
222
+ return new AnnotationMovedAndReplacedInSameParentDelta(parent, oldIndex, newIndex, replacedAnnotation, movedAnnotation);
223
+ }
224
+ case "ReferenceAdded": {
225
+ const parent = idMapping.fromId(delta.parent);
226
+ const reference = resolvedReferenceFrom(delta.reference, parent.classifier);
227
+ const index = delta.index;
228
+ const newTarget = idMapping.fromRefId(delta.newTarget);
229
+ return new ReferenceAddedDelta(parent, reference, index, newTarget);
230
+ }
231
+ case "ReferenceDeleted": {
232
+ const parent = idMapping.fromId(delta.parent);
233
+ const reference = resolvedReferenceFrom(delta.reference, parent.classifier);
234
+ const index = delta.index;
235
+ const deletedTarget = idMapping.fromRefId(delta.deletedTarget);
236
+ return new ReferenceDeletedDelta(parent, reference, index, deletedTarget);
237
+ }
238
+ case "ReferenceChanged": {
239
+ const parent = idMapping.fromId(delta.parent);
240
+ const reference = resolvedReferenceFrom(delta.reference, parent.classifier);
241
+ const index = delta.index;
242
+ const newTarget = idMapping.fromRefId(delta.newTarget);
243
+ const oldTarget = idMapping.fromRefId(delta.oldTarget);
244
+ return new ReferenceChangedDelta(parent, reference, index, newTarget, oldTarget);
245
+ }
246
+ case "EntryMovedFromOtherReference": {
247
+ const oldParent = idMapping.fromId(delta.oldParent);
248
+ const oldReference = resolvedReferenceFrom(delta.oldReference, oldParent.classifier);
249
+ const oldIndex = delta.oldIndex;
250
+ const newParent = idMapping.fromId(delta.newParent);
251
+ const newReference = resolvedReferenceFrom(delta.newReference, newParent.classifier);
252
+ const newIndex = delta.newIndex;
253
+ const movedTarget = idMapping.fromRefId(delta.movedTarget);
254
+ return new EntryMovedFromOtherReferenceDelta(oldParent, oldReference, oldIndex, newParent, newReference, newIndex, movedTarget);
255
+ }
256
+ case "EntryMovedFromOtherReferenceInSameParent": {
257
+ const parent = idMapping.fromId(delta.parent);
258
+ const oldReference = resolvedReferenceFrom(delta.oldReference, parent.classifier);
259
+ const oldIndex = delta.oldIndex;
260
+ const newReference = resolvedReferenceFrom(delta.newReference, parent.classifier);
261
+ const newIndex = delta.newIndex;
262
+ const movedTarget = idMapping.fromRefId(delta.movedTarget);
263
+ return new EntryMovedFromOtherReferenceInSameParentDelta(parent, oldReference, oldIndex, newReference, newIndex, movedTarget);
264
+ }
265
+ case "EntryMovedInSameReference": {
266
+ const parent = idMapping.fromId(delta.parent);
267
+ const reference = resolvedReferenceFrom(delta.reference, parent.classifier);
268
+ const oldIndex = delta.oldIndex;
269
+ const newIndex = delta.newIndex;
270
+ const movedTarget = idMapping.fromRefId(delta.movedTarget);
271
+ return new EntryMovedInSameReferenceDelta(parent, reference, oldIndex, newIndex, movedTarget);
272
+ }
273
+ case "EntryMovedAndReplacedFromOtherReference": {
274
+ const newParent = idMapping.fromId(delta.newParent);
275
+ const newReference = resolvedReferenceFrom(delta.newReference, newParent.classifier);
276
+ const newIndex = delta.newIndex;
277
+ const movedTarget = idMapping.fromRefId(delta.movedTarget);
278
+ const oldParent = idMapping.fromId(delta.oldParent);
279
+ const oldReference = resolvedReferenceFrom(delta.oldReference, oldParent.classifier);
280
+ const oldIndex = delta.oldIndex;
281
+ const replacedTarget = idMapping.fromRefId(delta.replacedTarget);
282
+ return new EntryMovedAndReplacedFromOtherReferenceDelta(newParent, newReference, newIndex, movedTarget, oldParent, oldReference, oldIndex, replacedTarget);
283
+ }
284
+ case "EntryMovedAndReplacedFromOtherReferenceInSameParent": {
285
+ const parent = idMapping.fromId(delta.parent);
286
+ const oldReference = resolvedReferenceFrom(delta.oldReference, parent.classifier);
287
+ const oldIndex = delta.oldIndex;
288
+ const newReference = resolvedReferenceFrom(delta.newReference, parent.classifier);
289
+ const newIndex = delta.newIndex;
290
+ const movedTarget = idMapping.fromRefId(delta.movedTarget);
291
+ const replacedTarget = idMapping.fromRefId(delta.replacedTarget);
292
+ return new EntryMovedAndReplacedFromOtherReferenceInSameParentDelta(parent, oldReference, oldIndex, newReference, newIndex, movedTarget, replacedTarget);
293
+ }
294
+ case "EntryMovedAndReplacedInSameReference": {
295
+ const parent = idMapping.fromId(delta.parent);
296
+ const reference = resolvedReferenceFrom(delta.reference, parent.classifier);
297
+ const oldIndex = delta.oldIndex;
298
+ const newIndex = delta.newIndex;
299
+ const movedTarget = idMapping.fromRefId(delta.movedTarget);
300
+ const replacedTarget = idMapping.fromRefId(delta.replacedTarget);
301
+ return new EntryMovedAndReplacedInSameReferenceDelta(parent, reference, oldIndex, newIndex, movedTarget, replacedTarget);
302
+ }
303
+ case "Composite": {
304
+ const parts = delta.parts.map(deserializedDelta);
305
+ return new CompositeDelta(parts);
306
+ }
307
+ case "NoOp": {
308
+ return new NoOpDelta();
309
+ }
190
310
  }
191
311
  }
312
+ return deserializedDelta;
192
313
  }
193
314
 
@@ -15,22 +15,15 @@
15
15
  // SPDX-FileCopyrightText: 2025 TRUMPF Laser SE and other contributors
16
16
  // SPDX-License-Identifier: Apache-2.0
17
17
 
18
- import {
19
- BuiltinPropertyValueSerializer,
20
- IdOrUnresolved,
21
- Property,
22
- SingleRef,
23
- unresolved
24
- } from "@lionweb/core"
18
+ import { builtinPropertyValueSerializer, IdOrUnresolved, Property, SingleRef, unresolved } from "@lionweb/core"
25
19
  import { INodeBase } from "../../base-types.js"
26
20
 
27
- const defaultBuiltinsPropertyValueSerializer = new BuiltinPropertyValueSerializer() // (suffices because serializeNodeBases also uses this class)
28
21
  /**
29
22
  * A function that serializes the given value of the given {@link Property property},
30
- * using (an instance of) the same {@link BuiltinPropertyValueSerializer} class as the {@link serializeNodeBases} function.
23
+ * using the same {@link builtinPropertyValueSerializer} instance as the {@link serializeNodeBases} function.
31
24
  */
32
25
  export const serializePropertyValue = <T>(value: T, property: Property): string =>
33
- defaultBuiltinsPropertyValueSerializer.serializeValue(value, property)!
26
+ builtinPropertyValueSerializer.serializeValue(value, property)!
34
27
 
35
28
 
36
29
  /**