@lionweb/class-core 0.7.2-beta.5 → 0.7.2

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.
@@ -25,7 +25,7 @@ export declare const applyDeltasWithLookup: (idMapping: IdMapping, deltas: IDelt
25
25
  /**
26
26
  * Applies the given {@link Delta delta} to {@link nodes INodeBase} given as the values of a {@link IdMapping ID mapping id → node}.
27
27
  * Note that the delta is *not* applied to the original nodes (object-)referenced by the deltas, but to the nodes present in the ID mapping.
28
- * These can be distinct from the original nodes, e.g. after a roundtrip to an external model processor. *
28
+ * These can be distinct from the original nodes, e.g. after a roundtrip to an external model processor.
29
29
  * @usage should look as follows.
30
30
  *
31
31
  * ```typescript
@@ -448,7 +448,7 @@ export const applyDeltasWithLookup = (idMapping, deltas, updatablePartitions) =>
448
448
  /**
449
449
  * Applies the given {@link Delta delta} to {@link nodes INodeBase} given as the values of a {@link IdMapping ID mapping id → node}.
450
450
  * Note that the delta is *not* applied to the original nodes (object-)referenced by the deltas, but to the nodes present in the ID mapping.
451
- * These can be distinct from the original nodes, e.g. after a roundtrip to an external model processor. *
451
+ * These can be distinct from the original nodes, e.g. after a roundtrip to an external model processor.
452
452
  * @usage should look as follows.
453
453
  *
454
454
  * ```typescript
@@ -21,6 +21,7 @@ export declare abstract class SingleContainmentValueManager<T extends INodeBase>
21
21
  isSet(): boolean;
22
22
  setDirectly(newChild: T | undefined): void;
23
23
  addDirectly(newChild: T): void;
24
+ protected setInternal(newChild: T | undefined): void;
24
25
  replaceWith(movedChild: T): void;
25
26
  }
26
27
  export declare class OptionalSingleContainmentValueManager<T extends INodeBase> extends SingleContainmentValueManager<T> {
@@ -31,7 +32,7 @@ export declare class OptionalSingleContainmentValueManager<T extends INodeBase>
31
32
  export declare class RequiredSingleContainmentValueManager<T extends INodeBase> extends SingleContainmentValueManager<T> {
32
33
  constructor(containment: Containment, container: INodeBase);
33
34
  get(): T;
34
- set(newChild: T | undefined): void;
35
+ set(newChild: T): void;
35
36
  }
36
37
  export declare abstract class MultiContainmentValueManager<T extends INodeBase> extends ContainmentValueManager<T> {
37
38
  protected constructor(containment: Containment, container: INodeBase);
@@ -1 +1 @@
1
- {"version":3,"file":"containments.d.ts","sourceRoot":"","sources":["../../src/value-managers/containments.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"containments.d.ts","sourceRoot":"","sources":["../../src/value-managers/containments.ts"],"names":[],"mappings":"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"}
@@ -88,6 +88,80 @@ let SingleContainmentValueManager = (() => {
88
88
  }
89
89
  this.child.set(newChild);
90
90
  }
91
+ setInternal(newChild) {
92
+ const oldChild = this.getDirectly(); // (oldChild is contained by this.container through this.containment)
93
+ if (oldChild === undefined) {
94
+ if (newChild === undefined) {
95
+ // do nothing: nothing's changed
96
+ }
97
+ else {
98
+ if (newChild.parent === undefined) {
99
+ this.emitDelta(() => new ChildAddedDelta(this.container, this.feature, 0, newChild));
100
+ }
101
+ else {
102
+ const oldParent = newChild.parent;
103
+ const oldContainment = newChild.containment;
104
+ const oldIndex = removeFromContainment(newChild);
105
+ if (oldParent === this.container) {
106
+ if (oldContainment === this.containment) {
107
+ this.emitDelta(() => new ChildMovedInSameContainmentDelta(this.container, this.containment, oldIndex, 0, newChild));
108
+ }
109
+ else {
110
+ this.emitDelta(() => new ChildMovedFromOtherContainmentInSameParentDelta(this.container, oldContainment, oldIndex, newChild, this.containment, 0));
111
+ }
112
+ }
113
+ else {
114
+ this.emitDelta(() => new ChildMovedFromOtherContainmentDelta(oldParent, oldContainment, oldIndex, this.container, this.containment, 0, newChild));
115
+ }
116
+ }
117
+ this.setDirectly(newChild);
118
+ newChild.attachTo(this.container, this.feature);
119
+ }
120
+ }
121
+ else {
122
+ if (newChild === undefined) {
123
+ if (this.containment.optional) {
124
+ oldChild.detach();
125
+ this.setDirectly(undefined);
126
+ this.emitDelta(() => new ChildDeletedDelta(this.container, this.containment, 0, oldChild));
127
+ }
128
+ else {
129
+ this.throwOnUnset();
130
+ }
131
+ }
132
+ else {
133
+ if (oldChild === newChild) {
134
+ // do nothing: nothing's changed
135
+ }
136
+ else {
137
+ oldChild.detach();
138
+ this.setDirectly(newChild);
139
+ if (newChild.parent === undefined) {
140
+ // newChild is unattached:
141
+ newChild.attachTo(this.container, this.feature);
142
+ this.emitDelta(() => new ChildReplacedDelta(this.container, this.feature, 0, oldChild, newChild));
143
+ }
144
+ else {
145
+ const oldParent = newChild.parent;
146
+ const oldContainment = newChild.containment;
147
+ const oldIndex = removeFromContainment(newChild);
148
+ if (oldParent === this.container) {
149
+ if (oldContainment === this.containment) {
150
+ this.emitDelta(() => new ChildMovedAndReplacedInSameContainmentDelta(this.container, this.containment, 0, 0, newChild, oldChild));
151
+ }
152
+ else {
153
+ this.emitDelta(() => new ChildMovedAndReplacedFromOtherContainmentInSameParentDelta(this.container, oldContainment, oldIndex, this.containment, 0, newChild, oldChild));
154
+ }
155
+ }
156
+ else {
157
+ this.emitDelta(() => new ChildMovedAndReplacedFromOtherContainmentDelta(this.container, this.containment, 0, newChild, oldParent, oldContainment, oldIndex, oldChild));
158
+ }
159
+ newChild.attachTo(this.container, this.feature);
160
+ }
161
+ }
162
+ }
163
+ }
164
+ }
91
165
  replaceWith(movedChild) {
92
166
  const replacedChild = this.getDirectly();
93
167
  if (replacedChild === undefined) {
@@ -157,50 +231,7 @@ let OptionalSingleContainmentValueManager = (() => {
157
231
  return this.getDirectly();
158
232
  }
159
233
  set(newChild) {
160
- const oldChild = this.getDirectly();
161
- if (oldChild === undefined) {
162
- if (newChild === undefined) {
163
- // do nothing: nothing's changed
164
- }
165
- else {
166
- if (newChild.parent && newChild.containment) {
167
- const oldParent = newChild.parent;
168
- removeFromContainment(newChild);
169
- this.emitDelta(() => new ChildMovedFromOtherContainmentDelta(oldParent, newChild.containment, 0, this.container, this.feature, 0, newChild));
170
- }
171
- else {
172
- this.emitDelta(() => new ChildAddedDelta(this.container, this.feature, 0, newChild));
173
- }
174
- this.setDirectly(newChild);
175
- newChild.attachTo(this.container, this.feature);
176
- }
177
- }
178
- else {
179
- if (newChild === undefined) {
180
- oldChild.detach();
181
- this.setDirectly(undefined);
182
- this.emitDelta(() => new ChildDeletedDelta(this.container, this.feature, 0, oldChild));
183
- }
184
- else {
185
- if (oldChild === newChild) {
186
- // do nothing: nothing's changed
187
- }
188
- else {
189
- // FIXME this could emit 2 deltas where it should be a single ChildReplaced-delta
190
- if (oldChild.parent && oldChild.containment && oldChild.parent === this.container && oldChild.containment === this.feature) {
191
- // FIXME oldChild.parent COULD be this.container
192
- this.emitDelta(() => new ChildDeletedDelta(this.container, this.feature, 0, oldChild));
193
- }
194
- oldChild.detach();
195
- if (newChild.parent && newChild.containment) {
196
- removeFromContainment(newChild);
197
- }
198
- this.setDirectly(newChild);
199
- newChild.attachTo(this.container, this.feature);
200
- this.emitDelta(() => new ChildReplacedDelta(this.container, this.feature, 0, oldChild, newChild));
201
- }
202
- }
203
- }
234
+ this.setInternal(newChild);
204
235
  }
205
236
  },
206
237
  (() => {
@@ -231,59 +262,7 @@ let RequiredSingleContainmentValueManager = (() => {
231
262
  return child;
232
263
  }
233
264
  set(newChild) {
234
- const oldChild = this.getDirectly(); // (oldChild is contained by this.container through this.containment)
235
- if (oldChild === undefined) {
236
- if (newChild === undefined) {
237
- // do nothing: nothing's changed
238
- }
239
- else {
240
- if (newChild.parent === undefined) {
241
- this.emitDelta(() => new ChildAddedDelta(this.container, this.feature, 0, newChild));
242
- }
243
- else {
244
- const oldParent = newChild.parent;
245
- const oldIndex = removeFromContainment(newChild);
246
- this.emitDelta(() => new ChildMovedFromOtherContainmentDelta(oldParent, newChild.containment, oldIndex, this.container, this.feature, 0, newChild));
247
- }
248
- this.setDirectly(newChild);
249
- newChild.attachTo(this.container, this.feature);
250
- }
251
- }
252
- else {
253
- if (newChild === undefined) {
254
- this.throwOnUnset();
255
- }
256
- else {
257
- if (oldChild === newChild) {
258
- // do nothing: nothing's changed
259
- }
260
- else {
261
- oldChild.detach();
262
- this.setDirectly(newChild);
263
- if (newChild.parent === undefined) {
264
- // newChild is unattached:
265
- newChild.attachTo(this.container, this.feature);
266
- this.emitDelta(() => new ChildReplacedDelta(this.container, this.feature, 0, oldChild, newChild));
267
- }
268
- else {
269
- const oldContainment = newChild.containment;
270
- const oldIndex = removeFromContainment(newChild);
271
- if (newChild.parent === this.container) {
272
- if (newChild.containment === this.containment) {
273
- this.emitDelta(() => new ChildMovedAndReplacedInSameContainmentDelta(this.container, this.containment, 0, 0, newChild, oldChild));
274
- }
275
- else {
276
- this.emitDelta(() => new ChildMovedAndReplacedFromOtherContainmentInSameParentDelta(this.container, oldContainment, oldIndex, this.containment, 0, newChild, oldChild));
277
- }
278
- }
279
- else {
280
- this.emitDelta(() => new ChildMovedAndReplacedFromOtherContainmentDelta(this.container, this.containment, 0, newChild, newChild.parent, oldContainment, oldIndex, oldChild));
281
- }
282
- newChild.attachTo(this.container, this.feature);
283
- }
284
- }
285
- }
286
- }
265
+ this.setInternal(newChild);
287
266
  }
288
267
  },
289
268
  (() => {
@@ -1 +1 @@
1
- {"version":3,"file":"containments.js","sourceRoot":"","sources":["../../src/value-managers/containments.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"containments.js","sourceRoot":"","sources":["../../src/value-managers/containments.ts"],"names":[],"mappings":"AAAA,wDAAwD;AACxD,EAAE;AACF,iEAAiE;AACjE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,iDAAiD;AACjD,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;AACjC,EAAE;AACF,sEAAsE;AACtE,sCAAsC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGtC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,MAAM,CAAA;AAGzC,OAAO,EACH,eAAe,EACf,iBAAiB,EACjB,8CAA8C,EAC9C,0DAA0D,EAC1D,2CAA2C,EAC3C,mCAAmC,EACnC,+CAA+C,EAC/C,gCAAgC,EAChC,kBAAkB,EACrB,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EAAE,UAAU,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAA;AAG3D;;GAEG;AACH,MAAM,OAAgB,uBAA6C,SAAQ,mBAAgC;IAEvG,IAAI,WAAW;QACX,OAAO,IAAI,CAAC,OAAO,CAAC;IACxB,CAAC;CAWJ;IAGqB,6BAA6B;;sBAA8B,uBAAuB;;;;;sBAAlF,6BAAmD,SAAQ,WAA0B;YAEvG,YAAsB,WAAwB,EAAE,SAAoB;gBAChE,KAAK,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;gBAIjB,UAAK,IAPJ,mDAA6B,EAOtB,UAAU,CAAC,GAAG,CAAgB,SAAS,EAAE,EAAC,IAAI,EAAE,KAAK,EAAC,CAAC,EAAC;gBAH7E,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;YAC9B,CAAC;YAID,WAAW;gBACP,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;YAC5B,CAAC;YAED,KAAK;gBACD,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,SAAS,CAAC;YAC1C,CAAC;YAEO,WAAW,CAAC,QAAuB;gBACvC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAC7B,CAAC;YAEO,WAAW,CAAC,QAAW;gBAC3B,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;gBACpC,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;oBACzB,MAAM,IAAI,KAAK,CAAC,sGAAsG,CAAC,CAAC,CAAI,uBAAuB;gBACvJ,CAAC;gBACD,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAC7B,CAAC;YAES,WAAW,CAAC,QAAuB;gBACzC,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC,CAAI,qEAAqE;gBAC7G,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;oBACzB,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;wBACzB,gCAAgC;oBACpC,CAAC;yBAAM,CAAC;wBACJ,IAAI,QAAQ,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;4BAChC,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,IAAI,eAAe,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC;wBACzF,CAAC;6BAAM,CAAC;4BACJ,MAAM,SAAS,GAAG,QAAQ,CAAC,MAAM,CAAC;4BAClC,MAAM,cAAc,GAAG,QAAQ,CAAC,WAAY,CAAC;4BAC7C,MAAM,QAAQ,GAAG,qBAAqB,CAAC,QAAQ,CAAC,CAAC;4BACjD,IAAI,SAAS,KAAK,IAAI,CAAC,SAAS,EAAE,CAAC;gCAC/B,IAAI,cAAc,KAAK,IAAI,CAAC,WAAW,EAAE,CAAC;oCACtC,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,IAAI,gCAAgC,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,WAAW,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC;gCACxH,CAAC;qCAAM,CAAC;oCACJ,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,IAAI,+CAA+C,CAAC,IAAI,CAAC,SAAS,EAAE,cAAc,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC;gCACvJ,CAAC;4BACL,CAAC;iCAAM,CAAC;gCACJ,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,IAAI,mCAAmC,CAAC,SAAS,EAAE,cAAc,EAAE,QAAQ,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC;4BACtJ,CAAC;wBACL,CAAC;wBACD,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;wBAC3B,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;oBACpD,CAAC;gBACL,CAAC;qBAAM,CAAC;oBACJ,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;wBACzB,IAAI,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;4BAC5B,QAAQ,CAAC,MAAM,EAAE,CAAC;4BAClB,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;4BAC5B,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,IAAI,iBAAiB,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC;wBAC/F,CAAC;6BAAM,CAAC;4BACJ,IAAI,CAAC,YAAY,EAAE,CAAC;wBACxB,CAAC;oBACL,CAAC;yBAAM,CAAC;wBACJ,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;4BACxB,gCAAgC;wBACpC,CAAC;6BAAM,CAAC;4BACJ,QAAQ,CAAC,MAAM,EAAE,CAAC;4BAClB,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;4BAC3B,IAAI,QAAQ,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;gCAChC,0BAA0B;gCAC1B,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;gCAChD,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,IAAI,kBAAkB,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;4BACtG,CAAC;iCAAM,CAAC;gCACJ,MAAM,SAAS,GAAG,QAAQ,CAAC,MAAM,CAAC;gCAClC,MAAM,cAAc,GAAG,QAAQ,CAAC,WAAY,CAAC;gCAC7C,MAAM,QAAQ,GAAG,qBAAqB,CAAC,QAAQ,CAAC,CAAC;gCACjD,IAAI,SAAS,KAAK,IAAI,CAAC,SAAS,EAAE,CAAC;oCAC/B,IAAI,cAAc,KAAK,IAAI,CAAC,WAAW,EAAE,CAAC;wCACtC,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,IAAI,2CAA2C,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;oCACtI,CAAC;yCAAM,CAAC;wCACJ,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,IAAI,0DAA0D,CAAC,IAAI,CAAC,SAAS,EAAE,cAAc,EAAE,QAAQ,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;oCAC5K,CAAC;gCACL,CAAC;qCAAM,CAAC;oCACJ,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,IAAI,8CAA8C,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,cAAc,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;gCAC3K,CAAC;gCACD,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;4BACpD,CAAC;wBACL,CAAC;oBACL,CAAC;gBACL,CAAC;YACL,CAAC;YAEO,WAAW,CAAC,UAAa;gBAC7B,MAAM,aAAa,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;gBACzC,IAAI,aAAa,KAAK,SAAS,EAAE,CAAC;oBAC9B,uIAAuI;oBACvI,IAAI,IAAI,YAAY,qCAAqC,EAAE,CAAC;wBACxD,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;oBACzB,CAAC;oBACD,IAAI,IAAI,YAAY,qCAAqC,EAAE,CAAC;wBACxD,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;oBACzB,CAAC;gBACL,CAAC;qBAAM,CAAC;oBACJ,IAAI,aAAa,KAAK,UAAU,EAAE,CAAC;wBAC/B,gCAAgC;oBACpC,CAAC;yBAAM,CAAC;wBACJ,IAAI,UAAU,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;4BAClC,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,IAAI,kBAAkB,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,EAAE,aAAa,EAAE,UAAU,CAAC,CAAC,CAAC;wBAC7G,CAAC;6BAAM,CAAC;4BACJ,IAAI,UAAU,CAAC,MAAM,KAAK,IAAI,CAAC,SAAS,EAAE,CAAC;gCACvC,IAAI,UAAU,CAAC,WAAW,KAAK,IAAI,CAAC,WAAW,EAAE,CAAC;oCAC9C,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,IAAI,2CAA2C,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC,EAAE,UAAU,EAAE,aAAa,CAAC,CAAC,CAAC;gCAC7I,CAAC;qCAAM,CAAC;oCACJ,MAAM,QAAQ,GAAG,qBAAqB,CAAC,aAAa,CAAC,CAAC;oCACtD,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,IAAI,0DAA0D,CAAC,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,WAAY,EAAE,QAAQ,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,EAAE,UAAU,EAAE,aAAa,CAAC,CAAC,CAAC;gCAC5L,CAAC;4BACL,CAAC;iCAAM,CAAC;gCACJ,MAAM,QAAQ,GAAG,qBAAqB,CAAC,aAAa,CAAC,CAAC;gCACtD,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,IAAI,8CAA8C,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,EAAE,UAAU,EAAE,UAAU,CAAC,MAAO,EAAE,UAAU,CAAC,WAAY,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC;4BACpM,CAAC;wBACL,CAAC;wBACD,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;wBAC7B,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;wBACtD,aAAa,CAAC,MAAM,EAAE,CAAC;oBAC3B,CAAC;gBACL,CAAC;YACL,CAAC;;;;uCA9GA,MAAM;uCAIN,MAAM;uCAwEN,MAAM;YA5EC,kLAAA,WAAW,6DAElB;YAEO,kLAAA,WAAW,6DAMlB;YAkEO,kLAAA,WAAW,6DAkClB;;;;;SA/HiB,6BAA6B;IAoItC,qCAAqC;;sBAA8B,6BAA6B;;;sBAAhG,qCAA2D,SAAQ,WAAgC;YAE5G,YAAY,WAAwB,EAAE,SAAoB;gBACtD,KAAK,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;gBAHzB,mDAAqC;gBAI1C,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;aAC7B;YAED,GAAG;gBACC,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC;YAC9B,CAAC;YAEO,GAAG,CAAC,QAAuB;gBAC/B,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;YAC/B,CAAC;;;;+BAFA,MAAM;YAAC,0JAAA,GAAG,6DAEV;;;;;SAbQ,qCAAqC;IAkBrC,qCAAqC;;sBAA8B,6BAA6B;;;sBAAhG,qCAA2D,SAAQ,WAAgC;YAE5G,YAAY,WAAwB,EAAE,SAAoB;gBACtD,KAAK,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;gBAHzB,mDAAqC;gBAI1C,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;aAC5B;YAED,GAAG;gBACC,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;gBACjC,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;oBACtB,IAAI,CAAC,kBAAkB,EAAE,CAAC;gBAC9B,CAAC;gBACD,OAAO,KAAK,CAAC;YACjB,CAAC;YAEO,GAAG,CAAC,QAAW;gBACnB,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;YAC/B,CAAC;;;;+BAFA,MAAM;YAAC,0JAAA,GAAG,6DAEV;;;;;SAjBQ,qCAAqC;IAsB5B,4BAA4B;;sBAA8B,uBAAuB;;;;;;;;;;;sBAAjF,4BAAkD,SAAQ,WAA0B;YAEtG,YAAsB,WAAwB,EAAE,SAAoB;gBAChE,KAAK,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;gBAIjB,aAAQ,IAPP,mDAA4B,EAOlB,UAAU,CAAC,KAAK,CAAI,EAAE,EAAE,EAAC,IAAI,EAAE,KAAK,EAAC,CAAC,EAAC;gBAH/D,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;YAC7B,CAAC;YAID,WAAW;gBACP,OAAO,IAAI,CAAC,QAAQ,CAAC;YACzB,CAAC;YAED,GAAG;gBACC,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC,KAAK,EAAE,CAAC;YACtC,CAAC;YAED,KAAK;gBACD,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;YACpC,CAAC;YAEO,WAAW,CAAC,QAAW;gBAC3B,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACjC,CAAC;YAEO,GAAG,CAAC,QAAW;gBACnB,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,MAAM,CAAC,CAAC;YAC5D,CAAC;YAEO,qBAAqB,CAAC,QAAW,EAAE,KAAa;gBACpD,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;gBAC9C,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC;YAC7C,CAAC;YAEO,aAAa,CAAC,QAAW,EAAE,QAAgB;gBAC/C,IAAI,QAAQ,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;oBAChC,IAAI,CAAC,qBAAqB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;oBAC/C,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;oBACpD,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,IAAI,eAAe,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,WAAW,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;gBACpG,CAAC;qBAAM,CAAC;oBACJ,IAAI,QAAQ,CAAC,MAAM,KAAK,IAAI,CAAC,SAAS,EAAE,CAAC;wBACrC,IAAI,QAAQ,CAAC,WAAW,KAAK,IAAI,CAAC,WAAW,EAAE,CAAC;4BAC5C,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;4BACjD,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;4BACtC,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,IAAI,gCAAgC,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;wBAC/H,CAAC;6BAAM,CAAC;4BACJ,MAAM,QAAQ,GAAG,qBAAqB,CAAC,QAAQ,CAAC,CAAC;4BACjD,UAAU,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;4BACjD,IAAI,CAAC,qBAAqB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;4BAC/C,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,IAAI,+CAA+C,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,WAAY,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC,CAAC;4BACjK,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;wBACxD,CAAC;oBACL,CAAC;yBAAM,CAAC;wBACJ,MAAM,QAAQ,GAAG,qBAAqB,CAAC,QAAQ,CAAC,CAAC;wBACjD,IAAI,CAAC,qBAAqB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;wBAC/C,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,IAAI,mCAAmC,CAAC,QAAQ,CAAC,MAAO,EAAE,QAAQ,CAAC,WAAY,EAAE,QAAQ,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,WAAW,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;wBACvK,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;oBACxD,CAAC;gBACL,CAAC;YACL,CAAC;YAEO,cAAc,CAAC,aAAgB;gBACnC,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;gBACpC,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;gBAC9C,IAAI,KAAK,GAAG,CAAC,CAAC,EAAE,CAAC;oBACb,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;oBAC1B,OAAO,KAAK,CAAC;gBACjB,CAAC;gBACD,OAAO,CAAC,CAAC,CAAC;YACd,CAAC;YAEO,qBAAqB,CAAC,KAAa;gBACvC,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;gBAC/C,IAAI,CAAC,WAAW,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;YACxC,CAAC;YAEO,YAAY,CAAC,QAAgB,EAAE,QAAgB;gBACnD,UAAU,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;gBAClD,UAAU,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;gBAClD,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;oBACxB,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;oBAClD,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;oBACzC,OAAO,KAAK,CAAC;gBACjB,CAAC;gBACD,OAAO,SAAS,CAAC;YACrB,CAAC;YAEO,IAAI,CAAC,QAAgB,EAAE,QAAgB;gBAC3C,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;gBACpD,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;oBACtB,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,IAAI,gCAAgC,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC;gBAC5H,CAAC;YACL,CAAC;YAEO,cAAc,CAAC,UAAa,EAAE,QAAgB;gBAClD,UAAU,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;gBAClD,IAAI,UAAU,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;oBAClC,MAAM,IAAI,KAAK,CAAC,uBAAuB,UAAU,CAAC,EAAE,6BAA6B,CAAC,CAAC;gBACvF,CAAC;gBACD,MAAM,aAAa,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;gBAC9C,IAAI,aAAa,KAAK,UAAU,EAAE,CAAC;oBAC/B,gCAAgC;gBACpC,CAAC;qBAAM,CAAC;oBACJ,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,EAAE,UAAU,CAAC,CAAC;oBAC9C,IAAI,aAAa,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;wBACrC,MAAM,eAAe,GAAG,aAAa,CAAC,MAAM,CAAC,0BAA0B,CAAC,aAAa,CAAC,WAAY,CAAC,CAAC;wBACpG,MAAM,QAAQ,GAAG,eAAe,YAAY,6BAA6B;4BACrE,CAAC,CAAC,CAAC;4BACH,CAAC,CAAE,eAA2D,CAAC,QAAQ,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;wBACnG,IAAI,aAAa,CAAC,MAAM,KAAK,UAAU,CAAC,MAAM,EAAE,CAAC;4BAC7C,IAAI,aAAa,CAAC,WAAW,KAAK,UAAU,CAAC,WAAW,EAAE,CAAC;gCACvD,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,IAAI,2CAA2C,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,aAAa,CAAC,CAAC,CAAC;4BAC3J,CAAC;iCAAM,CAAC;gCACJ,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,IAAI,0DAA0D,CAAC,IAAI,CAAC,SAAS,EAAE,aAAa,CAAC,WAAY,EAAE,QAAQ,EAAE,IAAI,CAAC,WAAW,EAAE,QAAQ,EAAE,UAAU,EAAE,aAAa,CAAC,CAAC,CAAC;4BACtM,CAAC;wBACL,CAAC;6BAAM,CAAC;4BACJ,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,IAAI,8CAA8C,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,WAAW,EAAE,QAAQ,EAAE,UAAU,EAAE,UAAU,CAAC,MAAO,EAAE,UAAU,CAAC,WAAY,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC;wBAC3M,CAAC;wBACD,aAAa,CAAC,MAAM,EAAE,CAAC;oBAC3B,CAAC;yBAAM,CAAC;wBACJ,qDAAqD;wBACrD,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,IAAI,kBAAkB,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,WAAW,EAAE,QAAQ,EAAE,aAAa,EAAE,UAAU,CAAC,CAAC,CAAC;oBACxH,CAAC;oBACD,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;gBAC1D,CAAC;YACL,CAAC;;;;uCAxGA,MAAM;+BAIN,MAAM;iDAIN,MAAM;yCAKN,MAAM;0CA2BN,MAAM;iDAUN,MAAM;wCAKN,MAAM;gCAWN,MAAM;0CAON,MAAM;YAzEC,kLAAA,WAAW,6DAElB;YAEO,0JAAA,GAAG,6DAEV;YAEO,gNAAA,qBAAqB,6DAG5B;YAEO,wLAAA,aAAa,6DAyBpB;YAEO,2LAAA,cAAc,6DAQrB;YAEO,gNAAA,qBAAqB,6DAG5B;YAEO,qLAAA,YAAY,6DASnB;YAEO,6JAAA,IAAI,6DAKX;YAEO,2LAAA,cAAc,6DA+BrB;;;;;SA7HiB,4BAA4B;IAkIrC,oCAAoC;;sBAA8B,4BAA4B;;;sBAA9F,oCAA0D,SAAQ,WAA+B;YAE1G,YAAY,WAAwB,EAAE,SAAoB;gBACtD,KAAK,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;gBAHzB,mDAAoC;gBAIzC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;aAC7B;YAEO,MAAM,CAAC,aAAgB;gBAC3B,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;gBACpC,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;gBAC9C,IAAI,KAAK,GAAG,CAAC,CAAC,EAAE,CAAC;oBACb,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;oBAC1B,aAAa,CAAC,MAAM,EAAE,CAAC;oBACvB,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,IAAI,iBAAiB,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,WAAW,EAAE,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC;gBACxG,CAAC;YACL,CAAC;;;;kCARA,MAAM;YAAC,mKAAA,MAAM,6DAQb;;;;;SAfQ,oCAAoC;IAoBpC,oCAAoC;;sBAA8B,4BAA4B;;;sBAA9F,oCAA0D,SAAQ,WAA+B;YAE1G,YAAY,WAAwB,EAAE,SAAoB;gBACtD,KAAK,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;gBAHzB,mDAAoC;gBAIzC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;aAC5B;YAED,GAAG;gBACC,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;gBACpC,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBACxB,IAAI,CAAC,kBAAkB,EAAE,CAAC;gBAC9B,CAAC;gBACD,OAAO,QAAQ,CAAC;YACpB,CAAC;YAEO,MAAM,CAAC,aAAgB;gBAC3B,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;gBACpC,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;gBAC9C,IAAI,KAAK,GAAG,CAAC,CAAC,EAAE,CAAC;oBACb,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;wBACxB,IAAI,CAAC,YAAY,EAAE,CAAC;oBACxB,CAAC;oBACD,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;oBAC1B,aAAa,CAAC,MAAM,EAAE,CAAC;oBACvB,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,IAAI,iBAAiB,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,WAAW,EAAE,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC;gBACxG,CAAC;YACL,CAAC;;;;kCAXA,MAAM;YAAC,mKAAA,MAAM,6DAWb;;;;;SA1BQ,oCAAoC;AA8BjD;;GAEG;AACH,MAAM,qBAAqB,GAAG,CAAC,KAAgB,EAAU,EAAE;IACvD,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QAC7B,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAA;IAC7D,CAAC;IACD,IAAI,KAAK,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;QAClC,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAA;IACzE,CAAC;IACD,IAAI,KAAK,CAAC,WAAW,KAAK,IAAI,EAAE,CAAC;QAC7B,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAA;IACjD,CAAC;IACD,MAAM,YAAY,GAAG,KAAK,CAAC,MAAM,CAAC,0BAA0B,CAAC,KAAK,CAAC,WAAW,CAAC,CAAA;IAC/E,IAAI,YAAY,YAAY,6BAA6B,EAAE,CAAC;QACxD,YAAY,CAAC,WAAW,CAAC,SAAS,CAAC,CAAA;QACnC,OAAO,CAAC,CAAA;IACZ,CAAC;SAAM,IAAI,YAAY,YAAY,4BAA4B,EAAE,CAAC;QAC9D,OAAO,YAAY,CAAC,cAAc,CAAC,KAAK,CAAC,CAAA;IAC7C,CAAC;SAAM,CAAC;QACJ,MAAM,IAAI,KAAK,CAAC,qFAAqF,YAAY,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAA;IACzI,CAAC;AACL,CAAC,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lionweb/class-core",
3
- "version": "0.7.2-beta.5",
3
+ "version": "0.7.2",
4
4
  "description": "Generic, language-aspecific base types for generated TypeScript APIs",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -27,9 +27,9 @@
27
27
  "release": "npm publish"
28
28
  },
29
29
  "dependencies": {
30
- "@lionweb/core": "0.7.2-beta.5",
31
- "@lionweb/json": "0.7.2-beta.5",
32
- "@lionweb/ts-utils": "0.7.2-beta.5",
30
+ "@lionweb/core": "0.7.2",
31
+ "@lionweb/json": "0.7.2",
32
+ "@lionweb/ts-utils": "0.7.2",
33
33
  "littoral-templates": "0.5.1",
34
34
  "mobx": "6.13.7"
35
35
  }
@@ -482,7 +482,7 @@ export const applyDeltasWithLookup = (idMapping: IdMapping, deltas: IDelta[], up
482
482
  /**
483
483
  * Applies the given {@link Delta delta} to {@link nodes INodeBase} given as the values of a {@link IdMapping ID mapping id &rarr; node}.
484
484
  * Note that the delta is *not* applied to the original nodes (object-)referenced by the deltas, but to the nodes present in the ID mapping.
485
- * These can be distinct from the original nodes, e.g. after a roundtrip to an external model processor. *
485
+ * These can be distinct from the original nodes, e.g. after a roundtrip to an external model processor.
486
486
  * @usage should look as follows.
487
487
  *
488
488
  * ```typescript
@@ -83,6 +83,70 @@ export abstract class SingleContainmentValueManager<T extends INodeBase> extends
83
83
  this.child.set(newChild);
84
84
  }
85
85
 
86
+ protected setInternal(newChild: T | undefined) {
87
+ const oldChild = this.getDirectly(); // (oldChild is contained by this.container through this.containment)
88
+ if (oldChild === undefined) {
89
+ if (newChild === undefined) {
90
+ // do nothing: nothing's changed
91
+ } else {
92
+ if (newChild.parent === undefined) {
93
+ this.emitDelta(() => new ChildAddedDelta(this.container, this.feature, 0, newChild));
94
+ } else {
95
+ const oldParent = newChild.parent;
96
+ const oldContainment = newChild.containment!;
97
+ const oldIndex = removeFromContainment(newChild);
98
+ if (oldParent === this.container) {
99
+ if (oldContainment === this.containment) {
100
+ this.emitDelta(() => new ChildMovedInSameContainmentDelta(this.container, this.containment, oldIndex, 0, newChild));
101
+ } else {
102
+ this.emitDelta(() => new ChildMovedFromOtherContainmentInSameParentDelta(this.container, oldContainment, oldIndex, newChild, this.containment, 0));
103
+ }
104
+ } else {
105
+ this.emitDelta(() => new ChildMovedFromOtherContainmentDelta(oldParent, oldContainment, oldIndex, this.container, this.containment, 0, newChild));
106
+ }
107
+ }
108
+ this.setDirectly(newChild);
109
+ newChild.attachTo(this.container, this.feature);
110
+ }
111
+ } else {
112
+ if (newChild === undefined) {
113
+ if (this.containment.optional) {
114
+ oldChild.detach();
115
+ this.setDirectly(undefined);
116
+ this.emitDelta(() => new ChildDeletedDelta(this.container, this.containment, 0, oldChild));
117
+ } else {
118
+ this.throwOnUnset();
119
+ }
120
+ } else {
121
+ if (oldChild === newChild) {
122
+ // do nothing: nothing's changed
123
+ } else {
124
+ oldChild.detach();
125
+ this.setDirectly(newChild);
126
+ if (newChild.parent === undefined) {
127
+ // newChild is unattached:
128
+ newChild.attachTo(this.container, this.feature);
129
+ this.emitDelta(() => new ChildReplacedDelta(this.container, this.feature, 0, oldChild, newChild));
130
+ } else {
131
+ const oldParent = newChild.parent;
132
+ const oldContainment = newChild.containment!;
133
+ const oldIndex = removeFromContainment(newChild);
134
+ if (oldParent === this.container) {
135
+ if (oldContainment === this.containment) {
136
+ this.emitDelta(() => new ChildMovedAndReplacedInSameContainmentDelta(this.container, this.containment, 0, 0, newChild, oldChild));
137
+ } else {
138
+ this.emitDelta(() => new ChildMovedAndReplacedFromOtherContainmentInSameParentDelta(this.container, oldContainment, oldIndex, this.containment, 0, newChild, oldChild));
139
+ }
140
+ } else {
141
+ this.emitDelta(() => new ChildMovedAndReplacedFromOtherContainmentDelta(this.container, this.containment, 0, newChild, oldParent, oldContainment, oldIndex, oldChild));
142
+ }
143
+ newChild.attachTo(this.container, this.feature);
144
+ }
145
+ }
146
+ }
147
+ }
148
+ }
149
+
86
150
  @action replaceWith(movedChild: T) {
87
151
  const replacedChild = this.getDirectly();
88
152
  if (replacedChild === undefined) {
@@ -134,45 +198,7 @@ export class OptionalSingleContainmentValueManager<T extends INodeBase> extends
134
198
  }
135
199
 
136
200
  @action set(newChild: T | undefined) {
137
- const oldChild = this.getDirectly();
138
- if (oldChild === undefined) {
139
- if (newChild === undefined) {
140
- // do nothing: nothing's changed
141
- } else {
142
- if (newChild.parent && newChild.containment) {
143
- const oldParent = newChild.parent;
144
- removeFromContainment(newChild);
145
- this.emitDelta(() => new ChildMovedFromOtherContainmentDelta(oldParent, newChild.containment!, 0, this.container, this.feature, 0, newChild));
146
- } else {
147
- this.emitDelta(() => new ChildAddedDelta(this.container, this.feature, 0, newChild));
148
- }
149
- this.setDirectly(newChild);
150
- newChild.attachTo(this.container, this.feature);
151
- }
152
- } else {
153
- if (newChild === undefined) {
154
- oldChild.detach();
155
- this.setDirectly(undefined);
156
- this.emitDelta(() => new ChildDeletedDelta(this.container, this.feature, 0, oldChild));
157
- } else {
158
- if (oldChild === newChild) {
159
- // do nothing: nothing's changed
160
- } else {
161
- // FIXME this could emit 2 deltas where it should be a single ChildReplaced-delta
162
- if (oldChild.parent && oldChild.containment && oldChild.parent === this.container && oldChild.containment === this.feature) {
163
- // FIXME oldChild.parent COULD be this.container
164
- this.emitDelta(() => new ChildDeletedDelta(this.container, this.feature, 0, oldChild));
165
- }
166
- oldChild.detach();
167
- if (newChild.parent && newChild.containment) {
168
- removeFromContainment(newChild);
169
- }
170
- this.setDirectly(newChild);
171
- newChild.attachTo(this.container, this.feature);
172
- this.emitDelta(() => new ChildReplacedDelta(this.container, this.feature, 0, oldChild, newChild));
173
- }
174
- }
175
- }
201
+ this.setInternal(newChild);
176
202
  }
177
203
 
178
204
  }
@@ -193,52 +219,8 @@ export class RequiredSingleContainmentValueManager<T extends INodeBase> extends
193
219
  return child;
194
220
  }
195
221
 
196
- @action set(newChild: T | undefined) {
197
- const oldChild = this.getDirectly(); // (oldChild is contained by this.container through this.containment)
198
- if (oldChild === undefined) {
199
- if (newChild === undefined) {
200
- // do nothing: nothing's changed
201
- } else {
202
- if (newChild.parent === undefined) {
203
- this.emitDelta(() => new ChildAddedDelta(this.container, this.feature, 0, newChild));
204
- } else {
205
- const oldParent = newChild.parent;
206
- const oldIndex = removeFromContainment(newChild);
207
- this.emitDelta(() => new ChildMovedFromOtherContainmentDelta(oldParent, newChild.containment!, oldIndex, this.container, this.feature, 0, newChild));
208
- }
209
- this.setDirectly(newChild);
210
- newChild.attachTo(this.container, this.feature);
211
- }
212
- } else {
213
- if (newChild === undefined) {
214
- this.throwOnUnset();
215
- } else {
216
- if (oldChild === newChild) {
217
- // do nothing: nothing's changed
218
- } else {
219
- oldChild.detach();
220
- this.setDirectly(newChild);
221
- if (newChild.parent === undefined) {
222
- // newChild is unattached:
223
- newChild.attachTo(this.container, this.feature);
224
- this.emitDelta(() => new ChildReplacedDelta(this.container, this.feature, 0, oldChild, newChild));
225
- } else {
226
- const oldContainment = newChild.containment!;
227
- const oldIndex = removeFromContainment(newChild);
228
- if (newChild.parent === this.container) {
229
- if (newChild.containment === this.containment) {
230
- this.emitDelta(() => new ChildMovedAndReplacedInSameContainmentDelta(this.container, this.containment, 0, 0, newChild, oldChild));
231
- } else {
232
- this.emitDelta(() => new ChildMovedAndReplacedFromOtherContainmentInSameParentDelta(this.container, oldContainment, oldIndex, this.containment, 0, newChild, oldChild));
233
- }
234
- } else {
235
- this.emitDelta(() => new ChildMovedAndReplacedFromOtherContainmentDelta(this.container, this.containment, 0, newChild, newChild.parent!, oldContainment, oldIndex, oldChild));
236
- }
237
- newChild.attachTo(this.container, this.feature);
238
- }
239
- }
240
- }
241
- }
222
+ @action set(newChild: T) {
223
+ this.setInternal(newChild);
242
224
  }
243
225
 
244
226
  }