@eclipse-glsp/graph 0.9.0-next.397cddd.4 → 0.9.0-next.95961ba.7

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/lib/gedge.d.ts CHANGED
@@ -22,12 +22,6 @@ export declare class GEdge extends GModelElement {
22
22
  sourceId: string;
23
23
  targetId: string;
24
24
  routerKind?: string;
25
- private _source;
26
- private _target;
27
- get source(): GModelElement;
28
- set source(value: GModelElement);
29
- get target(): GModelElement;
30
- set target(value: GModelElement);
31
25
  }
32
26
  export declare namespace GEdge {
33
27
  function is(object: unknown): object is GEdge;
@@ -1 +1 @@
1
- {"version":3,"file":"gedge.d.ts","sourceRoot":"","sources":["../src/gedge.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;kFAckF;AAClF,OAAO,EAAsC,KAAK,EAAE,MAAM,wBAAwB,CAAC;AACnF,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAEvE,qBAAa,KAAM,SAAQ,aAAa;IACpC,MAAM,CAAC,OAAO,IAAI,YAAY;IAI9B,IAAI,SAAqB;IACzB,aAAa,EAAE,KAAK,EAAE,CAAM;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,OAAO,CAAgB;IAC/B,OAAO,CAAC,OAAO,CAAgB;IAE/B,IAAI,MAAM,IAAI,aAAa,CAE1B;IAED,IAAI,MAAM,CAAC,KAAK,EAAE,aAAa,EAG9B;IAED,IAAI,MAAM,IAAI,aAAa,CAE1B;IAED,IAAI,MAAM,CAAC,KAAK,EAAE,aAAa,EAG9B;CACJ;AAED,yBAAiB,KAAK,CAAC;IACnB,SAAgB,EAAE,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,IAAI,KAAK,CAEnD;CACJ;AAED,qBAAa,YAAY,CAAC,CAAC,SAAS,KAAK,GAAG,KAAK,CAAE,SAAQ,oBAAoB,CAAC,CAAC,CAAC;IAC9E,MAAM,CAAC,MAAM,EAAE,aAAa,GAAG,IAAI;IAKnC,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAKhC,MAAM,CAAC,MAAM,EAAE,aAAa,GAAG,IAAI;IAKnC,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAKhC,UAAU,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAKpC,eAAe,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI;IAC3C,eAAe,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI;IAUnC,gBAAgB,CAAC,aAAa,EAAE,KAAK,EAAE,GAAG,IAAI;IAC9C,gBAAgB,CAAC,GAAG,aAAa,EAAE,KAAK,EAAE,GAAG,IAAI;CAKpD"}
1
+ {"version":3,"file":"gedge.d.ts","sourceRoot":"","sources":["../src/gedge.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;kFAckF;AAClF,OAAO,EAAsC,KAAK,EAAE,MAAM,wBAAwB,CAAC;AACnF,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAEvE,qBAAa,KAAM,SAAQ,aAAa;IACpC,MAAM,CAAC,OAAO,IAAI,YAAY;IAI9B,IAAI,SAAqB;IACzB,aAAa,EAAE,KAAK,EAAE,CAAM;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,yBAAiB,KAAK,CAAC;IACnB,SAAgB,EAAE,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,IAAI,KAAK,CAEnD;CACJ;AAED,qBAAa,YAAY,CAAC,CAAC,SAAS,KAAK,GAAG,KAAK,CAAE,SAAQ,oBAAoB,CAAC,CAAC,CAAC;IAC9E,MAAM,CAAC,MAAM,EAAE,aAAa,GAAG,IAAI;IAKnC,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAKhC,MAAM,CAAC,MAAM,EAAE,aAAa,GAAG,IAAI;IAKnC,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAKhC,UAAU,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAKpC,eAAe,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI;IAC3C,eAAe,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI;IAUnC,gBAAgB,CAAC,aAAa,EAAE,KAAK,EAAE,GAAG,IAAI;IAC9C,gBAAgB,CAAC,GAAG,aAAa,EAAE,KAAK,EAAE,GAAG,IAAI;CAKpD"}
package/lib/gedge.js CHANGED
@@ -27,20 +27,6 @@ class GEdge extends gmodel_element_1.GModelElement {
27
27
  static builder() {
28
28
  return new GEdgeBuilder(GEdge).type(protocol_1.DefaultTypes.EDGE);
29
29
  }
30
- get source() {
31
- return this._source;
32
- }
33
- set source(value) {
34
- this._source = value;
35
- this.sourceId = value.id;
36
- }
37
- get target() {
38
- return this._target;
39
- }
40
- set target(value) {
41
- this._target = value;
42
- this.targetId = value.id;
43
- }
44
30
  }
45
31
  exports.GEdge = GEdge;
46
32
  (function (GEdge) {
@@ -51,7 +37,7 @@ exports.GEdge = GEdge;
51
37
  })(GEdge = exports.GEdge || (exports.GEdge = {}));
52
38
  class GEdgeBuilder extends gmodel_element_1.GModelElementBuilder {
53
39
  source(source) {
54
- this.proxy.source = source;
40
+ this.proxy.sourceId = source.id;
55
41
  return this;
56
42
  }
57
43
  sourceId(sourceId) {
@@ -59,7 +45,7 @@ class GEdgeBuilder extends gmodel_element_1.GModelElementBuilder {
59
45
  return this;
60
46
  }
61
47
  target(target) {
62
- this.proxy.target = target;
48
+ this.proxy.targetId = target.id;
63
49
  return this;
64
50
  }
65
51
  targetId(targetId) {
package/lib/gedge.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"gedge.js","sourceRoot":"","sources":["../src/gedge.ts"],"names":[],"mappings":";;;AAAA;;;;;;;;;;;;;;kFAckF;AAClF,qDAAmF;AACnF,qDAAuE;AAEvE,MAAa,KAAM,SAAQ,8BAAa;IAAxC;;QAKI,SAAI,GAAG,uBAAY,CAAC,IAAI,CAAC;QACzB,kBAAa,GAAY,EAAE,CAAC;IAwBhC,CAAC;IA7BG,MAAM,CAAC,OAAO;QACV,OAAO,IAAI,YAAY,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,uBAAY,CAAC,IAAI,CAAC,CAAC;IAC3D,CAAC;IAUD,IAAI,MAAM;QACN,OAAO,IAAI,CAAC,OAAO,CAAC;IACxB,CAAC;IAED,IAAI,MAAM,CAAC,KAAoB;QAC3B,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QACrB,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,EAAE,CAAC;IAC7B,CAAC;IAED,IAAI,MAAM;QACN,OAAO,IAAI,CAAC,OAAO,CAAC;IACxB,CAAC;IAED,IAAI,MAAM,CAAC,KAAoB;QAC3B,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QACrB,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,EAAE,CAAC;IAC7B,CAAC;CACJ;AA9BD,sBA8BC;AAED,WAAiB,KAAK;IAClB,SAAgB,EAAE,CAAC,MAAe;QAC9B,OAAO,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;IAC5B,CAAC;IAFe,QAAE,KAEjB,CAAA;AACL,CAAC,EAJgB,KAAK,GAAL,aAAK,KAAL,aAAK,QAIrB;AAED,MAAa,YAAsC,SAAQ,qCAAuB;IAC9E,MAAM,CAAC,MAAqB;QACxB,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC;QAC3B,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,QAAQ,CAAC,QAAgB;QACrB,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,QAAQ,CAAC;QAC/B,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,MAAM,CAAC,MAAqB;QACxB,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC;QAC3B,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,QAAQ,CAAC,QAAgB;QACrB,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,QAAQ,CAAC;QAC/B,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,UAAU,CAAC,UAAkB;QACzB,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,UAAU,CAAC;QACnC,OAAO,IAAI,CAAC;IAChB,CAAC;IAID,eAAe,CAAC,QAAwB,EAAE,CAAU;QAChD,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE;YAC9B,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;SAC3C;aAAM,IAAI,CAAC,EAAE;YACV,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC;SACrD;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IAID,gBAAgB,CAAC,GAAG,aAAkC;QAClD,mBAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,aAAa,CAAC,CAAC;QAClD,OAAO,IAAI,CAAC;IAChB,CAAC;CACJ;AA3CD,oCA2CC"}
1
+ {"version":3,"file":"gedge.js","sourceRoot":"","sources":["../src/gedge.ts"],"names":[],"mappings":";;;AAAA;;;;;;;;;;;;;;kFAckF;AAClF,qDAAmF;AACnF,qDAAuE;AAEvE,MAAa,KAAM,SAAQ,8BAAa;IAAxC;;QAKI,SAAI,GAAG,uBAAY,CAAC,IAAI,CAAC;QACzB,kBAAa,GAAY,EAAE,CAAC;IAIhC,CAAC;IATG,MAAM,CAAC,OAAO;QACV,OAAO,IAAI,YAAY,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,uBAAY,CAAC,IAAI,CAAC,CAAC;IAC3D,CAAC;CAOJ;AAVD,sBAUC;AAED,WAAiB,KAAK;IAClB,SAAgB,EAAE,CAAC,MAAe;QAC9B,OAAO,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;IAC5B,CAAC;IAFe,QAAE,KAEjB,CAAA;AACL,CAAC,EAJgB,KAAK,GAAL,aAAK,KAAL,aAAK,QAIrB;AAED,MAAa,YAAsC,SAAQ,qCAAuB;IAC9E,MAAM,CAAC,MAAqB;QACxB,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,MAAM,CAAC,EAAE,CAAC;QAChC,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,QAAQ,CAAC,QAAgB;QACrB,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,QAAQ,CAAC;QAC/B,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,MAAM,CAAC,MAAqB;QACxB,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,MAAM,CAAC,EAAE,CAAC;QAChC,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,QAAQ,CAAC,QAAgB;QACrB,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,QAAQ,CAAC;QAC/B,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,UAAU,CAAC,UAAkB;QACzB,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,UAAU,CAAC;QACnC,OAAO,IAAI,CAAC;IAChB,CAAC;IAID,eAAe,CAAC,QAAwB,EAAE,CAAU;QAChD,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE;YAC9B,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;SAC3C;aAAM,IAAI,CAAC,EAAE;YACV,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC;SACrD;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IAID,gBAAgB,CAAC,GAAG,aAAkC;QAClD,mBAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,aAAa,CAAC,CAAC;QAClD,OAAO,IAAI,CAAC;IAChB,CAAC;CACJ;AA3CD,oCA2CC"}
@@ -56,6 +56,9 @@ export declare abstract class GModelElement implements GModelElementSchema {
56
56
  * having to extend the model.
57
57
  */
58
58
  args?: Args;
59
+ /**
60
+ * Retrieve the {@link GModelRoot} element by traversing up the parent hierachy.
61
+ */
59
62
  get root(): GModelRoot;
60
63
  }
61
64
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"gmodel-element.d.ts","sourceRoot":"","sources":["../src/gmodel-element.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;kFAckF;AAClF,OAAO,EACH,IAAI,EACJ,MAAM,EACN,SAAS,EAIT,aAAa,EAEb,KAAK,EACL,mBAAmB,EACnB,gBAAgB,EACnB,MAAM,wBAAwB,CAAC;AAEhC,oBAAY,wBAAwB,CAAC,CAAC,SAAS,aAAa,GAAG,aAAa,IAAI,UAAU,CAAC,CAAC;AAE5F;;GAEG;AACH,oBAAY,mBAAmB,GAAG,mBAAmB,CAAC;AAEtD,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,GAAG,GAAG,MAAM,IAAI,mBAAmB,CAEhF;AAED;;;GAGG;AACH,8BAAsB,aAAc,YAAW,mBAAmB;IAC9D;;;;;;OAMG;IACH,IAAI,EAAE,MAAM,CAAC;IACb;;;OAGG;IACH,EAAE,EAAE,MAAM,CAAC;IACX;;OAEG;IACH,UAAU,EAAE,MAAM,EAAE,CAAM;IAC1B;;;OAGG;IACH,QAAQ,EAAE,aAAa,EAAE,CAAM;IAC/B;;OAEG;IACH,MAAM,EAAE,aAAa,CAAC;IACtB;;;OAGG;IACH,IAAI,CAAC,EAAE,IAAI,CAAC;IAEZ,IAAI,IAAI,IAAI,UAAU,CAMrB;CACJ;AAED;;;;;GAKG;AACH,8BAAsB,oBAAoB,CAAC,CAAC,SAAS,aAAa;IAC9D,SAAS,CAAC,KAAK,EAAE,CAAC,CAAC;IACnB,SAAS,CAAC,kBAAkB,EAAE,wBAAwB,CAAC,CAAC,CAAC,CAAC;gBAE9C,kBAAkB,EAAE,wBAAwB,CAAC,CAAC,CAAC;IAQ3D,KAAK,IAAI,IAAI;IAKb,KAAK,IAAI,CAAC;IAaV,EAAE,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAKpB,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAKxB,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAKnC,aAAa,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,IAAI;IACzC,aAAa,CAAC,GAAG,UAAU,EAAE,MAAM,EAAE,GAAG,IAAI;IAM5C,GAAG,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI;IAK/B,WAAW,CAAC,QAAQ,EAAE,aAAa,EAAE,GAAG,IAAI;IAC5C,WAAW,CAAC,GAAG,QAAQ,EAAE,aAAa,EAAE,GAAG,IAAI;IAM/C,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,GAAG,IAAI;IAQ/C,OAAO,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI;IACzB,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC,GAAG,IAAI;CAelD;AAED,oBAAY,gBAAgB,GAAG,gBAAgB,CAAC;AAEhD,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,GAAG,GAAG,MAAM,IAAI,gBAAgB,CAE1E;AAED,qBAAa,UAAW,SAAQ,aAAc,YAAW,gBAAgB;IACrE,MAAM,CAAC,OAAO,IAAI,iBAAiB;IAInC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,SAAK;CAChB;AAED,qBAAa,iBAAiB,CAAC,CAAC,SAAS,UAAU,GAAG,UAAU,CAAE,SAAQ,oBAAoB,CAAC,CAAC,CAAC;IAC7F,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAKhC,YAAY,CAAC,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,GAAG,IAAI;IACpD,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;CAWrC"}
1
+ {"version":3,"file":"gmodel-element.d.ts","sourceRoot":"","sources":["../src/gmodel-element.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;kFAckF;AAClF,OAAO,EACH,IAAI,EACJ,MAAM,EACN,SAAS,EAGT,aAAa,EAEb,KAAK,EACL,mBAAmB,EACnB,gBAAgB,EACnB,MAAM,wBAAwB,CAAC;AAEhC,oBAAY,wBAAwB,CAAC,CAAC,SAAS,aAAa,GAAG,aAAa,IAAI,UAAU,CAAC,CAAC;AAC5F;;GAEG;AACH,oBAAY,mBAAmB,GAAG,mBAAmB,CAAC;AAEtD,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,GAAG,GAAG,MAAM,IAAI,mBAAmB,CAEhF;AAED;;;GAGG;AACH,8BAAsB,aAAc,YAAW,mBAAmB;IAC9D;;;;;;OAMG;IACH,IAAI,EAAE,MAAM,CAAC;IACb;;;OAGG;IACH,EAAE,EAAE,MAAM,CAAC;IACX;;OAEG;IACH,UAAU,EAAE,MAAM,EAAE,CAAM;IAC1B;;;OAGG;IACH,QAAQ,EAAE,aAAa,EAAE,CAAM;IAC/B;;OAEG;IACH,MAAM,EAAE,aAAa,CAAC;IACtB;;;OAGG;IACH,IAAI,CAAC,EAAE,IAAI,CAAC;IAEZ;;OAEG;IACH,IAAI,IAAI,IAAI,UAAU,CAMrB;CACJ;AAED;;;;;GAKG;AACH,8BAAsB,oBAAoB,CAAC,CAAC,SAAS,aAAa;IAC9D,SAAS,CAAC,KAAK,EAAE,CAAC,CAAC;IACnB,SAAS,CAAC,kBAAkB,EAAE,wBAAwB,CAAC,CAAC,CAAC,CAAC;gBAE9C,kBAAkB,EAAE,wBAAwB,CAAC,CAAC,CAAC;IAQ3D,KAAK,IAAI,IAAI;IAKb,KAAK,IAAI,CAAC;IAaV,EAAE,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAKpB,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAKxB,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAKnC,aAAa,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,IAAI;IACzC,aAAa,CAAC,GAAG,UAAU,EAAE,MAAM,EAAE,GAAG,IAAI;IAM5C,GAAG,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI;IAK/B,WAAW,CAAC,QAAQ,EAAE,aAAa,EAAE,GAAG,IAAI;IAC5C,WAAW,CAAC,GAAG,QAAQ,EAAE,aAAa,EAAE,GAAG,IAAI;IAM/C,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,GAAG,IAAI;IAQ/C,OAAO,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI;IACzB,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC,GAAG,IAAI;CAelD;AAED,oBAAY,gBAAgB,GAAG,gBAAgB,CAAC;AAEhD,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,GAAG,GAAG,MAAM,IAAI,gBAAgB,CAE1E;AAED,qBAAa,UAAW,SAAQ,aAAc,YAAW,gBAAgB;IACrE,MAAM,CAAC,OAAO,IAAI,iBAAiB;IAInC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,SAAK;CAChB;AAED,qBAAa,iBAAiB,CAAC,CAAC,SAAS,UAAU,GAAG,UAAU,CAAE,SAAQ,oBAAoB,CAAC,CAAC,CAAC;IAC7F,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAKhC,YAAY,CAAC,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,GAAG,IAAI;IACpD,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;CAWrC"}
@@ -38,6 +38,9 @@ class GModelElement {
38
38
  */
39
39
  this.children = [];
40
40
  }
41
+ /**
42
+ * Retrieve the {@link GModelRoot} element by traversing up the parent hierachy.
43
+ */
41
44
  get root() {
42
45
  let current = this;
43
46
  while (!(current instanceof GModelRoot)) {
@@ -127,7 +130,7 @@ class GModelElementBuilder {
127
130
  }
128
131
  exports.GModelElementBuilder = GModelElementBuilder;
129
132
  function isGModelRootSchema(schema) {
130
- return protocol_1.isSModelRootSchema(schema);
133
+ return protocol_1.isSModelElementSchema(schema);
131
134
  }
132
135
  exports.isGModelRootSchema = isGModelRootSchema;
133
136
  class GModelRoot extends GModelElement {
@@ -1 +1 @@
1
- {"version":3,"file":"gmodel-element.js","sourceRoot":"","sources":["../src/gmodel-element.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"gmodel-element.js","sourceRoot":"","sources":["../src/gmodel-element.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,36 @@
1
+ /********************************************************************************
2
+ * Copyright (c) 2022 STMicroelectronics and others.
3
+ *
4
+ * This program and the accompanying materials are made available under the
5
+ * terms of the Eclipse Public License v. 2.0 which is available at
6
+ * http://www.eclipse.org/legal/epl-2.0.
7
+ *
8
+ * This Source Code may also be made available under the following Secondary
9
+ * Licenses when the conditions for such availability set forth in the Eclipse
10
+ * Public License v. 2.0 are satisfied: GNU General Public License, version 2
11
+ * with the GNU Classpath Exception which is available at
12
+ * https://www.gnu.org/software/classpath/license.html.
13
+ *
14
+ * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
15
+ ********************************************************************************/
16
+ import { GModelElement, GModelElementConstructor } from '.';
17
+ export declare type Predicate<T> = (element: T) => boolean;
18
+ /**
19
+ * Returns the first element matching the search predicate starting from the given
20
+ * element and walking up the parent hierarchy.
21
+ *
22
+ * @param element The element to start the search from.
23
+ * @param searchPredicate The predicate which the element should match.
24
+ * @returns The first matching element or `undefined`.
25
+ */
26
+ export declare function findParent(element: GModelElement, searchPredicate: Predicate<GModelElement>): GModelElement | undefined;
27
+ /**
28
+ * Returns the first parent element that is an instance of the given {@link GModelElementConstructor} starting from the given element.
29
+ * (recursively walking up the parent hierarchy).
30
+ *
31
+ * @param element The element to start the search from.
32
+ * @param constructor The queried parent class ({@link GModelElementConstructor}).
33
+ * @returns The first matching parent element or `undefined`.
34
+ */
35
+ export declare function findParentByClass<G extends GModelElement>(element: GModelElement, constructor: GModelElementConstructor<G>): G | undefined;
36
+ //# sourceMappingURL=gmodel-util.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gmodel-util.d.ts","sourceRoot":"","sources":["../src/gmodel-util.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;kFAckF;AAElF,OAAO,EAAE,aAAa,EAAE,wBAAwB,EAAE,MAAM,GAAG,CAAC;AAE5D,oBAAY,SAAS,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,KAAK,OAAO,CAAC;AAEnD;;;;;;;GAOG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,SAAS,CAAC,aAAa,CAAC,GAAG,aAAa,GAAG,SAAS,CASvH;AAED;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,SAAS,aAAa,EACrD,OAAO,EAAE,aAAa,EACtB,WAAW,EAAE,wBAAwB,CAAC,CAAC,CAAC,GACzC,CAAC,GAAG,SAAS,CAOf"}
@@ -0,0 +1,55 @@
1
+ "use strict";
2
+ /********************************************************************************
3
+ * Copyright (c) 2022 STMicroelectronics and others.
4
+ *
5
+ * This program and the accompanying materials are made available under the
6
+ * terms of the Eclipse Public License v. 2.0 which is available at
7
+ * http://www.eclipse.org/legal/epl-2.0.
8
+ *
9
+ * This Source Code may also be made available under the following Secondary
10
+ * Licenses when the conditions for such availability set forth in the Eclipse
11
+ * Public License v. 2.0 are satisfied: GNU General Public License, version 2
12
+ * with the GNU Classpath Exception which is available at
13
+ * https://www.gnu.org/software/classpath/license.html.
14
+ *
15
+ * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
16
+ ********************************************************************************/
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ exports.findParentByClass = exports.findParent = void 0;
19
+ /**
20
+ * Returns the first element matching the search predicate starting from the given
21
+ * element and walking up the parent hierarchy.
22
+ *
23
+ * @param element The element to start the search from.
24
+ * @param searchPredicate The predicate which the element should match.
25
+ * @returns The first matching element or `undefined`.
26
+ */
27
+ function findParent(element, searchPredicate) {
28
+ if (!element) {
29
+ return undefined;
30
+ }
31
+ if (searchPredicate(element)) {
32
+ return element;
33
+ }
34
+ const parent = element.parent;
35
+ return parent ? findParent(parent, searchPredicate) : undefined;
36
+ }
37
+ exports.findParent = findParent;
38
+ /**
39
+ * Returns the first parent element that is an instance of the given {@link GModelElementConstructor} starting from the given element.
40
+ * (recursively walking up the parent hierarchy).
41
+ *
42
+ * @param element The element to start the search from.
43
+ * @param constructor The queried parent class ({@link GModelElementConstructor}).
44
+ * @returns The first matching parent element or `undefined`.
45
+ */
46
+ function findParentByClass(element, constructor) {
47
+ const predicate = element => element instanceof constructor;
48
+ const result = findParent(element, predicate);
49
+ if (result) {
50
+ return result;
51
+ }
52
+ return undefined;
53
+ }
54
+ exports.findParentByClass = findParentByClass;
55
+ //# sourceMappingURL=gmodel-util.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gmodel-util.js","sourceRoot":"","sources":["../src/gmodel-util.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;kFAckF;;;AAMlF;;;;;;;GAOG;AACH,SAAgB,UAAU,CAAC,OAAsB,EAAE,eAAyC;IACxF,IAAI,CAAC,OAAO,EAAE;QACV,OAAO,SAAS,CAAC;KACpB;IACD,IAAI,eAAe,CAAC,OAAO,CAAC,EAAE;QAC1B,OAAO,OAAO,CAAC;KAClB;IACD,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAC9B,OAAO,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AACpE,CAAC;AATD,gCASC;AAED;;;;;;;GAOG;AACH,SAAgB,iBAAiB,CAC7B,OAAsB,EACtB,WAAwC;IAExC,MAAM,SAAS,GAA6B,OAAO,CAAC,EAAE,CAAC,OAAO,YAAY,WAAW,CAAC;IACtF,MAAM,MAAM,GAAG,UAAU,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IAC9C,IAAI,MAAM,EAAE;QACR,OAAO,MAAW,CAAC;KACtB;IACD,OAAO,SAAS,CAAC;AACrB,CAAC;AAVD,8CAUC"}
package/lib/index.d.ts CHANGED
@@ -25,9 +25,10 @@ export * from './gissue-marker';
25
25
  export * from './glabel';
26
26
  export * from './glayout-container';
27
27
  export * from './glayoutable';
28
- export * from './gpre-rendered-element';
29
28
  export * from './gmodel-element';
29
+ export * from './gmodel-util';
30
30
  export * from './gnode';
31
31
  export * from './gport';
32
+ export * from './gpre-rendered-element';
32
33
  export * from './gshape-element';
33
34
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;kFAckF;AAClF,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,WAAW,CAAC;AAC1B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,SAAS,CAAC;AACxB,cAAc,oBAAoB,CAAC;AACnC,cAAc,UAAU,CAAC;AACzB,cAAc,iBAAiB,CAAC;AAChC,cAAc,UAAU,CAAC;AACzB,cAAc,qBAAqB,CAAC;AACpC,cAAc,eAAe,CAAC;AAC9B,cAAc,yBAAyB,CAAC;AACxC,cAAc,kBAAkB,CAAC;AACjC,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,cAAc,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;kFAckF;AAClF,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,WAAW,CAAC;AAC1B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,SAAS,CAAC;AACxB,cAAc,oBAAoB,CAAC;AACnC,cAAc,UAAU,CAAC;AACzB,cAAc,iBAAiB,CAAC;AAChC,cAAc,UAAU,CAAC;AACzB,cAAc,qBAAqB,CAAC;AACpC,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC;AAC9B,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,cAAc,yBAAyB,CAAC;AACxC,cAAc,kBAAkB,CAAC"}
package/lib/index.js CHANGED
@@ -37,9 +37,10 @@ __exportStar(require("./gissue-marker"), exports);
37
37
  __exportStar(require("./glabel"), exports);
38
38
  __exportStar(require("./glayout-container"), exports);
39
39
  __exportStar(require("./glayoutable"), exports);
40
- __exportStar(require("./gpre-rendered-element"), exports);
41
40
  __exportStar(require("./gmodel-element"), exports);
41
+ __exportStar(require("./gmodel-util"), exports);
42
42
  __exportStar(require("./gnode"), exports);
43
43
  __exportStar(require("./gport"), exports);
44
+ __exportStar(require("./gpre-rendered-element"), exports);
44
45
  __exportStar(require("./gshape-element"), exports);
45
46
  //# sourceMappingURL=index.js.map
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA;;;;;;;;;;;;;;kFAckF;AAClF,kDAAgC;AAChC,+CAA6B;AAC7B,iDAA+B;AAC/B,4CAA0B;AAC1B,iDAA+B;AAC/B,0CAAwB;AACxB,qDAAmC;AACnC,2CAAyB;AACzB,kDAAgC;AAChC,2CAAyB;AACzB,sDAAoC;AACpC,gDAA8B;AAC9B,0DAAwC;AACxC,mDAAiC;AACjC,0CAAwB;AACxB,0CAAwB;AACxB,mDAAiC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA;;;;;;;;;;;;;;kFAckF;AAClF,kDAAgC;AAChC,+CAA6B;AAC7B,iDAA+B;AAC/B,4CAA0B;AAC1B,iDAA+B;AAC/B,0CAAwB;AACxB,qDAAmC;AACnC,2CAAyB;AACzB,kDAAgC;AAChC,2CAAyB;AACzB,sDAAoC;AACpC,gDAA8B;AAC9B,mDAAiC;AACjC,gDAA8B;AAC9B,0CAAwB;AACxB,0CAAwB;AACxB,0DAAwC;AACxC,mDAAiC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@eclipse-glsp/graph",
3
- "version": "0.9.0-next.397cddd.4+397cddd",
3
+ "version": "0.9.0-next.95961ba.7+95961ba",
4
4
  "description": "The typescript implementation of the GLSP graphical model (GModel)",
5
5
  "license": "(EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0)",
6
6
  "keywords": [
@@ -59,5 +59,5 @@
59
59
  },
60
60
  "main": "lib/index",
61
61
  "types": "lib/index",
62
- "gitHead": "397cddd532e9596bbe3717d931ae5ca826d949dd"
62
+ "gitHead": "95961ba417aa103e0a7c59273daa6462ae538dde"
63
63
  }
package/src/gedge.ts CHANGED
@@ -26,26 +26,6 @@ export class GEdge extends GModelElement {
26
26
  sourceId: string;
27
27
  targetId: string;
28
28
  routerKind?: string;
29
- private _source: GModelElement;
30
- private _target: GModelElement;
31
-
32
- get source(): GModelElement {
33
- return this._source;
34
- }
35
-
36
- set source(value: GModelElement) {
37
- this._source = value;
38
- this.sourceId = value.id;
39
- }
40
-
41
- get target(): GModelElement {
42
- return this._target;
43
- }
44
-
45
- set target(value: GModelElement) {
46
- this._target = value;
47
- this.targetId = value.id;
48
- }
49
29
  }
50
30
 
51
31
  export namespace GEdge {
@@ -56,7 +36,7 @@ export namespace GEdge {
56
36
 
57
37
  export class GEdgeBuilder<G extends GEdge = GEdge> extends GModelElementBuilder<G> {
58
38
  source(source: GModelElement): this {
59
- this.proxy.source = source;
39
+ this.proxy.sourceId = source.id;
60
40
  return this;
61
41
  }
62
42
 
@@ -66,7 +46,7 @@ export class GEdgeBuilder<G extends GEdge = GEdge> extends GModelElementBuilder<
66
46
  }
67
47
 
68
48
  target(target: GModelElement): this {
69
- this.proxy.target = target;
49
+ this.proxy.targetId = target.id;
70
50
  return this;
71
51
  }
72
52
 
@@ -19,7 +19,6 @@ import {
19
19
  Dimension,
20
20
  flatPush,
21
21
  isSModelElementSchema,
22
- isSModelRootSchema,
23
22
  JsonPrimitive,
24
23
  MaybeArray,
25
24
  Point,
@@ -28,7 +27,6 @@ import {
28
27
  } from '@eclipse-glsp/protocol';
29
28
  import * as uuid from 'uuid';
30
29
  export type GModelElementConstructor<G extends GModelElement = GModelElement> = new () => G;
31
-
32
30
  /**
33
31
  * Represents a `GModeElement` serialized as plain JSON object.
34
32
  */
@@ -75,6 +73,9 @@ export abstract class GModelElement implements GModelElementSchema {
75
73
  */
76
74
  args?: Args;
77
75
 
76
+ /**
77
+ * Retrieve the {@link GModelRoot} element by traversing up the parent hierachy.
78
+ */
78
79
  get root(): GModelRoot {
79
80
  let current: GModelElement = this;
80
81
  while (!(current instanceof GModelRoot)) {
@@ -183,7 +184,7 @@ export abstract class GModelElementBuilder<G extends GModelElement> {
183
184
  export type GModelRootSchema = SModelRootSchema;
184
185
 
185
186
  export function isGModelRootSchema(schema: any): schema is GModelRootSchema {
186
- return isSModelRootSchema(schema);
187
+ return isSModelElementSchema(schema);
187
188
  }
188
189
 
189
190
  export class GModelRoot extends GModelElement implements SModelRootSchema {
@@ -0,0 +1,58 @@
1
+ /********************************************************************************
2
+ * Copyright (c) 2022 STMicroelectronics and others.
3
+ *
4
+ * This program and the accompanying materials are made available under the
5
+ * terms of the Eclipse Public License v. 2.0 which is available at
6
+ * http://www.eclipse.org/legal/epl-2.0.
7
+ *
8
+ * This Source Code may also be made available under the following Secondary
9
+ * Licenses when the conditions for such availability set forth in the Eclipse
10
+ * Public License v. 2.0 are satisfied: GNU General Public License, version 2
11
+ * with the GNU Classpath Exception which is available at
12
+ * https://www.gnu.org/software/classpath/license.html.
13
+ *
14
+ * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
15
+ ********************************************************************************/
16
+
17
+ import { GModelElement, GModelElementConstructor } from '.';
18
+
19
+ export type Predicate<T> = (element: T) => boolean;
20
+
21
+ /**
22
+ * Returns the first element matching the search predicate starting from the given
23
+ * element and walking up the parent hierarchy.
24
+ *
25
+ * @param element The element to start the search from.
26
+ * @param searchPredicate The predicate which the element should match.
27
+ * @returns The first matching element or `undefined`.
28
+ */
29
+ export function findParent(element: GModelElement, searchPredicate: Predicate<GModelElement>): GModelElement | undefined {
30
+ if (!element) {
31
+ return undefined;
32
+ }
33
+ if (searchPredicate(element)) {
34
+ return element;
35
+ }
36
+ const parent = element.parent;
37
+ return parent ? findParent(parent, searchPredicate) : undefined;
38
+ }
39
+
40
+ /**
41
+ * Returns the first parent element that is an instance of the given {@link GModelElementConstructor} starting from the given element.
42
+ * (recursively walking up the parent hierarchy).
43
+ *
44
+ * @param element The element to start the search from.
45
+ * @param constructor The queried parent class ({@link GModelElementConstructor}).
46
+ * @returns The first matching parent element or `undefined`.
47
+ */
48
+ export function findParentByClass<G extends GModelElement>(
49
+ element: GModelElement,
50
+ constructor: GModelElementConstructor<G>
51
+ ): G | undefined {
52
+ const predicate: Predicate<GModelElement> = element => element instanceof constructor;
53
+ const result = findParent(element, predicate);
54
+ if (result) {
55
+ return result as G;
56
+ }
57
+ return undefined;
58
+ }
package/src/index.ts CHANGED
@@ -25,8 +25,9 @@ export * from './gissue-marker';
25
25
  export * from './glabel';
26
26
  export * from './glayout-container';
27
27
  export * from './glayoutable';
28
- export * from './gpre-rendered-element';
29
28
  export * from './gmodel-element';
29
+ export * from './gmodel-util';
30
30
  export * from './gnode';
31
31
  export * from './gport';
32
+ export * from './gpre-rendered-element';
32
33
  export * from './gshape-element';