@itwin/ecschema-metadata 5.0.0-dev.98 → 5.0.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 +61 -1
- package/lib/cjs/Context.d.ts +4 -4
- package/lib/cjs/Context.d.ts.map +1 -1
- package/lib/cjs/Context.js +7 -7
- package/lib/cjs/Context.js.map +1 -1
- package/lib/cjs/DelayedPromise.d.ts +9 -8
- package/lib/cjs/DelayedPromise.d.ts.map +1 -1
- package/lib/cjs/DelayedPromise.js +2 -2
- package/lib/cjs/DelayedPromise.js.map +1 -1
- package/lib/cjs/Deserialization/Helper.d.ts.map +1 -1
- package/lib/cjs/Deserialization/Helper.js +27 -26
- package/lib/cjs/Deserialization/Helper.js.map +1 -1
- package/lib/cjs/Deserialization/JsonParser.js +150 -150
- package/lib/cjs/Deserialization/JsonParser.js.map +1 -1
- package/lib/cjs/Deserialization/JsonProps.d.ts +34 -34
- package/lib/cjs/Deserialization/JsonProps.d.ts.map +1 -1
- package/lib/cjs/Deserialization/JsonProps.js +3 -3
- package/lib/cjs/Deserialization/JsonProps.js.map +1 -1
- package/lib/cjs/Deserialization/XmlParser.js +49 -49
- package/lib/cjs/Deserialization/XmlParser.js.map +1 -1
- package/lib/cjs/Deserialization/XmlSerializationUtils.d.ts +0 -5
- package/lib/cjs/Deserialization/XmlSerializationUtils.d.ts.map +1 -1
- package/lib/cjs/Deserialization/XmlSerializationUtils.js +6 -11
- package/lib/cjs/Deserialization/XmlSerializationUtils.js.map +1 -1
- package/lib/cjs/ECName.d.ts +2 -2
- package/lib/cjs/ECName.js +4 -4
- package/lib/cjs/ECName.js.map +1 -1
- package/lib/cjs/ECObjects.d.ts +24 -12
- package/lib/cjs/ECObjects.d.ts.map +1 -1
- package/lib/cjs/ECObjects.js +48 -25
- package/lib/cjs/ECObjects.js.map +1 -1
- package/lib/cjs/Exception.d.ts +4 -4
- package/lib/cjs/Exception.d.ts.map +1 -1
- package/lib/cjs/Exception.js +60 -60
- package/lib/cjs/Exception.js.map +1 -1
- package/lib/cjs/Interfaces.d.ts +30 -34
- package/lib/cjs/Interfaces.d.ts.map +1 -1
- package/lib/cjs/Interfaces.js.map +1 -1
- package/lib/cjs/Metadata/Class.d.ts +107 -19
- package/lib/cjs/Metadata/Class.d.ts.map +1 -1
- package/lib/cjs/Metadata/Class.js +127 -47
- package/lib/cjs/Metadata/Class.js.map +1 -1
- package/lib/cjs/Metadata/Constant.d.ts +12 -9
- package/lib/cjs/Metadata/Constant.d.ts.map +1 -1
- package/lib/cjs/Metadata/Constant.js +12 -9
- package/lib/cjs/Metadata/Constant.js.map +1 -1
- package/lib/cjs/Metadata/CustomAttribute.d.ts +2 -2
- package/lib/cjs/Metadata/CustomAttribute.d.ts.map +1 -1
- package/lib/cjs/Metadata/CustomAttribute.js.map +1 -1
- package/lib/cjs/Metadata/CustomAttributeClass.d.ts +6 -4
- package/lib/cjs/Metadata/CustomAttributeClass.d.ts.map +1 -1
- package/lib/cjs/Metadata/CustomAttributeClass.js +8 -6
- package/lib/cjs/Metadata/CustomAttributeClass.js.map +1 -1
- package/lib/cjs/Metadata/EntityClass.d.ts +20 -3
- package/lib/cjs/Metadata/EntityClass.d.ts.map +1 -1
- package/lib/cjs/Metadata/EntityClass.js +32 -14
- package/lib/cjs/Metadata/EntityClass.js.map +1 -1
- package/lib/cjs/Metadata/Enumeration.d.ts +16 -9
- package/lib/cjs/Metadata/Enumeration.d.ts.map +1 -1
- package/lib/cjs/Metadata/Enumeration.js +20 -13
- package/lib/cjs/Metadata/Enumeration.js.map +1 -1
- package/lib/cjs/Metadata/Format.d.ts +32 -24
- package/lib/cjs/Metadata/Format.d.ts.map +1 -1
- package/lib/cjs/Metadata/Format.js +47 -27
- package/lib/cjs/Metadata/Format.js.map +1 -1
- package/lib/cjs/Metadata/InvertedUnit.d.ts +11 -7
- package/lib/cjs/Metadata/InvertedUnit.d.ts.map +1 -1
- package/lib/cjs/Metadata/InvertedUnit.js +16 -10
- package/lib/cjs/Metadata/InvertedUnit.js.map +1 -1
- package/lib/cjs/Metadata/KindOfQuantity.d.ts +24 -15
- package/lib/cjs/Metadata/KindOfQuantity.d.ts.map +1 -1
- package/lib/cjs/Metadata/KindOfQuantity.js +54 -29
- package/lib/cjs/Metadata/KindOfQuantity.js.map +1 -1
- package/lib/cjs/Metadata/Mixin.d.ts +16 -3
- package/lib/cjs/Metadata/Mixin.d.ts.map +1 -1
- package/lib/cjs/Metadata/Mixin.js +20 -7
- package/lib/cjs/Metadata/Mixin.js.map +1 -1
- package/lib/cjs/Metadata/OverrideFormat.d.ts +12 -12
- package/lib/cjs/Metadata/OverrideFormat.d.ts.map +1 -1
- package/lib/cjs/Metadata/OverrideFormat.js +27 -19
- package/lib/cjs/Metadata/OverrideFormat.js.map +1 -1
- package/lib/cjs/Metadata/Phenomenon.d.ts +10 -2
- package/lib/cjs/Metadata/Phenomenon.d.ts.map +1 -1
- package/lib/cjs/Metadata/Phenomenon.js +11 -3
- package/lib/cjs/Metadata/Phenomenon.js.map +1 -1
- package/lib/cjs/Metadata/Property.d.ts +46 -28
- package/lib/cjs/Metadata/Property.d.ts.map +1 -1
- package/lib/cjs/Metadata/Property.js +46 -22
- package/lib/cjs/Metadata/Property.js.map +1 -1
- package/lib/cjs/Metadata/PropertyCategory.d.ts +6 -3
- package/lib/cjs/Metadata/PropertyCategory.d.ts.map +1 -1
- package/lib/cjs/Metadata/PropertyCategory.js +12 -5
- package/lib/cjs/Metadata/PropertyCategory.js.map +1 -1
- package/lib/cjs/Metadata/RelationshipClass.d.ts +48 -25
- package/lib/cjs/Metadata/RelationshipClass.d.ts.map +1 -1
- package/lib/cjs/Metadata/RelationshipClass.js +54 -34
- package/lib/cjs/Metadata/RelationshipClass.js.map +1 -1
- package/lib/cjs/Metadata/Schema.d.ts +50 -28
- package/lib/cjs/Metadata/Schema.d.ts.map +1 -1
- package/lib/cjs/Metadata/Schema.js +64 -42
- package/lib/cjs/Metadata/Schema.js.map +1 -1
- package/lib/cjs/Metadata/SchemaItem.d.ts +10 -19
- package/lib/cjs/Metadata/SchemaItem.d.ts.map +1 -1
- package/lib/cjs/Metadata/SchemaItem.js +12 -20
- package/lib/cjs/Metadata/SchemaItem.js.map +1 -1
- package/lib/cjs/Metadata/Unit.d.ts +17 -21
- package/lib/cjs/Metadata/Unit.d.ts.map +1 -1
- package/lib/cjs/Metadata/Unit.js +20 -22
- package/lib/cjs/Metadata/Unit.js.map +1 -1
- package/lib/cjs/Metadata/UnitSystem.d.ts +3 -1
- package/lib/cjs/Metadata/UnitSystem.d.ts.map +1 -1
- package/lib/cjs/Metadata/UnitSystem.js +4 -2
- package/lib/cjs/Metadata/UnitSystem.js.map +1 -1
- package/lib/cjs/PropertyTypes.d.ts +11 -11
- package/lib/cjs/PropertyTypes.d.ts.map +1 -1
- package/lib/cjs/PropertyTypes.js +28 -20
- package/lib/cjs/PropertyTypes.js.map +1 -1
- package/lib/cjs/SchemaFormatsProvider.d.ts +39 -0
- package/lib/cjs/SchemaFormatsProvider.d.ts.map +1 -0
- package/lib/cjs/SchemaFormatsProvider.js +172 -0
- package/lib/cjs/SchemaFormatsProvider.js.map +1 -0
- package/lib/cjs/SchemaJsonLocater.d.ts +5 -5
- package/lib/cjs/SchemaJsonLocater.js +4 -4
- package/lib/cjs/SchemaJsonLocater.js.map +1 -1
- package/lib/cjs/SchemaKey.d.ts +6 -6
- package/lib/cjs/SchemaKey.d.ts.map +1 -1
- package/lib/cjs/SchemaKey.js +9 -9
- package/lib/cjs/SchemaKey.js.map +1 -1
- package/lib/cjs/SchemaLoader.d.ts +3 -3
- package/lib/cjs/SchemaLoader.js +4 -4
- package/lib/cjs/SchemaLoader.js.map +1 -1
- package/lib/cjs/SchemaPartVisitorDelegate.d.ts +2 -2
- package/lib/cjs/SchemaPartVisitorDelegate.js +1 -1
- package/lib/cjs/SchemaPartVisitorDelegate.js.map +1 -1
- package/lib/cjs/UnitProvider/SchemaUnitProvider.js.map +1 -1
- package/lib/cjs/ecschema-metadata.d.ts +2 -1
- package/lib/cjs/ecschema-metadata.d.ts.map +1 -1
- package/lib/cjs/ecschema-metadata.js +1 -0
- package/lib/cjs/ecschema-metadata.js.map +1 -1
- package/lib/cjs/utils/SchemaGraph.js +3 -3
- package/lib/cjs/utils/SchemaGraph.js.map +1 -1
- package/lib/esm/Context.d.ts +4 -4
- package/lib/esm/Context.d.ts.map +1 -1
- package/lib/esm/Context.js +8 -8
- package/lib/esm/Context.js.map +1 -1
- package/lib/esm/DelayedPromise.d.ts +9 -8
- package/lib/esm/DelayedPromise.d.ts.map +1 -1
- package/lib/esm/DelayedPromise.js +2 -2
- package/lib/esm/DelayedPromise.js.map +1 -1
- package/lib/esm/Deserialization/Helper.d.ts.map +1 -1
- package/lib/esm/Deserialization/Helper.js +28 -27
- package/lib/esm/Deserialization/Helper.js.map +1 -1
- package/lib/esm/Deserialization/JsonParser.js +151 -151
- package/lib/esm/Deserialization/JsonParser.js.map +1 -1
- package/lib/esm/Deserialization/JsonProps.d.ts +34 -34
- package/lib/esm/Deserialization/JsonProps.d.ts.map +1 -1
- package/lib/esm/Deserialization/JsonProps.js +3 -3
- package/lib/esm/Deserialization/JsonProps.js.map +1 -1
- package/lib/esm/Deserialization/XmlParser.js +50 -50
- package/lib/esm/Deserialization/XmlParser.js.map +1 -1
- package/lib/esm/Deserialization/XmlSerializationUtils.d.ts +0 -5
- package/lib/esm/Deserialization/XmlSerializationUtils.d.ts.map +1 -1
- package/lib/esm/Deserialization/XmlSerializationUtils.js +7 -12
- package/lib/esm/Deserialization/XmlSerializationUtils.js.map +1 -1
- package/lib/esm/ECName.d.ts +2 -2
- package/lib/esm/ECName.js +5 -5
- package/lib/esm/ECName.js.map +1 -1
- package/lib/esm/ECObjects.d.ts +24 -12
- package/lib/esm/ECObjects.d.ts.map +1 -1
- package/lib/esm/ECObjects.js +49 -26
- package/lib/esm/ECObjects.js.map +1 -1
- package/lib/esm/Exception.d.ts +4 -4
- package/lib/esm/Exception.d.ts.map +1 -1
- package/lib/esm/Exception.js +58 -58
- package/lib/esm/Exception.js.map +1 -1
- package/lib/esm/Interfaces.d.ts +30 -34
- package/lib/esm/Interfaces.d.ts.map +1 -1
- package/lib/esm/Interfaces.js.map +1 -1
- package/lib/esm/Metadata/Class.d.ts +107 -19
- package/lib/esm/Metadata/Class.d.ts.map +1 -1
- package/lib/esm/Metadata/Class.js +128 -48
- package/lib/esm/Metadata/Class.js.map +1 -1
- package/lib/esm/Metadata/Constant.d.ts +12 -9
- package/lib/esm/Metadata/Constant.d.ts.map +1 -1
- package/lib/esm/Metadata/Constant.js +13 -10
- package/lib/esm/Metadata/Constant.js.map +1 -1
- package/lib/esm/Metadata/CustomAttribute.d.ts +2 -2
- package/lib/esm/Metadata/CustomAttribute.d.ts.map +1 -1
- package/lib/esm/Metadata/CustomAttribute.js.map +1 -1
- package/lib/esm/Metadata/CustomAttributeClass.d.ts +6 -4
- package/lib/esm/Metadata/CustomAttributeClass.d.ts.map +1 -1
- package/lib/esm/Metadata/CustomAttributeClass.js +9 -7
- package/lib/esm/Metadata/CustomAttributeClass.js.map +1 -1
- package/lib/esm/Metadata/EntityClass.d.ts +20 -3
- package/lib/esm/Metadata/EntityClass.d.ts.map +1 -1
- package/lib/esm/Metadata/EntityClass.js +33 -15
- package/lib/esm/Metadata/EntityClass.js.map +1 -1
- package/lib/esm/Metadata/Enumeration.d.ts +16 -9
- package/lib/esm/Metadata/Enumeration.d.ts.map +1 -1
- package/lib/esm/Metadata/Enumeration.js +21 -14
- package/lib/esm/Metadata/Enumeration.js.map +1 -1
- package/lib/esm/Metadata/Format.d.ts +32 -24
- package/lib/esm/Metadata/Format.d.ts.map +1 -1
- package/lib/esm/Metadata/Format.js +48 -28
- package/lib/esm/Metadata/Format.js.map +1 -1
- package/lib/esm/Metadata/InvertedUnit.d.ts +11 -7
- package/lib/esm/Metadata/InvertedUnit.d.ts.map +1 -1
- package/lib/esm/Metadata/InvertedUnit.js +17 -11
- package/lib/esm/Metadata/InvertedUnit.js.map +1 -1
- package/lib/esm/Metadata/KindOfQuantity.d.ts +24 -15
- package/lib/esm/Metadata/KindOfQuantity.d.ts.map +1 -1
- package/lib/esm/Metadata/KindOfQuantity.js +55 -30
- package/lib/esm/Metadata/KindOfQuantity.js.map +1 -1
- package/lib/esm/Metadata/Mixin.d.ts +16 -3
- package/lib/esm/Metadata/Mixin.d.ts.map +1 -1
- package/lib/esm/Metadata/Mixin.js +21 -8
- package/lib/esm/Metadata/Mixin.js.map +1 -1
- package/lib/esm/Metadata/OverrideFormat.d.ts +12 -12
- package/lib/esm/Metadata/OverrideFormat.d.ts.map +1 -1
- package/lib/esm/Metadata/OverrideFormat.js +28 -20
- package/lib/esm/Metadata/OverrideFormat.js.map +1 -1
- package/lib/esm/Metadata/Phenomenon.d.ts +10 -2
- package/lib/esm/Metadata/Phenomenon.d.ts.map +1 -1
- package/lib/esm/Metadata/Phenomenon.js +12 -4
- package/lib/esm/Metadata/Phenomenon.js.map +1 -1
- package/lib/esm/Metadata/Property.d.ts +46 -28
- package/lib/esm/Metadata/Property.d.ts.map +1 -1
- package/lib/esm/Metadata/Property.js +47 -23
- package/lib/esm/Metadata/Property.js.map +1 -1
- package/lib/esm/Metadata/PropertyCategory.d.ts +6 -3
- package/lib/esm/Metadata/PropertyCategory.d.ts.map +1 -1
- package/lib/esm/Metadata/PropertyCategory.js +13 -6
- package/lib/esm/Metadata/PropertyCategory.js.map +1 -1
- package/lib/esm/Metadata/RelationshipClass.d.ts +48 -25
- package/lib/esm/Metadata/RelationshipClass.d.ts.map +1 -1
- package/lib/esm/Metadata/RelationshipClass.js +55 -35
- package/lib/esm/Metadata/RelationshipClass.js.map +1 -1
- package/lib/esm/Metadata/Schema.d.ts +50 -28
- package/lib/esm/Metadata/Schema.d.ts.map +1 -1
- package/lib/esm/Metadata/Schema.js +65 -43
- package/lib/esm/Metadata/Schema.js.map +1 -1
- package/lib/esm/Metadata/SchemaItem.d.ts +10 -19
- package/lib/esm/Metadata/SchemaItem.d.ts.map +1 -1
- package/lib/esm/Metadata/SchemaItem.js +13 -21
- package/lib/esm/Metadata/SchemaItem.js.map +1 -1
- package/lib/esm/Metadata/Unit.d.ts +17 -21
- package/lib/esm/Metadata/Unit.d.ts.map +1 -1
- package/lib/esm/Metadata/Unit.js +21 -23
- package/lib/esm/Metadata/Unit.js.map +1 -1
- package/lib/esm/Metadata/UnitSystem.d.ts +3 -1
- package/lib/esm/Metadata/UnitSystem.d.ts.map +1 -1
- package/lib/esm/Metadata/UnitSystem.js +5 -3
- package/lib/esm/Metadata/UnitSystem.js.map +1 -1
- package/lib/esm/PropertyTypes.d.ts +11 -11
- package/lib/esm/PropertyTypes.d.ts.map +1 -1
- package/lib/esm/PropertyTypes.js +29 -21
- package/lib/esm/PropertyTypes.js.map +1 -1
- package/lib/esm/SchemaFormatsProvider.d.ts +39 -0
- package/lib/esm/SchemaFormatsProvider.d.ts.map +1 -0
- package/lib/esm/SchemaFormatsProvider.js +168 -0
- package/lib/esm/SchemaFormatsProvider.js.map +1 -0
- package/lib/esm/SchemaJsonLocater.d.ts +5 -5
- package/lib/esm/SchemaJsonLocater.js +4 -4
- package/lib/esm/SchemaJsonLocater.js.map +1 -1
- package/lib/esm/SchemaKey.d.ts +6 -6
- package/lib/esm/SchemaKey.d.ts.map +1 -1
- package/lib/esm/SchemaKey.js +10 -10
- package/lib/esm/SchemaKey.js.map +1 -1
- package/lib/esm/SchemaLoader.d.ts +3 -3
- package/lib/esm/SchemaLoader.js +5 -5
- package/lib/esm/SchemaLoader.js.map +1 -1
- package/lib/esm/SchemaPartVisitorDelegate.d.ts +2 -2
- package/lib/esm/SchemaPartVisitorDelegate.js +1 -1
- package/lib/esm/SchemaPartVisitorDelegate.js.map +1 -1
- package/lib/esm/UnitProvider/SchemaUnitProvider.js.map +1 -1
- package/lib/esm/ecschema-metadata.d.ts +2 -1
- package/lib/esm/ecschema-metadata.d.ts.map +1 -1
- package/lib/esm/ecschema-metadata.js +1 -0
- package/lib/esm/ecschema-metadata.js.map +1 -1
- package/lib/esm/utils/SchemaGraph.js +4 -4
- package/lib/esm/utils/SchemaGraph.js.map +1 -1
- package/package.json +12 -6
|
@@ -21,9 +21,10 @@ const SchemaItem_1 = require("./SchemaItem");
|
|
|
21
21
|
const Helper_1 = require("../Deserialization/Helper");
|
|
22
22
|
/**
|
|
23
23
|
* A common abstract class for all of the ECClass types.
|
|
24
|
-
* @
|
|
24
|
+
* @public @preview
|
|
25
25
|
*/
|
|
26
26
|
class ECClass extends SchemaItem_1.SchemaItem {
|
|
27
|
+
/** @internal */
|
|
27
28
|
static get schemaItemType() { return ECObjects_1.AbstractSchemaItemType.Class; } // need this so getItem("name", ECClass) in schema works
|
|
28
29
|
_modifier;
|
|
29
30
|
_baseClass;
|
|
@@ -33,6 +34,7 @@ class ECClass extends SchemaItem_1.SchemaItem {
|
|
|
33
34
|
_mergedPropertyCache;
|
|
34
35
|
get modifier() { return this._modifier; }
|
|
35
36
|
get customAttributes() { return this._customAttributes; }
|
|
37
|
+
/** @internal */
|
|
36
38
|
constructor(schema, name, modifier) {
|
|
37
39
|
super(schema, name);
|
|
38
40
|
if (modifier)
|
|
@@ -46,8 +48,16 @@ class ECClass extends SchemaItem_1.SchemaItem {
|
|
|
46
48
|
get baseClass() {
|
|
47
49
|
return this._baseClass;
|
|
48
50
|
}
|
|
51
|
+
getBaseClassSync() {
|
|
52
|
+
if (!this.baseClass) {
|
|
53
|
+
return undefined;
|
|
54
|
+
}
|
|
55
|
+
return this.schema.lookupItemSync(this.baseClass, ECClass);
|
|
56
|
+
}
|
|
49
57
|
/**
|
|
50
58
|
* Sets the base class of the ECClass. Pass undefined to 'remove' the base class.
|
|
59
|
+
*
|
|
60
|
+
* @internal
|
|
51
61
|
*/
|
|
52
62
|
async setBaseClass(baseClass) {
|
|
53
63
|
const oldBaseClass = this._baseClass;
|
|
@@ -70,6 +80,8 @@ class ECClass extends SchemaItem_1.SchemaItem {
|
|
|
70
80
|
* Convenience method for adding an already loaded ECProperty used by create*Property methods.
|
|
71
81
|
* @param prop The property to add.
|
|
72
82
|
* @return The property that was added.
|
|
83
|
+
*
|
|
84
|
+
* @internal
|
|
73
85
|
*/
|
|
74
86
|
addProperty(prop) {
|
|
75
87
|
if (!this._properties)
|
|
@@ -81,7 +93,7 @@ class ECClass extends SchemaItem_1.SchemaItem {
|
|
|
81
93
|
/**
|
|
82
94
|
* Deletes a property from within this class.
|
|
83
95
|
* @param name The property name to delete, lookup is case-insensitive
|
|
84
|
-
* @
|
|
96
|
+
* @internal
|
|
85
97
|
*/
|
|
86
98
|
async deleteProperty(name) {
|
|
87
99
|
if (this._properties) {
|
|
@@ -95,7 +107,7 @@ class ECClass extends SchemaItem_1.SchemaItem {
|
|
|
95
107
|
/**
|
|
96
108
|
* Deletes a property from within this class.
|
|
97
109
|
* @param name The property name to delete, lookup is case-insensitive
|
|
98
|
-
* @
|
|
110
|
+
* @internal
|
|
99
111
|
*/
|
|
100
112
|
deletePropertySync(name) {
|
|
101
113
|
if (this._properties) {
|
|
@@ -106,40 +118,37 @@ class ECClass extends SchemaItem_1.SchemaItem {
|
|
|
106
118
|
}
|
|
107
119
|
}
|
|
108
120
|
}
|
|
109
|
-
getBaseClassSync() {
|
|
110
|
-
if (!this.baseClass) {
|
|
111
|
-
return undefined;
|
|
112
|
-
}
|
|
113
|
-
return this.schema.lookupItemSync(this.baseClass, ECClass);
|
|
114
|
-
}
|
|
115
121
|
/**
|
|
116
|
-
* Searches, case-insensitive, for
|
|
117
|
-
*
|
|
122
|
+
* Searches, case-insensitive, for an ECProperty with given the name on this class and, by default, on
|
|
123
|
+
* all base classes. Set excludeInherited to 'true' to only search the local class.
|
|
124
|
+
* @param name The name of the property to retrieve.
|
|
125
|
+
* @param excludeInherited If true, excludes inherited properties from the results. Defaults to false.
|
|
118
126
|
*/
|
|
119
|
-
async getProperty(name,
|
|
127
|
+
async getProperty(name, excludeInherited = false) {
|
|
120
128
|
if (this._properties) {
|
|
121
129
|
const upperKey = name.toUpperCase();
|
|
122
130
|
const property = this._properties.get(upperKey);
|
|
123
131
|
if (property)
|
|
124
132
|
return property;
|
|
125
133
|
}
|
|
126
|
-
if (
|
|
134
|
+
if (excludeInherited) {
|
|
127
135
|
return undefined;
|
|
128
136
|
}
|
|
129
137
|
return this.getInheritedProperty(name);
|
|
130
138
|
}
|
|
131
139
|
/**
|
|
132
140
|
* Searches, case-insensitive, for a local ECProperty with the name provided.
|
|
133
|
-
* @param name
|
|
141
|
+
* @param name The name of the property to retrieve.
|
|
142
|
+
* @param excludeInherited If true, excludes inherited properties from the results. Defaults to false.
|
|
134
143
|
*/
|
|
135
|
-
getPropertySync(name,
|
|
144
|
+
getPropertySync(name, excludeInherited = false) {
|
|
136
145
|
if (this._properties) {
|
|
137
146
|
const upperKey = name.toUpperCase();
|
|
138
147
|
const property = this._properties.get(upperKey);
|
|
139
148
|
if (property)
|
|
140
149
|
return property;
|
|
141
150
|
}
|
|
142
|
-
if (
|
|
151
|
+
if (excludeInherited) {
|
|
143
152
|
return undefined;
|
|
144
153
|
}
|
|
145
154
|
return this.getInheritedPropertySync(name);
|
|
@@ -151,7 +160,7 @@ class ECClass extends SchemaItem_1.SchemaItem {
|
|
|
151
160
|
async getInheritedProperty(name) {
|
|
152
161
|
if (this.baseClass) {
|
|
153
162
|
const baseClassObj = await this.baseClass;
|
|
154
|
-
return baseClassObj.getProperty(name
|
|
163
|
+
return baseClassObj.getProperty(name);
|
|
155
164
|
}
|
|
156
165
|
return undefined;
|
|
157
166
|
}
|
|
@@ -162,36 +171,36 @@ class ECClass extends SchemaItem_1.SchemaItem {
|
|
|
162
171
|
getInheritedPropertySync(name) {
|
|
163
172
|
const baseClassObj = this.getBaseClassSync();
|
|
164
173
|
if (baseClassObj)
|
|
165
|
-
return baseClassObj.getPropertySync(name
|
|
174
|
+
return baseClassObj.getPropertySync(name);
|
|
166
175
|
return undefined;
|
|
167
176
|
}
|
|
168
177
|
async createPrimitiveProperty(name, primitiveType) {
|
|
169
|
-
if (await this.getProperty(name))
|
|
170
|
-
throw new Exception_1.
|
|
178
|
+
if (await this.getProperty(name, true))
|
|
179
|
+
throw new Exception_1.ECSchemaError(Exception_1.ECSchemaStatus.DuplicateProperty, `An ECProperty with the name ${name} already exists in the class ${this.name}.`);
|
|
171
180
|
const propType = await this.loadPrimitiveType(primitiveType, this.schema);
|
|
172
181
|
if (typeof (propType) === "number")
|
|
173
182
|
return this.addProperty(new Property_1.PrimitiveProperty(this, name, propType));
|
|
174
183
|
return this.addProperty(new Property_1.EnumerationProperty(this, name, new DelayedPromise_1.DelayedPromiseWithProps(propType.key, async () => propType)));
|
|
175
184
|
}
|
|
176
185
|
createPrimitivePropertySync(name, primitiveType) {
|
|
177
|
-
if (this.getPropertySync(name))
|
|
178
|
-
throw new Exception_1.
|
|
186
|
+
if (this.getPropertySync(name, true))
|
|
187
|
+
throw new Exception_1.ECSchemaError(Exception_1.ECSchemaStatus.DuplicateProperty, `An ECProperty with the name ${name} already exists in the class ${this.name}.`);
|
|
179
188
|
const propType = this.loadPrimitiveTypeSync(primitiveType, this.schema);
|
|
180
189
|
if (typeof (propType) === "number")
|
|
181
190
|
return this.addProperty(new Property_1.PrimitiveProperty(this, name, propType));
|
|
182
191
|
return this.addProperty(new Property_1.EnumerationProperty(this, name, new DelayedPromise_1.DelayedPromiseWithProps(propType.key, async () => propType)));
|
|
183
192
|
}
|
|
184
193
|
async createPrimitiveArrayProperty(name, primitiveType) {
|
|
185
|
-
if (await this.getProperty(name))
|
|
186
|
-
throw new Exception_1.
|
|
194
|
+
if (await this.getProperty(name, true))
|
|
195
|
+
throw new Exception_1.ECSchemaError(Exception_1.ECSchemaStatus.DuplicateProperty, `An ECProperty with the name ${name} already exists in the class ${this.name}.`);
|
|
187
196
|
const propType = await this.loadPrimitiveType(primitiveType, this.schema);
|
|
188
197
|
if (typeof (propType) === "number")
|
|
189
198
|
return this.addProperty(new Property_1.PrimitiveArrayProperty(this, name, propType));
|
|
190
199
|
return this.addProperty(new Property_1.EnumerationArrayProperty(this, name, new DelayedPromise_1.DelayedPromiseWithProps(propType.key, async () => propType)));
|
|
191
200
|
}
|
|
192
201
|
createPrimitiveArrayPropertySync(name, primitiveType) {
|
|
193
|
-
if (this.getPropertySync(name))
|
|
194
|
-
throw new Exception_1.
|
|
202
|
+
if (this.getPropertySync(name, true))
|
|
203
|
+
throw new Exception_1.ECSchemaError(Exception_1.ECSchemaStatus.DuplicateProperty, `An ECProperty with the name ${name} already exists in the class ${this.name}.`);
|
|
195
204
|
const propType = this.loadPrimitiveTypeSync(primitiveType, this.schema);
|
|
196
205
|
if (typeof (propType) === "number")
|
|
197
206
|
return this.addProperty(new Property_1.PrimitiveArrayProperty(this, name, propType));
|
|
@@ -201,42 +210,58 @@ class ECClass extends SchemaItem_1.SchemaItem {
|
|
|
201
210
|
*
|
|
202
211
|
* @param name The name of property to create.
|
|
203
212
|
* @param structType The struct type of property to create.
|
|
213
|
+
*
|
|
214
|
+
* @internal
|
|
204
215
|
*/
|
|
205
216
|
async createStructProperty(name, structType) {
|
|
206
|
-
if (await this.getProperty(name))
|
|
207
|
-
throw new Exception_1.
|
|
217
|
+
if (await this.getProperty(name, true))
|
|
218
|
+
throw new Exception_1.ECSchemaError(Exception_1.ECSchemaStatus.DuplicateProperty, `An ECProperty with the name ${name} already exists in the class ${this.name}.`);
|
|
208
219
|
return this.addProperty(new Property_1.StructProperty(this, name, await this.loadStructType(structType, this.schema)));
|
|
209
220
|
}
|
|
210
221
|
/**
|
|
211
222
|
*
|
|
212
223
|
* @param name The name of property to create.
|
|
213
224
|
* @param structType The struct type of property to create.
|
|
225
|
+
*
|
|
226
|
+
* @internal
|
|
214
227
|
*/
|
|
215
228
|
createStructPropertySync(name, structType) {
|
|
216
|
-
if (this.getPropertySync(name))
|
|
217
|
-
throw new Exception_1.
|
|
229
|
+
if (this.getPropertySync(name, true))
|
|
230
|
+
throw new Exception_1.ECSchemaError(Exception_1.ECSchemaStatus.DuplicateProperty, `An ECProperty with the name ${name} already exists in the class ${this.name}.`);
|
|
218
231
|
return this.addProperty(new Property_1.StructProperty(this, name, this.loadStructTypeSync(structType, this.schema)));
|
|
219
232
|
}
|
|
220
233
|
/**
|
|
221
234
|
*
|
|
222
235
|
* @param name
|
|
223
236
|
* @param type
|
|
237
|
+
*
|
|
238
|
+
* @internal
|
|
224
239
|
*/
|
|
225
240
|
async createStructArrayProperty(name, structType) {
|
|
226
|
-
if (await this.getProperty(name))
|
|
227
|
-
throw new Exception_1.
|
|
241
|
+
if (await this.getProperty(name, true))
|
|
242
|
+
throw new Exception_1.ECSchemaError(Exception_1.ECSchemaStatus.DuplicateProperty, `An ECProperty with the name ${name} already exists in the class ${this.name}.`);
|
|
228
243
|
return this.addProperty(new Property_1.StructArrayProperty(this, name, await this.loadStructType(structType, this.schema)));
|
|
229
244
|
}
|
|
230
245
|
/**
|
|
231
246
|
*
|
|
232
247
|
* @param name
|
|
233
248
|
* @param type
|
|
249
|
+
*
|
|
250
|
+
* @internal
|
|
234
251
|
*/
|
|
235
252
|
createStructArrayPropertySync(name, structType) {
|
|
236
|
-
if (this.getPropertySync(name))
|
|
237
|
-
throw new Exception_1.
|
|
253
|
+
if (this.getPropertySync(name, true))
|
|
254
|
+
throw new Exception_1.ECSchemaError(Exception_1.ECSchemaStatus.DuplicateProperty, `An ECProperty with the name ${name} already exists in the class ${this.name}.`);
|
|
238
255
|
return this.addProperty(new Property_1.StructArrayProperty(this, name, this.loadStructTypeSync(structType, this.schema)));
|
|
239
256
|
}
|
|
257
|
+
/**
|
|
258
|
+
*
|
|
259
|
+
* @param structType
|
|
260
|
+
* @param schema
|
|
261
|
+
* @returns
|
|
262
|
+
*
|
|
263
|
+
* @internal
|
|
264
|
+
*/
|
|
240
265
|
async loadStructType(structType, schema) {
|
|
241
266
|
let correctType;
|
|
242
267
|
if (typeof (structType) === "string") {
|
|
@@ -245,9 +270,17 @@ class ECClass extends SchemaItem_1.SchemaItem {
|
|
|
245
270
|
else
|
|
246
271
|
correctType = structType;
|
|
247
272
|
if (!correctType)
|
|
248
|
-
throw new Exception_1.
|
|
273
|
+
throw new Exception_1.ECSchemaError(Exception_1.ECSchemaStatus.InvalidType, `The provided Struct type, ${structType}, is not a valid StructClass.`);
|
|
249
274
|
return correctType;
|
|
250
275
|
}
|
|
276
|
+
/**
|
|
277
|
+
*
|
|
278
|
+
* @param structType
|
|
279
|
+
* @param schema
|
|
280
|
+
* @returns
|
|
281
|
+
*
|
|
282
|
+
* @internal
|
|
283
|
+
*/
|
|
251
284
|
loadStructTypeSync(structType, schema) {
|
|
252
285
|
let correctType;
|
|
253
286
|
if (typeof (structType) === "string") {
|
|
@@ -256,9 +289,17 @@ class ECClass extends SchemaItem_1.SchemaItem {
|
|
|
256
289
|
else
|
|
257
290
|
correctType = structType;
|
|
258
291
|
if (!correctType)
|
|
259
|
-
throw new Exception_1.
|
|
292
|
+
throw new Exception_1.ECSchemaError(Exception_1.ECSchemaStatus.InvalidType, `The provided Struct type, ${structType}, is not a valid StructClass.`);
|
|
260
293
|
return correctType;
|
|
261
294
|
}
|
|
295
|
+
/**
|
|
296
|
+
*
|
|
297
|
+
* @param primitiveType
|
|
298
|
+
* @param schema
|
|
299
|
+
* @returns
|
|
300
|
+
*
|
|
301
|
+
* @internal
|
|
302
|
+
*/
|
|
262
303
|
async loadPrimitiveType(primitiveType, schema) {
|
|
263
304
|
if (primitiveType === undefined)
|
|
264
305
|
return ECObjects_1.PrimitiveType.Integer;
|
|
@@ -268,14 +309,22 @@ class ECClass extends SchemaItem_1.SchemaItem {
|
|
|
268
309
|
resolvedType = await schema.lookupItem(primitiveType, Enumeration_1.Enumeration);
|
|
269
310
|
}
|
|
270
311
|
if (resolvedType === undefined)
|
|
271
|
-
throw new Exception_1.
|
|
312
|
+
throw new Exception_1.ECSchemaError(Exception_1.ECSchemaStatus.InvalidType, `The provided primitive type, ${primitiveType}, is not a valid PrimitiveType or Enumeration.`);
|
|
272
313
|
// If resolvedType is a SchemaItem, make sure it is an Enumeration- if not, throw an error
|
|
273
314
|
if (typeof (resolvedType) !== "number" && resolvedType.schemaItemType !== ECObjects_1.SchemaItemType.Enumeration)
|
|
274
|
-
throw new Exception_1.
|
|
315
|
+
throw new Exception_1.ECSchemaError(Exception_1.ECSchemaStatus.InvalidType, `The provided primitive type, ${primitiveType}, is not a valid PrimitiveType or Enumeration.`);
|
|
275
316
|
return resolvedType;
|
|
276
317
|
}
|
|
277
318
|
return primitiveType;
|
|
278
319
|
}
|
|
320
|
+
/**
|
|
321
|
+
*
|
|
322
|
+
* @param primitiveType
|
|
323
|
+
* @param schema
|
|
324
|
+
* @returns
|
|
325
|
+
*
|
|
326
|
+
* @internal
|
|
327
|
+
*/
|
|
279
328
|
loadPrimitiveTypeSync(primitiveType, schema) {
|
|
280
329
|
if (primitiveType === undefined)
|
|
281
330
|
return ECObjects_1.PrimitiveType.Integer;
|
|
@@ -285,7 +334,7 @@ class ECClass extends SchemaItem_1.SchemaItem {
|
|
|
285
334
|
resolvedType = schema.lookupItemSync(primitiveType, Enumeration_1.Enumeration);
|
|
286
335
|
}
|
|
287
336
|
if (resolvedType === undefined)
|
|
288
|
-
throw new Exception_1.
|
|
337
|
+
throw new Exception_1.ECSchemaError(Exception_1.ECSchemaStatus.InvalidType, `The provided primitive type, ${primitiveType}, is not a valid PrimitiveType or Enumeration.`);
|
|
289
338
|
return resolvedType;
|
|
290
339
|
}
|
|
291
340
|
return primitiveType;
|
|
@@ -346,7 +395,7 @@ class ECClass extends SchemaItem_1.SchemaItem {
|
|
|
346
395
|
if (Helper_1.SchemaReadHelper.isECSpecVersionNewer({ readVersion: classProps.originalECSpecMajorVersion, writeVersion: classProps.originalECSpecMinorVersion }))
|
|
347
396
|
this._modifier = ECObjects_1.ECClassModifier.None;
|
|
348
397
|
else
|
|
349
|
-
throw new Exception_1.
|
|
398
|
+
throw new Exception_1.ECSchemaError(Exception_1.ECSchemaStatus.InvalidModifier, `The string '${classProps.modifier}' is not a valid ECClassModifier.`);
|
|
350
399
|
}
|
|
351
400
|
else {
|
|
352
401
|
this._modifier = modifier;
|
|
@@ -355,14 +404,14 @@ class ECClass extends SchemaItem_1.SchemaItem {
|
|
|
355
404
|
if (undefined !== classProps.baseClass) {
|
|
356
405
|
const ecClassSchemaItemKey = this.schema.getSchemaItemKey(classProps.baseClass);
|
|
357
406
|
if (!ecClassSchemaItemKey)
|
|
358
|
-
throw new Exception_1.
|
|
407
|
+
throw new Exception_1.ECSchemaError(Exception_1.ECSchemaStatus.InvalidECJson, `Unable to locate the baseClass ${classProps.baseClass}.`);
|
|
359
408
|
const baseClass = this.schema.lookupItemSync(ecClassSchemaItemKey);
|
|
360
409
|
let lazyBase;
|
|
361
410
|
if (!baseClass) {
|
|
362
411
|
lazyBase = new DelayedPromise_1.DelayedPromiseWithProps(ecClassSchemaItemKey, async () => {
|
|
363
412
|
const baseItem = await this.schema.lookupItem(ecClassSchemaItemKey);
|
|
364
413
|
if (undefined === baseItem || !ECClass.isECClass(baseItem))
|
|
365
|
-
throw new Exception_1.
|
|
414
|
+
throw new Exception_1.ECSchemaError(Exception_1.ECSchemaStatus.InvalidECJson, `Unable to locate the baseClass ${classProps.baseClass}.`);
|
|
366
415
|
return baseItem;
|
|
367
416
|
});
|
|
368
417
|
}
|
|
@@ -380,6 +429,12 @@ class ECClass extends SchemaItem_1.SchemaItem {
|
|
|
380
429
|
async fromJSON(classProps) {
|
|
381
430
|
this.fromJSONSync(classProps);
|
|
382
431
|
}
|
|
432
|
+
/**
|
|
433
|
+
*
|
|
434
|
+
* @param customAttribute
|
|
435
|
+
*
|
|
436
|
+
* @internal
|
|
437
|
+
*/
|
|
383
438
|
addCustomAttribute(customAttribute) {
|
|
384
439
|
if (!this._customAttributes)
|
|
385
440
|
this._customAttributes = new Map();
|
|
@@ -426,6 +481,15 @@ class ECClass extends SchemaItem_1.SchemaItem {
|
|
|
426
481
|
yield baseClass;
|
|
427
482
|
}
|
|
428
483
|
}
|
|
484
|
+
/**
|
|
485
|
+
*
|
|
486
|
+
* @param target
|
|
487
|
+
* @param existingValues
|
|
488
|
+
* @param propertiesToMerge
|
|
489
|
+
* @param overwriteExisting
|
|
490
|
+
*
|
|
491
|
+
* @internal
|
|
492
|
+
*/
|
|
429
493
|
static mergeProperties(target, existingValues, propertiesToMerge, overwriteExisting) {
|
|
430
494
|
for (const property of propertiesToMerge) {
|
|
431
495
|
const upperCaseName = property.name.toUpperCase();
|
|
@@ -441,6 +505,14 @@ class ECClass extends SchemaItem_1.SchemaItem {
|
|
|
441
505
|
}
|
|
442
506
|
}
|
|
443
507
|
}
|
|
508
|
+
/**
|
|
509
|
+
*
|
|
510
|
+
* @param result
|
|
511
|
+
* @param existingValues
|
|
512
|
+
* @returns
|
|
513
|
+
*
|
|
514
|
+
* @internal
|
|
515
|
+
*/
|
|
444
516
|
async buildPropertyCache(result, existingValues) {
|
|
445
517
|
if (!existingValues) {
|
|
446
518
|
existingValues = new Map();
|
|
@@ -455,6 +527,14 @@ class ECClass extends SchemaItem_1.SchemaItem {
|
|
|
455
527
|
return;
|
|
456
528
|
ECClass.mergeProperties(result, existingValues, [...this._properties.values()], true);
|
|
457
529
|
}
|
|
530
|
+
/**
|
|
531
|
+
*
|
|
532
|
+
* @param result
|
|
533
|
+
* @param existingValues
|
|
534
|
+
* @returns
|
|
535
|
+
*
|
|
536
|
+
* @internal
|
|
537
|
+
*/
|
|
458
538
|
buildPropertyCacheSync(result, existingValues) {
|
|
459
539
|
if (!existingValues) {
|
|
460
540
|
existingValues = new Map();
|
|
@@ -597,9 +677,9 @@ class ECClass extends SchemaItem_1.SchemaItem {
|
|
|
597
677
|
object.schemaItemType === ECObjects_1.SchemaItemType.StructClass || object.schemaItemType === ECObjects_1.SchemaItemType.CustomAttributeClass;
|
|
598
678
|
}
|
|
599
679
|
/**
|
|
600
|
-
* @alpha
|
|
601
680
|
* A setter method for the ECClass modifier, used specifically for schema editing.
|
|
602
681
|
* @param modifier
|
|
682
|
+
* @internal
|
|
603
683
|
*/
|
|
604
684
|
setModifier(modifier) {
|
|
605
685
|
this._modifier = modifier;
|
|
@@ -637,17 +717,16 @@ class ECClass extends SchemaItem_1.SchemaItem {
|
|
|
637
717
|
exports.ECClass = ECClass;
|
|
638
718
|
/**
|
|
639
719
|
* A Typescript class representation of an ECStructClass.
|
|
640
|
-
* @
|
|
720
|
+
* @public @preview
|
|
641
721
|
*/
|
|
642
722
|
class StructClass extends ECClass {
|
|
643
723
|
/**
|
|
644
724
|
* Get the type of item represented by this instance
|
|
645
|
-
* @beta
|
|
646
725
|
*/
|
|
647
726
|
schemaItemType = StructClass.schemaItemType;
|
|
648
727
|
/**
|
|
649
728
|
* Get the type of item represented by this class
|
|
650
|
-
* @
|
|
729
|
+
* @internal
|
|
651
730
|
*/
|
|
652
731
|
static get schemaItemType() { return ECObjects_1.SchemaItemType.StructClass; }
|
|
653
732
|
/**
|
|
@@ -664,10 +743,11 @@ class StructClass extends ECClass {
|
|
|
664
743
|
* Type assertion to check if the SchemaItem is of type StructClass.
|
|
665
744
|
* @param item The SchemaItem to check.
|
|
666
745
|
* @returns The item cast to StructClass if it is a StructClass, undefined otherwise.
|
|
746
|
+
* @internal
|
|
667
747
|
*/
|
|
668
748
|
static assertIsStructClass(item) {
|
|
669
749
|
if (!this.isStructClass(item))
|
|
670
|
-
throw new Exception_1.
|
|
750
|
+
throw new Exception_1.ECSchemaError(Exception_1.ECSchemaStatus.InvalidSchemaItemType, `Expected '${ECObjects_1.SchemaItemType.StructClass}' (StructClass)`);
|
|
671
751
|
}
|
|
672
752
|
}
|
|
673
753
|
exports.StructClass = StructClass;
|