@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.
- package/CHANGELOG.md +18 -1
- package/README.md +6 -6
- package/dist/LionCore_builtins.g.d.ts +2 -2
- package/dist/LionCore_builtins.g.d.ts.map +1 -1
- package/dist/LionCore_builtins.g.js +1 -1
- package/dist/LionCore_builtins.g.js.map +1 -1
- package/dist/base-types.d.ts +7 -11
- package/dist/base-types.d.ts.map +1 -1
- package/dist/base-types.js +3 -28
- package/dist/base-types.js.map +1 -1
- package/dist/convenience.d.ts +10 -9
- package/dist/convenience.d.ts.map +1 -1
- package/dist/convenience.js +12 -11
- package/dist/convenience.js.map +1 -1
- package/dist/deltas/appliers.d.ts +5 -4
- package/dist/deltas/appliers.d.ts.map +1 -1
- package/dist/deltas/appliers.js +369 -163
- package/dist/deltas/appliers.js.map +1 -1
- package/dist/deltas/compositor.d.ts +51 -0
- package/dist/deltas/compositor.d.ts.map +1 -0
- package/dist/deltas/compositor.js +95 -0
- package/dist/deltas/compositor.js.map +1 -0
- package/dist/deltas/index.d.ts +2 -1
- package/dist/deltas/index.d.ts.map +1 -1
- package/dist/deltas/index.js +2 -1
- package/dist/deltas/index.js.map +1 -1
- package/dist/deltas/inverters.d.ts.map +1 -1
- package/dist/deltas/inverters.js +91 -28
- package/dist/deltas/inverters.js.map +1 -1
- package/dist/deltas/receivers.d.ts +39 -0
- package/dist/deltas/receivers.d.ts.map +1 -0
- package/dist/deltas/receivers.js +60 -0
- package/dist/deltas/receivers.js.map +1 -0
- package/dist/deltas/serialization/deserializer.g.d.ts.map +1 -1
- package/dist/deltas/serialization/deserializer.g.js +167 -59
- package/dist/deltas/serialization/deserializer.g.js.map +1 -1
- package/dist/deltas/serialization/serializer-helpers.d.ts +1 -1
- package/dist/deltas/serialization/serializer-helpers.d.ts.map +1 -1
- package/dist/deltas/serialization/serializer-helpers.js +3 -4
- package/dist/deltas/serialization/serializer-helpers.js.map +1 -1
- package/dist/deltas/serialization/serializer.g.d.ts +2 -2
- package/dist/deltas/serialization/serializer.g.d.ts.map +1 -1
- package/dist/deltas/serialization/serializer.g.js +186 -47
- package/dist/deltas/serialization/serializer.g.js.map +1 -1
- package/dist/deltas/serialization/types.g.d.ts +156 -43
- package/dist/deltas/serialization/types.g.d.ts.map +1 -1
- package/dist/deltas/types.g.d.ts +155 -55
- package/dist/deltas/types.g.d.ts.map +1 -1
- package/dist/deltas/types.g.js +170 -57
- package/dist/deltas/types.g.js.map +1 -1
- package/dist/deserializer.d.ts +6 -6
- package/dist/deserializer.d.ts.map +1 -1
- package/dist/deserializer.js +16 -27
- package/dist/deserializer.js.map +1 -1
- package/dist/duplicator.d.ts.map +1 -1
- package/dist/duplicator.js.map +1 -1
- package/dist/factory.d.ts +10 -2
- package/dist/factory.d.ts.map +1 -1
- package/dist/factory.js +25 -16
- package/dist/factory.js.map +1 -1
- package/dist/id-mapping.d.ts +31 -3
- package/dist/id-mapping.d.ts.map +1 -1
- package/dist/id-mapping.js +46 -14
- package/dist/id-mapping.js.map +1 -1
- package/dist/serializer.d.ts.map +1 -1
- package/dist/textualizer.d.ts +1 -1
- package/dist/textualizer.d.ts.map +1 -1
- package/dist/textualizer.js +1 -1
- package/dist/textualizer.js.map +1 -1
- package/dist/value-managers/annotations.d.ts +5 -0
- package/dist/value-managers/annotations.d.ts.map +1 -1
- package/dist/value-managers/annotations.js +31 -3
- package/dist/value-managers/annotations.js.map +1 -1
- package/dist/value-managers/base.d.ts +2 -2
- package/dist/value-managers/base.d.ts.map +1 -1
- package/dist/value-managers/base.js +4 -4
- package/dist/value-managers/base.js.map +1 -1
- package/dist/value-managers/containments.d.ts +4 -1
- package/dist/value-managers/containments.d.ts.map +1 -1
- package/dist/value-managers/containments.js +151 -20
- package/dist/value-managers/containments.js.map +1 -1
- package/dist/value-managers/properties.d.ts.map +1 -1
- package/dist/value-managers/properties.js +1 -0
- package/dist/value-managers/properties.js.map +1 -1
- package/dist/value-managers/references.d.ts +3 -0
- package/dist/value-managers/references.d.ts.map +1 -1
- package/dist/value-managers/references.js +26 -8
- package/dist/value-managers/references.js.map +1 -1
- package/package.json +34 -37
- package/src/LionCore_builtins.g.ts +2 -2
- package/src/base-types.ts +6 -32
- package/src/convenience.ts +15 -14
- package/src/deltas/appliers.ts +377 -177
- package/src/deltas/compositor.ts +107 -0
- package/src/deltas/index.ts +3 -1
- package/src/deltas/inverters.ts +108 -36
- package/src/deltas/receivers.ts +92 -0
- package/src/deltas/serialization/deserializer.g.ts +185 -64
- package/src/deltas/serialization/serializer-helpers.ts +3 -10
- package/src/deltas/serialization/serializer.g.ts +242 -63
- package/src/deltas/serialization/types.g.ts +190 -51
- package/src/deltas/types.g.ts +190 -51
- package/src/deserializer.ts +32 -43
- package/src/duplicator.ts +1 -1
- package/src/factory.ts +31 -17
- package/src/id-mapping.ts +43 -5
- package/src/textualizer.ts +1 -1
- package/src/value-managers/annotations.ts +28 -2
- package/src/value-managers/base.ts +4 -4
- package/src/value-managers/containments.ts +144 -20
- package/src/value-managers/properties.ts +1 -0
- package/src/value-managers/references.ts +28 -8
- package/dist/deltas/handlers.d.ts +0 -17
- package/dist/deltas/handlers.d.ts.map +0 -1
- package/dist/deltas/handlers.js +0 -43
- package/dist/deltas/handlers.js.map +0 -1
- 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 {
|
|
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
|
-
|
|
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
|
-
|
|
44
|
-
|
|
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
|
|
52
|
-
|
|
64
|
+
const { resolvedPropertyFrom, resolvedContainmentFrom, resolvedReferenceFrom } = featureResolversFor(languageBases.map(({language}) => language));
|
|
65
|
+
const deserializedDelta = (delta: SerializedDelta): IDelta => {
|
|
53
66
|
switch (delta.kind) {
|
|
54
|
-
case "
|
|
55
|
-
|
|
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
|
|
59
|
-
const 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(
|
|
79
|
+
return new PropertyAddedDelta(node, property, value);
|
|
62
80
|
}
|
|
63
81
|
case "PropertyDeleted": {
|
|
64
|
-
const
|
|
65
|
-
const 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(
|
|
85
|
+
return new PropertyDeletedDelta(node, property, oldValue);
|
|
68
86
|
}
|
|
69
87
|
case "PropertyChanged": {
|
|
70
|
-
const
|
|
71
|
-
const 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(
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 "
|
|
116
|
+
case "ChildMovedFromOtherContainment": {
|
|
99
117
|
const oldParent = idMapping.fromId(delta.oldParent);
|
|
100
|
-
const oldContainment =
|
|
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 =
|
|
121
|
+
const newContainment = resolvedContainmentFrom(delta.newContainment, newParent.classifier);
|
|
104
122
|
const newIndex = delta.newIndex;
|
|
105
|
-
const
|
|
106
|
-
return new
|
|
123
|
+
const movedChild = idMapping.fromId(delta.movedChild);
|
|
124
|
+
return new ChildMovedFromOtherContainmentDelta(oldParent, oldContainment, oldIndex, newParent, newContainment, newIndex, movedChild);
|
|
107
125
|
}
|
|
108
|
-
case "
|
|
126
|
+
case "ChildMovedFromOtherContainmentInSameParent": {
|
|
109
127
|
const parent = idMapping.fromId(delta.parent);
|
|
110
|
-
const
|
|
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
|
-
|
|
114
|
-
return new ChildMovedInSameContainmentDelta(parent, containment, oldIndex, newIndex, child);
|
|
133
|
+
return new ChildMovedFromOtherContainmentInSameParentDelta(parent, oldContainment, oldIndex, movedChild, newContainment, newIndex);
|
|
115
134
|
}
|
|
116
|
-
case "
|
|
117
|
-
const
|
|
118
|
-
const
|
|
119
|
-
const
|
|
120
|
-
const
|
|
121
|
-
|
|
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 "
|
|
131
|
-
const
|
|
132
|
-
const
|
|
133
|
-
const
|
|
134
|
-
const
|
|
135
|
-
const
|
|
136
|
-
|
|
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 "
|
|
139
|
-
const
|
|
140
|
-
const
|
|
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
|
|
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
|
|
146
|
-
|
|
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 "
|
|
149
|
-
const
|
|
150
|
-
const
|
|
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
|
|
154
|
-
|
|
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
|
|
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
|
-
|
|
26
|
+
builtinPropertyValueSerializer.serializeValue(value, property)!
|
|
34
27
|
|
|
35
28
|
|
|
36
29
|
/**
|