@itwin/ecschema-metadata 4.0.0-dev.7 → 4.0.0-dev.72

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 (121) hide show
  1. package/CHANGELOG.md +41 -1
  2. package/lib/cjs/Constants.d.ts +23 -23
  3. package/lib/cjs/Constants.js +33 -33
  4. package/lib/cjs/Constants.js.map +1 -1
  5. package/lib/cjs/Context.d.ts +139 -139
  6. package/lib/cjs/Context.js +204 -204
  7. package/lib/cjs/DelayedPromise.d.ts +88 -88
  8. package/lib/cjs/DelayedPromise.d.ts.map +1 -1
  9. package/lib/cjs/DelayedPromise.js +91 -91
  10. package/lib/cjs/DelayedPromise.js.map +1 -1
  11. package/lib/cjs/Deserialization/AbstractParser.d.ts +45 -45
  12. package/lib/cjs/Deserialization/AbstractParser.d.ts.map +1 -1
  13. package/lib/cjs/Deserialization/AbstractParser.js +11 -11
  14. package/lib/cjs/Deserialization/Helper.d.ts +251 -251
  15. package/lib/cjs/Deserialization/Helper.js +843 -843
  16. package/lib/cjs/Deserialization/JsonParser.d.ts +165 -165
  17. package/lib/cjs/Deserialization/JsonParser.js +680 -680
  18. package/lib/cjs/Deserialization/JsonProps.d.ts +282 -282
  19. package/lib/cjs/Deserialization/JsonProps.d.ts.map +1 -1
  20. package/lib/cjs/Deserialization/JsonProps.js +9 -9
  21. package/lib/cjs/Deserialization/SchemaGraphUtil.d.ts +34 -34
  22. package/lib/cjs/Deserialization/SchemaGraphUtil.js +77 -77
  23. package/lib/cjs/Deserialization/XmlParser.d.ts +85 -85
  24. package/lib/cjs/Deserialization/XmlParser.js +973 -973
  25. package/lib/cjs/Deserialization/XmlSerializationUtils.d.ts +54 -54
  26. package/lib/cjs/Deserialization/XmlSerializationUtils.js +174 -174
  27. package/lib/cjs/ECName.d.ts +30 -30
  28. package/lib/cjs/ECName.js +85 -85
  29. package/lib/cjs/ECObjects.d.ts +162 -162
  30. package/lib/cjs/ECObjects.js +453 -453
  31. package/lib/cjs/Exception.d.ts +43 -43
  32. package/lib/cjs/Exception.js +84 -84
  33. package/lib/cjs/Interfaces.d.ts +66 -66
  34. package/lib/cjs/Interfaces.d.ts.map +1 -1
  35. package/lib/cjs/Interfaces.js +9 -9
  36. package/lib/cjs/Metadata/Class.d.ts +243 -243
  37. package/lib/cjs/Metadata/Class.js +558 -558
  38. package/lib/cjs/Metadata/Class.js.map +1 -1
  39. package/lib/cjs/Metadata/Constant.d.ts +64 -64
  40. package/lib/cjs/Metadata/Constant.js +123 -123
  41. package/lib/cjs/Metadata/Constant.js.map +1 -1
  42. package/lib/cjs/Metadata/CustomAttribute.d.ts +23 -23
  43. package/lib/cjs/Metadata/CustomAttribute.js +27 -27
  44. package/lib/cjs/Metadata/CustomAttributeClass.d.ts +39 -39
  45. package/lib/cjs/Metadata/CustomAttributeClass.js +68 -68
  46. package/lib/cjs/Metadata/CustomAttributeClass.js.map +1 -1
  47. package/lib/cjs/Metadata/EntityClass.d.ts +77 -77
  48. package/lib/cjs/Metadata/EntityClass.js +230 -230
  49. package/lib/cjs/Metadata/Enumeration.d.ts +86 -86
  50. package/lib/cjs/Metadata/Enumeration.d.ts.map +1 -1
  51. package/lib/cjs/Metadata/Enumeration.js +159 -159
  52. package/lib/cjs/Metadata/Enumeration.js.map +1 -1
  53. package/lib/cjs/Metadata/Format.d.ts +98 -98
  54. package/lib/cjs/Metadata/Format.js +242 -242
  55. package/lib/cjs/Metadata/InvertedUnit.d.ts +49 -49
  56. package/lib/cjs/Metadata/InvertedUnit.js +97 -97
  57. package/lib/cjs/Metadata/KindOfQuantity.d.ts +65 -65
  58. package/lib/cjs/Metadata/KindOfQuantity.js +225 -225
  59. package/lib/cjs/Metadata/KindOfQuantity.js.map +1 -1
  60. package/lib/cjs/Metadata/Mixin.d.ts +54 -54
  61. package/lib/cjs/Metadata/Mixin.js +113 -113
  62. package/lib/cjs/Metadata/Mixin.js.map +1 -1
  63. package/lib/cjs/Metadata/OverrideFormat.d.ts +55 -55
  64. package/lib/cjs/Metadata/OverrideFormat.js +88 -88
  65. package/lib/cjs/Metadata/Phenomenon.d.ts +33 -33
  66. package/lib/cjs/Metadata/Phenomenon.js +59 -59
  67. package/lib/cjs/Metadata/Property.d.ts +197 -197
  68. package/lib/cjs/Metadata/Property.d.ts.map +1 -1
  69. package/lib/cjs/Metadata/Property.js +491 -491
  70. package/lib/cjs/Metadata/Property.js.map +1 -1
  71. package/lib/cjs/Metadata/PropertyCategory.d.ts +39 -39
  72. package/lib/cjs/Metadata/PropertyCategory.js +61 -61
  73. package/lib/cjs/Metadata/PropertyCategory.js.map +1 -1
  74. package/lib/cjs/Metadata/RelationshipClass.d.ts +152 -152
  75. package/lib/cjs/Metadata/RelationshipClass.js +349 -349
  76. package/lib/cjs/Metadata/RelationshipClass.js.map +1 -1
  77. package/lib/cjs/Metadata/Schema.d.ts +291 -291
  78. package/lib/cjs/Metadata/Schema.d.ts.map +1 -1
  79. package/lib/cjs/Metadata/Schema.js +520 -520
  80. package/lib/cjs/Metadata/Schema.js.map +1 -1
  81. package/lib/cjs/Metadata/SchemaItem.d.ts +61 -61
  82. package/lib/cjs/Metadata/SchemaItem.js +136 -136
  83. package/lib/cjs/Metadata/Unit.d.ts +76 -76
  84. package/lib/cjs/Metadata/Unit.js +162 -162
  85. package/lib/cjs/Metadata/Unit.js.map +1 -1
  86. package/lib/cjs/Metadata/UnitSystem.d.ts +20 -20
  87. package/lib/cjs/Metadata/UnitSystem.js +29 -29
  88. package/lib/cjs/PropertyTypes.d.ts +49 -49
  89. package/lib/cjs/PropertyTypes.js +91 -91
  90. package/lib/cjs/PropertyTypes.js.map +1 -1
  91. package/lib/cjs/SchemaJsonLocater.d.ts +34 -34
  92. package/lib/cjs/SchemaJsonLocater.d.ts.map +1 -1
  93. package/lib/cjs/SchemaJsonLocater.js +42 -42
  94. package/lib/cjs/SchemaKey.d.ts +110 -110
  95. package/lib/cjs/SchemaKey.js +219 -219
  96. package/lib/cjs/SchemaLoader.d.ts +23 -23
  97. package/lib/cjs/SchemaLoader.js +47 -47
  98. package/lib/cjs/SchemaPartVisitorDelegate.d.ts +274 -274
  99. package/lib/cjs/SchemaPartVisitorDelegate.js +212 -212
  100. package/lib/cjs/UnitConversion/Graph.d.ts +34 -34
  101. package/lib/cjs/UnitConversion/Graph.js +83 -83
  102. package/lib/cjs/UnitConversion/Parser.d.ts +8 -8
  103. package/lib/cjs/UnitConversion/Parser.js +42 -42
  104. package/lib/cjs/UnitConversion/UnitConversion.d.ts +45 -45
  105. package/lib/cjs/UnitConversion/UnitConversion.js +77 -77
  106. package/lib/cjs/UnitConversion/UnitConversion.js.map +1 -1
  107. package/lib/cjs/UnitConversion/UnitConverter.d.ts +39 -39
  108. package/lib/cjs/UnitConversion/UnitConverter.js +116 -116
  109. package/lib/cjs/UnitConversion/UnitTree.d.ts +43 -43
  110. package/lib/cjs/UnitConversion/UnitTree.js +169 -169
  111. package/lib/cjs/UnitProvider/SchemaUnitProvider.d.ts +77 -77
  112. package/lib/cjs/UnitProvider/SchemaUnitProvider.js +234 -236
  113. package/lib/cjs/UnitProvider/SchemaUnitProvider.js.map +1 -1
  114. package/lib/cjs/Validation/SchemaWalker.d.ts +23 -23
  115. package/lib/cjs/Validation/SchemaWalker.js +53 -53
  116. package/lib/cjs/ecschema-metadata.d.ts +51 -51
  117. package/lib/cjs/ecschema-metadata.js +100 -96
  118. package/lib/cjs/ecschema-metadata.js.map +1 -1
  119. package/lib/cjs/utils/SchemaGraph.d.ts +25 -25
  120. package/lib/cjs/utils/SchemaGraph.js +65 -65
  121. package/package.json +12 -12
@@ -1,89 +1,89 @@
1
- "use strict";
2
- /*---------------------------------------------------------------------------------------------
3
- * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
4
- * See LICENSE.md in the project root for license terms and full copyright notice.
5
- *--------------------------------------------------------------------------------------------*/
6
- /** @packageDocumentation
7
- * @module Metadata
8
- */
9
- Object.defineProperty(exports, "__esModule", { value: true });
10
- exports.OverrideFormat = void 0;
11
- const XmlSerializationUtils_1 = require("../Deserialization/XmlSerializationUtils");
12
- const ECObjects_1 = require("../ECObjects");
13
- /**
14
- * Overrides of a Format, from a Schema, and is SchemaItem that is used specifically on KindOfQuantity.
15
- * @beta
16
- */
17
- class OverrideFormat {
18
- constructor(parent, precision, unitAndLabels) {
19
- this.parent = parent;
20
- this.name = OverrideFormat.createOverrideFormatFullName(parent, precision, unitAndLabels);
21
- this._precision = precision;
22
- this._units = unitAndLabels;
23
- }
24
- // Properties that can be overriden
25
- get precision() { return (undefined === this._precision) ? this.parent.precision : this._precision; }
26
- get units() { return (undefined === this._units) ? this.parent.units : this._units; }
27
- // Properties that cannot be overriden
28
- get fullName() { return this.name; }
29
- get roundFactor() { return this.parent.roundFactor; }
30
- get type() { return this.parent.type; }
31
- get minWidth() { return this.parent.minWidth; }
32
- get scientificType() { return this.parent.scientificType; }
33
- get showSignOption() { return this.parent.showSignOption; }
34
- get decimalSeparator() { return this.parent.decimalSeparator; }
35
- get thousandSeparator() { return this.parent.thousandSeparator; }
36
- get uomSeparator() { return this.parent.uomSeparator; }
37
- get stationSeparator() { return this.parent.stationSeparator; }
38
- get stationOffsetSize() { return this.parent.stationOffsetSize; }
39
- get formatTraits() { return this.parent.formatTraits; }
40
- get spacer() { return this.parent.spacer; }
41
- get includeZero() { return this.parent.includeZero; }
42
- hasFormatTrait(formatTrait) {
43
- return (this.parent.formatTraits & formatTrait) === formatTrait;
44
- }
45
- /** Returns the format string of this override in the Xml full name format.
46
- * @alpha
47
- */
48
- fullNameXml(koqSchema) {
49
- let fullName = XmlSerializationUtils_1.XmlSerializationUtils.createXmlTypedName(koqSchema, this.parent.schema, this.parent.name);
50
- if (undefined !== this.precision)
51
- fullName += `(${this.precision.toString()})`;
52
- if (undefined === this._units)
53
- return fullName;
54
- for (const [unit, unitLabel] of this._units) {
55
- fullName += "[";
56
- fullName += XmlSerializationUtils_1.XmlSerializationUtils.createXmlTypedName(koqSchema, unit.schema, unit.name);
57
- fullName += `|${unitLabel}]`;
58
- }
59
- return fullName;
60
- }
61
- /**
62
- * Creates a valid OverrideFormat fullName from the parent Format and overridden units.
63
- * @param parent The parent Format.
64
- * @param unitAndLabels The overridden unit and labels collection.
65
- */
66
- static createOverrideFormatFullName(parent, precision, unitAndLabels) {
67
- let fullName = parent.fullName;
68
- if (precision)
69
- fullName += `(${precision.toString()})`;
70
- if (undefined === unitAndLabels)
71
- return fullName;
72
- for (const [unit, unitLabel] of unitAndLabels)
73
- if (undefined === unitLabel)
74
- fullName += `[${unit.fullName}]`;
75
- else
76
- fullName += `[${unit.fullName}|${unitLabel}]`;
77
- return fullName;
78
- }
79
- /**
80
- * @internal
81
- */
82
- static isOverrideFormat(object) {
83
- const overrideFormat = object;
84
- return overrideFormat !== undefined && overrideFormat.name !== undefined && overrideFormat.parent !== undefined &&
85
- overrideFormat.parent.schemaItemType === ECObjects_1.SchemaItemType.Format;
86
- }
87
- }
88
- exports.OverrideFormat = OverrideFormat;
1
+ "use strict";
2
+ /*---------------------------------------------------------------------------------------------
3
+ * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
4
+ * See LICENSE.md in the project root for license terms and full copyright notice.
5
+ *--------------------------------------------------------------------------------------------*/
6
+ /** @packageDocumentation
7
+ * @module Metadata
8
+ */
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.OverrideFormat = void 0;
11
+ const XmlSerializationUtils_1 = require("../Deserialization/XmlSerializationUtils");
12
+ const ECObjects_1 = require("../ECObjects");
13
+ /**
14
+ * Overrides of a Format, from a Schema, and is SchemaItem that is used specifically on KindOfQuantity.
15
+ * @beta
16
+ */
17
+ class OverrideFormat {
18
+ constructor(parent, precision, unitAndLabels) {
19
+ this.parent = parent;
20
+ this.name = OverrideFormat.createOverrideFormatFullName(parent, precision, unitAndLabels);
21
+ this._precision = precision;
22
+ this._units = unitAndLabels;
23
+ }
24
+ // Properties that can be overriden
25
+ get precision() { return (undefined === this._precision) ? this.parent.precision : this._precision; }
26
+ get units() { return (undefined === this._units) ? this.parent.units : this._units; }
27
+ // Properties that cannot be overriden
28
+ get fullName() { return this.name; }
29
+ get roundFactor() { return this.parent.roundFactor; }
30
+ get type() { return this.parent.type; }
31
+ get minWidth() { return this.parent.minWidth; }
32
+ get scientificType() { return this.parent.scientificType; }
33
+ get showSignOption() { return this.parent.showSignOption; }
34
+ get decimalSeparator() { return this.parent.decimalSeparator; }
35
+ get thousandSeparator() { return this.parent.thousandSeparator; }
36
+ get uomSeparator() { return this.parent.uomSeparator; }
37
+ get stationSeparator() { return this.parent.stationSeparator; }
38
+ get stationOffsetSize() { return this.parent.stationOffsetSize; }
39
+ get formatTraits() { return this.parent.formatTraits; }
40
+ get spacer() { return this.parent.spacer; }
41
+ get includeZero() { return this.parent.includeZero; }
42
+ hasFormatTrait(formatTrait) {
43
+ return (this.parent.formatTraits & formatTrait) === formatTrait;
44
+ }
45
+ /** Returns the format string of this override in the Xml full name format.
46
+ * @alpha
47
+ */
48
+ fullNameXml(koqSchema) {
49
+ let fullName = XmlSerializationUtils_1.XmlSerializationUtils.createXmlTypedName(koqSchema, this.parent.schema, this.parent.name);
50
+ if (undefined !== this.precision)
51
+ fullName += `(${this.precision.toString()})`;
52
+ if (undefined === this._units)
53
+ return fullName;
54
+ for (const [unit, unitLabel] of this._units) {
55
+ fullName += "[";
56
+ fullName += XmlSerializationUtils_1.XmlSerializationUtils.createXmlTypedName(koqSchema, unit.schema, unit.name);
57
+ fullName += `|${unitLabel}]`;
58
+ }
59
+ return fullName;
60
+ }
61
+ /**
62
+ * Creates a valid OverrideFormat fullName from the parent Format and overridden units.
63
+ * @param parent The parent Format.
64
+ * @param unitAndLabels The overridden unit and labels collection.
65
+ */
66
+ static createOverrideFormatFullName(parent, precision, unitAndLabels) {
67
+ let fullName = parent.fullName;
68
+ if (precision)
69
+ fullName += `(${precision.toString()})`;
70
+ if (undefined === unitAndLabels)
71
+ return fullName;
72
+ for (const [unit, unitLabel] of unitAndLabels)
73
+ if (undefined === unitLabel)
74
+ fullName += `[${unit.fullName}]`;
75
+ else
76
+ fullName += `[${unit.fullName}|${unitLabel}]`;
77
+ return fullName;
78
+ }
79
+ /**
80
+ * @internal
81
+ */
82
+ static isOverrideFormat(object) {
83
+ const overrideFormat = object;
84
+ return overrideFormat !== undefined && overrideFormat.name !== undefined && overrideFormat.parent !== undefined &&
85
+ overrideFormat.parent.schemaItemType === ECObjects_1.SchemaItemType.Format;
86
+ }
87
+ }
88
+ exports.OverrideFormat = OverrideFormat;
89
89
  //# sourceMappingURL=OverrideFormat.js.map
@@ -1,34 +1,34 @@
1
- /** @packageDocumentation
2
- * @module Metadata
3
- */
4
- import { PhenomenonProps } from "../Deserialization/JsonProps";
5
- import { SchemaItemType } from "../ECObjects";
6
- import { Schema } from "./Schema";
7
- import { SchemaItem } from "./SchemaItem";
8
- /** @beta */
9
- export declare class Phenomenon extends SchemaItem {
10
- readonly schemaItemType: SchemaItemType.Phenomenon;
11
- protected _definition: string;
12
- constructor(schema: Schema, name: string);
13
- get definition(): string;
14
- /**
15
- * Save this Phenomenon's properties to an object for serializing to JSON.
16
- * @param standalone Serialization includes only this object (as opposed to the full schema).
17
- * @param includeSchemaVersion Include the Schema's version information in the serialized object.
18
- */
19
- toJSON(standalone?: boolean, includeSchemaVersion?: boolean): PhenomenonProps;
20
- /** @internal */
21
- toXml(schemaXml: Document): Promise<Element>;
22
- fromJSONSync(phenomenonProps: PhenomenonProps): void;
23
- fromJSON(phenomenonProps: PhenomenonProps): Promise<void>;
24
- protected setDefinition(definition: string): Promise<void>;
25
- }
26
- /**
27
- * @internal
28
- * An abstract class used for schema editing.
29
- */
30
- export declare abstract class MutablePhenomenon extends Phenomenon {
31
- abstract setDefinition(definition: string): Promise<void>;
32
- abstract setDisplayLabel(displayLabel: string): void;
33
- }
1
+ /** @packageDocumentation
2
+ * @module Metadata
3
+ */
4
+ import { PhenomenonProps } from "../Deserialization/JsonProps";
5
+ import { SchemaItemType } from "../ECObjects";
6
+ import { Schema } from "./Schema";
7
+ import { SchemaItem } from "./SchemaItem";
8
+ /** @beta */
9
+ export declare class Phenomenon extends SchemaItem {
10
+ readonly schemaItemType: SchemaItemType.Phenomenon;
11
+ protected _definition: string;
12
+ constructor(schema: Schema, name: string);
13
+ get definition(): string;
14
+ /**
15
+ * Save this Phenomenon's properties to an object for serializing to JSON.
16
+ * @param standalone Serialization includes only this object (as opposed to the full schema).
17
+ * @param includeSchemaVersion Include the Schema's version information in the serialized object.
18
+ */
19
+ toJSON(standalone?: boolean, includeSchemaVersion?: boolean): PhenomenonProps;
20
+ /** @internal */
21
+ toXml(schemaXml: Document): Promise<Element>;
22
+ fromJSONSync(phenomenonProps: PhenomenonProps): void;
23
+ fromJSON(phenomenonProps: PhenomenonProps): Promise<void>;
24
+ protected setDefinition(definition: string): Promise<void>;
25
+ }
26
+ /**
27
+ * @internal
28
+ * An abstract class used for schema editing.
29
+ */
30
+ export declare abstract class MutablePhenomenon extends Phenomenon {
31
+ abstract setDefinition(definition: string): Promise<void>;
32
+ abstract setDisplayLabel(displayLabel: string): void;
33
+ }
34
34
  //# sourceMappingURL=Phenomenon.d.ts.map
@@ -1,60 +1,60 @@
1
- "use strict";
2
- /*---------------------------------------------------------------------------------------------
3
- * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
4
- * See LICENSE.md in the project root for license terms and full copyright notice.
5
- *--------------------------------------------------------------------------------------------*/
6
- /** @packageDocumentation
7
- * @module Metadata
8
- */
9
- Object.defineProperty(exports, "__esModule", { value: true });
10
- exports.MutablePhenomenon = exports.Phenomenon = void 0;
11
- const ECObjects_1 = require("../ECObjects");
12
- const Exception_1 = require("../Exception");
13
- const SchemaItem_1 = require("./SchemaItem");
14
- /** @beta */
15
- class Phenomenon extends SchemaItem_1.SchemaItem {
16
- constructor(schema, name) {
17
- super(schema, name);
18
- this.schemaItemType = ECObjects_1.SchemaItemType.Phenomenon;
19
- this._definition = "";
20
- }
21
- get definition() { return this._definition; }
22
- /**
23
- * Save this Phenomenon's properties to an object for serializing to JSON.
24
- * @param standalone Serialization includes only this object (as opposed to the full schema).
25
- * @param includeSchemaVersion Include the Schema's version information in the serialized object.
26
- */
27
- toJSON(standalone = false, includeSchemaVersion = false) {
28
- const schemaJson = super.toJSON(standalone, includeSchemaVersion);
29
- schemaJson.definition = this.definition;
30
- return schemaJson;
31
- }
32
- /** @internal */
33
- async toXml(schemaXml) {
34
- const itemElement = await super.toXml(schemaXml);
35
- itemElement.setAttribute("definition", this.definition);
36
- return itemElement;
37
- }
38
- fromJSONSync(phenomenonProps) {
39
- super.fromJSONSync(phenomenonProps);
40
- if (this._definition !== "" && phenomenonProps.definition.toLowerCase() !== this._definition.toLowerCase())
41
- throw new Exception_1.ECObjectsError(Exception_1.ECObjectsStatus.InvalidECJson, `The Phenomenon ${this.name} has an invalid 'definition' attribute.`);
42
- else if (this._definition === "")
43
- this._definition = phenomenonProps.definition;
44
- }
45
- async fromJSON(phenomenonProps) {
46
- this.fromJSONSync(phenomenonProps);
47
- }
48
- async setDefinition(definition) {
49
- this._definition = definition;
50
- }
51
- }
52
- exports.Phenomenon = Phenomenon;
53
- /**
54
- * @internal
55
- * An abstract class used for schema editing.
56
- */
57
- class MutablePhenomenon extends Phenomenon {
58
- }
59
- exports.MutablePhenomenon = MutablePhenomenon;
1
+ "use strict";
2
+ /*---------------------------------------------------------------------------------------------
3
+ * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
4
+ * See LICENSE.md in the project root for license terms and full copyright notice.
5
+ *--------------------------------------------------------------------------------------------*/
6
+ /** @packageDocumentation
7
+ * @module Metadata
8
+ */
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.MutablePhenomenon = exports.Phenomenon = void 0;
11
+ const ECObjects_1 = require("../ECObjects");
12
+ const Exception_1 = require("../Exception");
13
+ const SchemaItem_1 = require("./SchemaItem");
14
+ /** @beta */
15
+ class Phenomenon extends SchemaItem_1.SchemaItem {
16
+ constructor(schema, name) {
17
+ super(schema, name);
18
+ this.schemaItemType = ECObjects_1.SchemaItemType.Phenomenon;
19
+ this._definition = "";
20
+ }
21
+ get definition() { return this._definition; }
22
+ /**
23
+ * Save this Phenomenon's properties to an object for serializing to JSON.
24
+ * @param standalone Serialization includes only this object (as opposed to the full schema).
25
+ * @param includeSchemaVersion Include the Schema's version information in the serialized object.
26
+ */
27
+ toJSON(standalone = false, includeSchemaVersion = false) {
28
+ const schemaJson = super.toJSON(standalone, includeSchemaVersion);
29
+ schemaJson.definition = this.definition;
30
+ return schemaJson;
31
+ }
32
+ /** @internal */
33
+ async toXml(schemaXml) {
34
+ const itemElement = await super.toXml(schemaXml);
35
+ itemElement.setAttribute("definition", this.definition);
36
+ return itemElement;
37
+ }
38
+ fromJSONSync(phenomenonProps) {
39
+ super.fromJSONSync(phenomenonProps);
40
+ if (this._definition !== "" && phenomenonProps.definition.toLowerCase() !== this._definition.toLowerCase())
41
+ throw new Exception_1.ECObjectsError(Exception_1.ECObjectsStatus.InvalidECJson, `The Phenomenon ${this.name} has an invalid 'definition' attribute.`);
42
+ else if (this._definition === "")
43
+ this._definition = phenomenonProps.definition;
44
+ }
45
+ async fromJSON(phenomenonProps) {
46
+ this.fromJSONSync(phenomenonProps);
47
+ }
48
+ async setDefinition(definition) {
49
+ this._definition = definition;
50
+ }
51
+ }
52
+ exports.Phenomenon = Phenomenon;
53
+ /**
54
+ * @internal
55
+ * An abstract class used for schema editing.
56
+ */
57
+ class MutablePhenomenon extends Phenomenon {
58
+ }
59
+ exports.MutablePhenomenon = MutablePhenomenon;
60
60
  //# sourceMappingURL=Phenomenon.js.map