@itwin/ecschema-metadata 3.4.0-dev.9 → 3.5.0-dev.5

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 (153) hide show
  1. package/CHANGELOG.md +25 -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.js +91 -91
  9. package/lib/cjs/DelayedPromise.js.map +1 -1
  10. package/lib/cjs/Deserialization/AbstractParser.d.ts +45 -45
  11. package/lib/cjs/Deserialization/AbstractParser.js +11 -11
  12. package/lib/cjs/Deserialization/AbstractParser.js.map +1 -1
  13. package/lib/cjs/Deserialization/Helper.d.ts +251 -251
  14. package/lib/cjs/Deserialization/Helper.js +843 -843
  15. package/lib/cjs/Deserialization/Helper.js.map +1 -1
  16. package/lib/cjs/Deserialization/JsonParser.d.ts +165 -165
  17. package/lib/cjs/Deserialization/JsonParser.js +680 -680
  18. package/lib/cjs/Deserialization/JsonParser.js.map +1 -1
  19. package/lib/cjs/Deserialization/JsonProps.d.ts +282 -282
  20. package/lib/cjs/Deserialization/JsonProps.js +9 -9
  21. package/lib/cjs/Deserialization/JsonProps.js.map +1 -1
  22. package/lib/cjs/Deserialization/SchemaGraphUtil.d.ts +34 -34
  23. package/lib/cjs/Deserialization/SchemaGraphUtil.js +77 -77
  24. package/lib/cjs/Deserialization/SchemaGraphUtil.js.map +1 -1
  25. package/lib/cjs/Deserialization/XmlParser.d.ts +85 -85
  26. package/lib/cjs/Deserialization/XmlParser.d.ts.map +1 -1
  27. package/lib/cjs/Deserialization/XmlParser.js +973 -973
  28. package/lib/cjs/Deserialization/XmlParser.js.map +1 -1
  29. package/lib/cjs/Deserialization/XmlSerializationUtils.d.ts +54 -54
  30. package/lib/cjs/Deserialization/XmlSerializationUtils.js +174 -174
  31. package/lib/cjs/Deserialization/XmlSerializationUtils.js.map +1 -1
  32. package/lib/cjs/ECName.d.ts +30 -30
  33. package/lib/cjs/ECName.js +85 -85
  34. package/lib/cjs/ECName.js.map +1 -1
  35. package/lib/cjs/ECObjects.d.ts +162 -162
  36. package/lib/cjs/ECObjects.js +453 -453
  37. package/lib/cjs/ECObjects.js.map +1 -1
  38. package/lib/cjs/Exception.d.ts +43 -43
  39. package/lib/cjs/Exception.js +86 -86
  40. package/lib/cjs/Exception.js.map +1 -1
  41. package/lib/cjs/Interfaces.d.ts +66 -66
  42. package/lib/cjs/Interfaces.js +9 -9
  43. package/lib/cjs/Interfaces.js.map +1 -1
  44. package/lib/cjs/Metadata/Class.d.ts +243 -243
  45. package/lib/cjs/Metadata/Class.js +558 -558
  46. package/lib/cjs/Metadata/Class.js.map +1 -1
  47. package/lib/cjs/Metadata/Constant.d.ts +64 -64
  48. package/lib/cjs/Metadata/Constant.js +123 -123
  49. package/lib/cjs/Metadata/Constant.js.map +1 -1
  50. package/lib/cjs/Metadata/CustomAttribute.d.ts +23 -23
  51. package/lib/cjs/Metadata/CustomAttribute.d.ts.map +1 -1
  52. package/lib/cjs/Metadata/CustomAttribute.js +27 -27
  53. package/lib/cjs/Metadata/CustomAttribute.js.map +1 -1
  54. package/lib/cjs/Metadata/CustomAttributeClass.d.ts +39 -39
  55. package/lib/cjs/Metadata/CustomAttributeClass.js +68 -68
  56. package/lib/cjs/Metadata/CustomAttributeClass.js.map +1 -1
  57. package/lib/cjs/Metadata/EntityClass.d.ts +77 -77
  58. package/lib/cjs/Metadata/EntityClass.js +230 -230
  59. package/lib/cjs/Metadata/EntityClass.js.map +1 -1
  60. package/lib/cjs/Metadata/Enumeration.d.ts +86 -86
  61. package/lib/cjs/Metadata/Enumeration.js +159 -159
  62. package/lib/cjs/Metadata/Enumeration.js.map +1 -1
  63. package/lib/cjs/Metadata/Format.d.ts +98 -98
  64. package/lib/cjs/Metadata/Format.d.ts.map +1 -1
  65. package/lib/cjs/Metadata/Format.js +242 -242
  66. package/lib/cjs/Metadata/Format.js.map +1 -1
  67. package/lib/cjs/Metadata/InvertedUnit.d.ts +49 -49
  68. package/lib/cjs/Metadata/InvertedUnit.js +97 -97
  69. package/lib/cjs/Metadata/InvertedUnit.js.map +1 -1
  70. package/lib/cjs/Metadata/KindOfQuantity.d.ts +65 -65
  71. package/lib/cjs/Metadata/KindOfQuantity.js +225 -225
  72. package/lib/cjs/Metadata/KindOfQuantity.js.map +1 -1
  73. package/lib/cjs/Metadata/Mixin.d.ts +54 -54
  74. package/lib/cjs/Metadata/Mixin.js +113 -113
  75. package/lib/cjs/Metadata/Mixin.js.map +1 -1
  76. package/lib/cjs/Metadata/OverrideFormat.d.ts +55 -55
  77. package/lib/cjs/Metadata/OverrideFormat.js +88 -88
  78. package/lib/cjs/Metadata/OverrideFormat.js.map +1 -1
  79. package/lib/cjs/Metadata/Phenomenon.d.ts +33 -33
  80. package/lib/cjs/Metadata/Phenomenon.js +59 -59
  81. package/lib/cjs/Metadata/Phenomenon.js.map +1 -1
  82. package/lib/cjs/Metadata/Property.d.ts +197 -197
  83. package/lib/cjs/Metadata/Property.js +491 -491
  84. package/lib/cjs/Metadata/Property.js.map +1 -1
  85. package/lib/cjs/Metadata/PropertyCategory.d.ts +39 -39
  86. package/lib/cjs/Metadata/PropertyCategory.js +61 -61
  87. package/lib/cjs/Metadata/PropertyCategory.js.map +1 -1
  88. package/lib/cjs/Metadata/RelationshipClass.d.ts +152 -152
  89. package/lib/cjs/Metadata/RelationshipClass.js +349 -349
  90. package/lib/cjs/Metadata/RelationshipClass.js.map +1 -1
  91. package/lib/cjs/Metadata/Schema.d.ts +291 -291
  92. package/lib/cjs/Metadata/Schema.js +520 -520
  93. package/lib/cjs/Metadata/Schema.js.map +1 -1
  94. package/lib/cjs/Metadata/SchemaItem.d.ts +61 -61
  95. package/lib/cjs/Metadata/SchemaItem.js +136 -136
  96. package/lib/cjs/Metadata/SchemaItem.js.map +1 -1
  97. package/lib/cjs/Metadata/Unit.d.ts +76 -76
  98. package/lib/cjs/Metadata/Unit.js +162 -162
  99. package/lib/cjs/Metadata/UnitSystem.d.ts +20 -20
  100. package/lib/cjs/Metadata/UnitSystem.js +29 -29
  101. package/lib/cjs/Metadata/UnitSystem.js.map +1 -1
  102. package/lib/cjs/PropertyTypes.d.ts +49 -49
  103. package/lib/cjs/PropertyTypes.d.ts.map +1 -1
  104. package/lib/cjs/PropertyTypes.js +91 -75
  105. package/lib/cjs/PropertyTypes.js.map +1 -1
  106. package/lib/cjs/SchemaJsonLocater.d.ts +35 -0
  107. package/lib/cjs/SchemaJsonLocater.d.ts.map +1 -0
  108. package/lib/cjs/SchemaJsonLocater.js +43 -0
  109. package/lib/cjs/SchemaJsonLocater.js.map +1 -0
  110. package/lib/cjs/SchemaKey.d.ts +110 -110
  111. package/lib/cjs/SchemaKey.d.ts.map +1 -1
  112. package/lib/cjs/SchemaKey.js +219 -220
  113. package/lib/cjs/SchemaKey.js.map +1 -1
  114. package/lib/cjs/SchemaLoader.d.ts +24 -0
  115. package/lib/cjs/SchemaLoader.d.ts.map +1 -0
  116. package/lib/cjs/SchemaLoader.js +48 -0
  117. package/lib/cjs/SchemaLoader.js.map +1 -0
  118. package/lib/cjs/SchemaPartVisitorDelegate.d.ts +274 -274
  119. package/lib/cjs/SchemaPartVisitorDelegate.js +212 -212
  120. package/lib/cjs/SchemaPartVisitorDelegate.js.map +1 -1
  121. package/lib/cjs/UnitConversion/Graph.d.ts +34 -34
  122. package/lib/cjs/UnitConversion/Graph.js +83 -83
  123. package/lib/cjs/UnitConversion/Graph.js.map +1 -1
  124. package/lib/cjs/UnitConversion/Parser.d.ts +8 -8
  125. package/lib/cjs/UnitConversion/Parser.d.ts.map +1 -1
  126. package/lib/cjs/UnitConversion/Parser.js +42 -41
  127. package/lib/cjs/UnitConversion/Parser.js.map +1 -1
  128. package/lib/cjs/UnitConversion/UnitConversion.d.ts +45 -45
  129. package/lib/cjs/UnitConversion/UnitConversion.js +77 -77
  130. package/lib/cjs/UnitConversion/UnitConversion.js.map +1 -1
  131. package/lib/cjs/UnitConversion/UnitConverter.d.ts +39 -39
  132. package/lib/cjs/UnitConversion/UnitConverter.d.ts.map +1 -1
  133. package/lib/cjs/UnitConversion/UnitConverter.js +116 -116
  134. package/lib/cjs/UnitConversion/UnitConverter.js.map +1 -1
  135. package/lib/cjs/UnitConversion/UnitTree.d.ts +43 -43
  136. package/lib/cjs/UnitConversion/UnitTree.d.ts.map +1 -1
  137. package/lib/cjs/UnitConversion/UnitTree.js +169 -169
  138. package/lib/cjs/UnitConversion/UnitTree.js.map +1 -1
  139. package/lib/cjs/UnitProvider/SchemaUnitProvider.d.ts +77 -77
  140. package/lib/cjs/UnitProvider/SchemaUnitProvider.js +236 -236
  141. package/lib/cjs/UnitProvider/SchemaUnitProvider.js.map +1 -1
  142. package/lib/cjs/Validation/SchemaWalker.d.ts +23 -23
  143. package/lib/cjs/Validation/SchemaWalker.js +53 -53
  144. package/lib/cjs/Validation/SchemaWalker.js.map +1 -1
  145. package/lib/cjs/ecschema-metadata.d.ts +51 -49
  146. package/lib/cjs/ecschema-metadata.d.ts.map +1 -1
  147. package/lib/cjs/ecschema-metadata.js +96 -94
  148. package/lib/cjs/ecschema-metadata.js.map +1 -1
  149. package/lib/cjs/utils/SchemaGraph.d.ts +25 -25
  150. package/lib/cjs/utils/SchemaGraph.d.ts.map +1 -1
  151. package/lib/cjs/utils/SchemaGraph.js +65 -65
  152. package/lib/cjs/utils/SchemaGraph.js.map +1 -1
  153. package/package.json +8 -8
@@ -1,275 +1,275 @@
1
- import { AnyClass, AnyECType } from "./Interfaces";
2
- import { StructClass } from "./Metadata/Class";
3
- import { Constant } from "./Metadata/Constant";
4
- import { CustomAttributeContainerProps } from "./Metadata/CustomAttribute";
5
- import { CustomAttributeClass } from "./Metadata/CustomAttributeClass";
6
- import { EntityClass } from "./Metadata/EntityClass";
7
- import { Enumeration } from "./Metadata/Enumeration";
8
- import { Format } from "./Metadata/Format";
9
- import { InvertedUnit } from "./Metadata/InvertedUnit";
10
- import { KindOfQuantity } from "./Metadata/KindOfQuantity";
11
- import { Mixin } from "./Metadata/Mixin";
12
- import { Phenomenon } from "./Metadata/Phenomenon";
13
- import { AnyProperty } from "./Metadata/Property";
14
- import { PropertyCategory } from "./Metadata/PropertyCategory";
15
- import { RelationshipClass, RelationshipConstraint } from "./Metadata/RelationshipClass";
16
- import { Schema } from "./Metadata/Schema";
17
- import { SchemaItem } from "./Metadata/SchemaItem";
18
- import { Unit } from "./Metadata/Unit";
19
- import { UnitSystem } from "./Metadata/UnitSystem";
20
- /**
21
- * Interface to allow schema traversal/deserialization workflows to visit
22
- * each part, item, class, etc. that exists in a given schema.
23
- * @beta
24
- */
25
- export interface ISchemaPartVisitor {
26
- /**
27
- * Called for a partially loaded schema. During deserialization, this would
28
- * be after a schema and all its references are deserialized, but _before_
29
- * any of its items or custom attributes have been deserialized.
30
- * @param schema A partially-loaded Schema.
31
- */
32
- visitEmptySchema?: (schema: Schema) => Promise<void>;
33
- /**
34
- * Called for a partially loaded schema. During deserialization, this would
35
- * be after a schema and all its references are deserialized, but _before_
36
- * any of its items or custom attributes have been deserialized.
37
- * @param schema A partially-loaded Schema.
38
- */
39
- visitEmptySchemaSync?: (schema: Schema) => void;
40
- /**
41
- * Called for a fully loaded schema.
42
- * @param schema A fully-loaded Schema.
43
- */
44
- visitFullSchema?: (schema: Schema) => Promise<void>;
45
- /**
46
- * Called for a fully loaded schema.
47
- * @param schema A fully-loaded Schema.
48
- */
49
- visitFullSchemaSync?: (schema: Schema) => void;
50
- /**
51
- * Called for each [[SchemaItem]] instance.
52
- * @param schemaItem a SchemaItem object.
53
- */
54
- visitSchemaItem?: (schemaItem: SchemaItem) => Promise<void>;
55
- /**
56
- * Called for each [[SchemaItem]] instance.
57
- * @param schemaItem a SchemaItem object.
58
- */
59
- visitSchemaItemSync?: (schemaItem: SchemaItem) => void;
60
- /**
61
- * Called for each [[AnyClass]] instance.
62
- * @param ecClass an ECClass object.
63
- */
64
- visitClass?: (ecClass: AnyClass) => Promise<void>;
65
- /**
66
- * Called for each [[AnyClass]] instance.
67
- * @param ecClass an ECClass object.
68
- */
69
- visitClassSync?: (ecClass: AnyClass) => void;
70
- /**
71
- * Called for each [[AnyProperty]] instance of an ECClass.
72
- * @param property an AnyProperty object.
73
- */
74
- visitProperty?: (property: AnyProperty) => Promise<void>;
75
- /**
76
- * Called for each [[AnyProperty]] instance of an ECClass.
77
- * @param property an AnyProperty object.
78
- */
79
- visitPropertySync?: (property: AnyProperty) => void;
80
- /**
81
- * Called for each [[EntityClass]] instance.
82
- * @param entityClass an EntityClass object.
83
- */
84
- visitEntityClass?: (entityClass: EntityClass) => Promise<void>;
85
- /**
86
- * Called for each [[EntityClass]] instance.
87
- * @param entityClass an EntityClass object.
88
- */
89
- visitEntityClassSync?: (entityClass: EntityClass) => void;
90
- /**
91
- * Called for each [[StructClass]] instance.
92
- * @param structClass a StructClass object.
93
- */
94
- visitStructClass?: (structClass: StructClass) => Promise<void>;
95
- /**
96
- * Called for each [[StructClass]] instance.
97
- * @param structClass a StructClass object.
98
- */
99
- visitStructClassSync?: (structClass: StructClass) => void;
100
- /**
101
- * Called for each [[Mixin]] instance.
102
- * @param mixin a Mixin object.
103
- */
104
- visitMixin?: (mixin: Mixin) => Promise<void>;
105
- /**
106
- * Called for each [[Mixin]] instance.
107
- * @param mixin a Mixin object.
108
- */
109
- visitMixinSync?: (mixin: Mixin) => void;
110
- /**
111
- * Called for each [[RelationshipClass]] instance.
112
- * @param relationshipClass a RelationshipClass object.
113
- */
114
- visitRelationshipClass?: (relationshipClass: RelationshipClass) => Promise<void>;
115
- /**
116
- * Called for each [[RelationshipClass]] instance.
117
- * @param relationshipClass a RelationshipClass object.
118
- */
119
- visitRelationshipClassSync?: (relationshipClass: RelationshipClass) => void;
120
- /**
121
- * Called for each [[RelationshipConstraint]] of each RelationshipClass.
122
- * @param relationshipConstraint a RelationshipConstraint object.
123
- */
124
- visitRelationshipConstraint?: (relationshipConstraint: RelationshipConstraint) => Promise<void>;
125
- /**
126
- * Called for each [[RelationshipConstraint]] of each RelationshipClass.
127
- * @param relationshipConstraint a RelationshipConstraint object.
128
- */
129
- visitRelationshipConstraintSync?: (relationshipConstraint: RelationshipConstraint) => void;
130
- /**
131
- * Called for each [[CustomAttributeClass]] instance.
132
- * @param customAttributeClass a CustomAttributeClass object.
133
- */
134
- visitCustomAttributeClass?: (customAttributeClass: CustomAttributeClass) => Promise<void>;
135
- /**
136
- * Called for each [[CustomAttributeClass]] instance.
137
- * @param customAttributeClass a CustomAttributeClass object.
138
- */
139
- visitCustomAttributeClassSync?: (customAttributeClass: CustomAttributeClass) => void;
140
- /**
141
- * Called for each CustomAttribute container in the schema.
142
- * @param customAttributeContainer a CustomAttributeContainerProps object.
143
- */
144
- visitCustomAttributeContainer?: (customAttributeContainer: CustomAttributeContainerProps) => Promise<void>;
145
- /**
146
- * Called for each CustomAttribute container in the schema.
147
- * @param customAttributeContainer a CustomAttributeContainerProps object.
148
- */
149
- visitCustomAttributeContainerSync?: (customAttributeContainer: CustomAttributeContainerProps) => void;
150
- /**
151
- * Called for each [[Enumeration]] instance.
152
- * @param enumeration an Enumeration object.
153
- */
154
- visitEnumeration?: (enumeration: Enumeration) => Promise<void>;
155
- /**
156
- * Called for each [[Enumeration]] instance.
157
- * @param enumeration an Enumeration object.
158
- */
159
- visitEnumerationSync?: (enumeration: Enumeration) => void;
160
- /**
161
- * Called for each [[KindOfQuantity]] instance.
162
- * @param koq a KindOfQuantity object.
163
- */
164
- visitKindOfQuantity?: (koq: KindOfQuantity) => Promise<void>;
165
- /**
166
- * Called for each [[KindOfQuantity]] instance.
167
- * @param koq a KindOfQuantity object.
168
- */
169
- visitKindOfQuantitySync?: (koq: KindOfQuantity) => void;
170
- /**
171
- * Called for each [[PropertyCategory]] instance.
172
- * @param category a PropertyCategory object.
173
- */
174
- visitPropertyCategory?: (category: PropertyCategory) => Promise<void>;
175
- /**
176
- * Called for each [[PropertyCategory]] instance.
177
- * @param category a PropertyCategory object.
178
- */
179
- visitPropertyCategorySync?: (category: PropertyCategory) => void;
180
- /**
181
- * Called for each [[Format]] instance.
182
- * @param format a Format object.
183
- */
184
- visitFormat?: (format: Format) => Promise<void>;
185
- /**
186
- * Called for each [[Format]] instance.
187
- * @param format a Format object.
188
- */
189
- visitFormatSync?: (format: Format) => void;
190
- /**
191
- * Called for each [[Unit]] instance.
192
- * @param unit a Unit object.
193
- */
194
- visitUnit?: (unit: Unit) => Promise<void>;
195
- /**
196
- * Called for each [[Unit]] instance.
197
- * @param unit a Unit object.
198
- */
199
- visitUnitSync?: (unit: Unit) => void;
200
- /**
201
- * Called for each [[InvertedUnit]] instance.
202
- * @param invertedUnit an InvertedUnit object.
203
- */
204
- visitInvertedUnit?: (invertedUnit: InvertedUnit) => Promise<void>;
205
- /**
206
- * Called for each [[InvertedUnit]] instance.
207
- * @param invertedUnit an InvertedUnit object.
208
- */
209
- visitInvertedUnitSync?: (invertedUnit: InvertedUnit) => void;
210
- /**
211
- * Called for each [[UnitSystem]] instance.
212
- * @param unitSystem a UnitSystem object.
213
- */
214
- visitUnitSystem?: (unitSystem: UnitSystem) => Promise<void>;
215
- /**
216
- * Called for each [[UnitSystem]] instance.
217
- * @param unitSystem a UnitSystem object.
218
- */
219
- visitUnitSystemSync?: (unitSystem: UnitSystem) => void;
220
- /**
221
- * Called for each [[Phenomenon]] instance.
222
- * @param phenomena a Phenomenon object.
223
- */
224
- visitPhenomenon?: (phenomena: Phenomenon) => Promise<void>;
225
- /**
226
- * Called for each [[Phenomenon]] instance.
227
- * @param phenomena a Phenomenon object.
228
- */
229
- visitPhenomenonSync?: (phenomena: Phenomenon) => void;
230
- /**
231
- * Called for each [[Constant]] instance.
232
- * @param constant a Constant object.
233
- */
234
- visitConstant?: (constant: Constant) => Promise<void>;
235
- /**
236
- * Called for each [[Constant]] instance.
237
- * @param constant a Constant object.
238
- */
239
- visitConstantSync?: (constant: Constant) => void;
240
- }
241
- /**
242
- * A helper class to call methods on the provided [[ISchemaPartVisitor]].
243
- * @beta
244
- */
245
- export declare class SchemaPartVisitorDelegate {
246
- private _visitor;
247
- constructor(visitor: ISchemaPartVisitor);
248
- /**
249
- * Calls (async) visitEmptySchema or visitFullSchema on the configured [[ISchemaPartVisitor]].
250
- * @param schema The schema to pass to the visitor.
251
- * @param fullSchema Indicates if the schema is partially or fully-loaded.
252
- */
253
- visitSchema(schema: Schema, fullSchema?: boolean): Promise<void>;
254
- /**
255
- * Calls (synchronously) visitEmptySchema or visitFullSchema on the configured [[ISchemaPartVisitor]].
256
- * @param schema The schema to pass to the visitor.
257
- * @param fullSchema Indicates if the schema is partially or fully-loaded.
258
- */
259
- visitSchemaSync(schema: Schema, fullSchema?: boolean): void;
260
- /**
261
- * Calls (async) the appropriate visit methods on the configured [[ISchemaPartVisitor]]
262
- * based on the type of the part specified.
263
- * @param schemaPart The schema part to pass to the visitor methods.
264
- */
265
- visitSchemaPart(schemaPart: AnyECType): Promise<void>;
266
- /**
267
- * Calls (synchronously) the appropriate visit methods on the configured [[ISchemaPartVisitor]]
268
- * based on the type of the part specified.
269
- * @param schemaPart The schema part to pass to the visitor methods.
270
- */
271
- visitSchemaPartSync(schemaPart: AnyECType): void;
272
- private visitSchemaItem;
273
- private visitSchemaItemSync;
274
- }
1
+ import { AnyClass, AnyECType } from "./Interfaces";
2
+ import { StructClass } from "./Metadata/Class";
3
+ import { Constant } from "./Metadata/Constant";
4
+ import { CustomAttributeContainerProps } from "./Metadata/CustomAttribute";
5
+ import { CustomAttributeClass } from "./Metadata/CustomAttributeClass";
6
+ import { EntityClass } from "./Metadata/EntityClass";
7
+ import { Enumeration } from "./Metadata/Enumeration";
8
+ import { Format } from "./Metadata/Format";
9
+ import { InvertedUnit } from "./Metadata/InvertedUnit";
10
+ import { KindOfQuantity } from "./Metadata/KindOfQuantity";
11
+ import { Mixin } from "./Metadata/Mixin";
12
+ import { Phenomenon } from "./Metadata/Phenomenon";
13
+ import { AnyProperty } from "./Metadata/Property";
14
+ import { PropertyCategory } from "./Metadata/PropertyCategory";
15
+ import { RelationshipClass, RelationshipConstraint } from "./Metadata/RelationshipClass";
16
+ import { Schema } from "./Metadata/Schema";
17
+ import { SchemaItem } from "./Metadata/SchemaItem";
18
+ import { Unit } from "./Metadata/Unit";
19
+ import { UnitSystem } from "./Metadata/UnitSystem";
20
+ /**
21
+ * Interface to allow schema traversal/deserialization workflows to visit
22
+ * each part, item, class, etc. that exists in a given schema.
23
+ * @beta
24
+ */
25
+ export interface ISchemaPartVisitor {
26
+ /**
27
+ * Called for a partially loaded schema. During deserialization, this would
28
+ * be after a schema and all its references are deserialized, but _before_
29
+ * any of its items or custom attributes have been deserialized.
30
+ * @param schema A partially-loaded Schema.
31
+ */
32
+ visitEmptySchema?: (schema: Schema) => Promise<void>;
33
+ /**
34
+ * Called for a partially loaded schema. During deserialization, this would
35
+ * be after a schema and all its references are deserialized, but _before_
36
+ * any of its items or custom attributes have been deserialized.
37
+ * @param schema A partially-loaded Schema.
38
+ */
39
+ visitEmptySchemaSync?: (schema: Schema) => void;
40
+ /**
41
+ * Called for a fully loaded schema.
42
+ * @param schema A fully-loaded Schema.
43
+ */
44
+ visitFullSchema?: (schema: Schema) => Promise<void>;
45
+ /**
46
+ * Called for a fully loaded schema.
47
+ * @param schema A fully-loaded Schema.
48
+ */
49
+ visitFullSchemaSync?: (schema: Schema) => void;
50
+ /**
51
+ * Called for each [[SchemaItem]] instance.
52
+ * @param schemaItem a SchemaItem object.
53
+ */
54
+ visitSchemaItem?: (schemaItem: SchemaItem) => Promise<void>;
55
+ /**
56
+ * Called for each [[SchemaItem]] instance.
57
+ * @param schemaItem a SchemaItem object.
58
+ */
59
+ visitSchemaItemSync?: (schemaItem: SchemaItem) => void;
60
+ /**
61
+ * Called for each [[AnyClass]] instance.
62
+ * @param ecClass an ECClass object.
63
+ */
64
+ visitClass?: (ecClass: AnyClass) => Promise<void>;
65
+ /**
66
+ * Called for each [[AnyClass]] instance.
67
+ * @param ecClass an ECClass object.
68
+ */
69
+ visitClassSync?: (ecClass: AnyClass) => void;
70
+ /**
71
+ * Called for each [[AnyProperty]] instance of an ECClass.
72
+ * @param property an AnyProperty object.
73
+ */
74
+ visitProperty?: (property: AnyProperty) => Promise<void>;
75
+ /**
76
+ * Called for each [[AnyProperty]] instance of an ECClass.
77
+ * @param property an AnyProperty object.
78
+ */
79
+ visitPropertySync?: (property: AnyProperty) => void;
80
+ /**
81
+ * Called for each [[EntityClass]] instance.
82
+ * @param entityClass an EntityClass object.
83
+ */
84
+ visitEntityClass?: (entityClass: EntityClass) => Promise<void>;
85
+ /**
86
+ * Called for each [[EntityClass]] instance.
87
+ * @param entityClass an EntityClass object.
88
+ */
89
+ visitEntityClassSync?: (entityClass: EntityClass) => void;
90
+ /**
91
+ * Called for each [[StructClass]] instance.
92
+ * @param structClass a StructClass object.
93
+ */
94
+ visitStructClass?: (structClass: StructClass) => Promise<void>;
95
+ /**
96
+ * Called for each [[StructClass]] instance.
97
+ * @param structClass a StructClass object.
98
+ */
99
+ visitStructClassSync?: (structClass: StructClass) => void;
100
+ /**
101
+ * Called for each [[Mixin]] instance.
102
+ * @param mixin a Mixin object.
103
+ */
104
+ visitMixin?: (mixin: Mixin) => Promise<void>;
105
+ /**
106
+ * Called for each [[Mixin]] instance.
107
+ * @param mixin a Mixin object.
108
+ */
109
+ visitMixinSync?: (mixin: Mixin) => void;
110
+ /**
111
+ * Called for each [[RelationshipClass]] instance.
112
+ * @param relationshipClass a RelationshipClass object.
113
+ */
114
+ visitRelationshipClass?: (relationshipClass: RelationshipClass) => Promise<void>;
115
+ /**
116
+ * Called for each [[RelationshipClass]] instance.
117
+ * @param relationshipClass a RelationshipClass object.
118
+ */
119
+ visitRelationshipClassSync?: (relationshipClass: RelationshipClass) => void;
120
+ /**
121
+ * Called for each [[RelationshipConstraint]] of each RelationshipClass.
122
+ * @param relationshipConstraint a RelationshipConstraint object.
123
+ */
124
+ visitRelationshipConstraint?: (relationshipConstraint: RelationshipConstraint) => Promise<void>;
125
+ /**
126
+ * Called for each [[RelationshipConstraint]] of each RelationshipClass.
127
+ * @param relationshipConstraint a RelationshipConstraint object.
128
+ */
129
+ visitRelationshipConstraintSync?: (relationshipConstraint: RelationshipConstraint) => void;
130
+ /**
131
+ * Called for each [[CustomAttributeClass]] instance.
132
+ * @param customAttributeClass a CustomAttributeClass object.
133
+ */
134
+ visitCustomAttributeClass?: (customAttributeClass: CustomAttributeClass) => Promise<void>;
135
+ /**
136
+ * Called for each [[CustomAttributeClass]] instance.
137
+ * @param customAttributeClass a CustomAttributeClass object.
138
+ */
139
+ visitCustomAttributeClassSync?: (customAttributeClass: CustomAttributeClass) => void;
140
+ /**
141
+ * Called for each CustomAttribute container in the schema.
142
+ * @param customAttributeContainer a CustomAttributeContainerProps object.
143
+ */
144
+ visitCustomAttributeContainer?: (customAttributeContainer: CustomAttributeContainerProps) => Promise<void>;
145
+ /**
146
+ * Called for each CustomAttribute container in the schema.
147
+ * @param customAttributeContainer a CustomAttributeContainerProps object.
148
+ */
149
+ visitCustomAttributeContainerSync?: (customAttributeContainer: CustomAttributeContainerProps) => void;
150
+ /**
151
+ * Called for each [[Enumeration]] instance.
152
+ * @param enumeration an Enumeration object.
153
+ */
154
+ visitEnumeration?: (enumeration: Enumeration) => Promise<void>;
155
+ /**
156
+ * Called for each [[Enumeration]] instance.
157
+ * @param enumeration an Enumeration object.
158
+ */
159
+ visitEnumerationSync?: (enumeration: Enumeration) => void;
160
+ /**
161
+ * Called for each [[KindOfQuantity]] instance.
162
+ * @param koq a KindOfQuantity object.
163
+ */
164
+ visitKindOfQuantity?: (koq: KindOfQuantity) => Promise<void>;
165
+ /**
166
+ * Called for each [[KindOfQuantity]] instance.
167
+ * @param koq a KindOfQuantity object.
168
+ */
169
+ visitKindOfQuantitySync?: (koq: KindOfQuantity) => void;
170
+ /**
171
+ * Called for each [[PropertyCategory]] instance.
172
+ * @param category a PropertyCategory object.
173
+ */
174
+ visitPropertyCategory?: (category: PropertyCategory) => Promise<void>;
175
+ /**
176
+ * Called for each [[PropertyCategory]] instance.
177
+ * @param category a PropertyCategory object.
178
+ */
179
+ visitPropertyCategorySync?: (category: PropertyCategory) => void;
180
+ /**
181
+ * Called for each [[Format]] instance.
182
+ * @param format a Format object.
183
+ */
184
+ visitFormat?: (format: Format) => Promise<void>;
185
+ /**
186
+ * Called for each [[Format]] instance.
187
+ * @param format a Format object.
188
+ */
189
+ visitFormatSync?: (format: Format) => void;
190
+ /**
191
+ * Called for each [[Unit]] instance.
192
+ * @param unit a Unit object.
193
+ */
194
+ visitUnit?: (unit: Unit) => Promise<void>;
195
+ /**
196
+ * Called for each [[Unit]] instance.
197
+ * @param unit a Unit object.
198
+ */
199
+ visitUnitSync?: (unit: Unit) => void;
200
+ /**
201
+ * Called for each [[InvertedUnit]] instance.
202
+ * @param invertedUnit an InvertedUnit object.
203
+ */
204
+ visitInvertedUnit?: (invertedUnit: InvertedUnit) => Promise<void>;
205
+ /**
206
+ * Called for each [[InvertedUnit]] instance.
207
+ * @param invertedUnit an InvertedUnit object.
208
+ */
209
+ visitInvertedUnitSync?: (invertedUnit: InvertedUnit) => void;
210
+ /**
211
+ * Called for each [[UnitSystem]] instance.
212
+ * @param unitSystem a UnitSystem object.
213
+ */
214
+ visitUnitSystem?: (unitSystem: UnitSystem) => Promise<void>;
215
+ /**
216
+ * Called for each [[UnitSystem]] instance.
217
+ * @param unitSystem a UnitSystem object.
218
+ */
219
+ visitUnitSystemSync?: (unitSystem: UnitSystem) => void;
220
+ /**
221
+ * Called for each [[Phenomenon]] instance.
222
+ * @param phenomena a Phenomenon object.
223
+ */
224
+ visitPhenomenon?: (phenomena: Phenomenon) => Promise<void>;
225
+ /**
226
+ * Called for each [[Phenomenon]] instance.
227
+ * @param phenomena a Phenomenon object.
228
+ */
229
+ visitPhenomenonSync?: (phenomena: Phenomenon) => void;
230
+ /**
231
+ * Called for each [[Constant]] instance.
232
+ * @param constant a Constant object.
233
+ */
234
+ visitConstant?: (constant: Constant) => Promise<void>;
235
+ /**
236
+ * Called for each [[Constant]] instance.
237
+ * @param constant a Constant object.
238
+ */
239
+ visitConstantSync?: (constant: Constant) => void;
240
+ }
241
+ /**
242
+ * A helper class to call methods on the provided [[ISchemaPartVisitor]].
243
+ * @beta
244
+ */
245
+ export declare class SchemaPartVisitorDelegate {
246
+ private _visitor;
247
+ constructor(visitor: ISchemaPartVisitor);
248
+ /**
249
+ * Calls (async) visitEmptySchema or visitFullSchema on the configured [[ISchemaPartVisitor]].
250
+ * @param schema The schema to pass to the visitor.
251
+ * @param fullSchema Indicates if the schema is partially or fully-loaded.
252
+ */
253
+ visitSchema(schema: Schema, fullSchema?: boolean): Promise<void>;
254
+ /**
255
+ * Calls (synchronously) visitEmptySchema or visitFullSchema on the configured [[ISchemaPartVisitor]].
256
+ * @param schema The schema to pass to the visitor.
257
+ * @param fullSchema Indicates if the schema is partially or fully-loaded.
258
+ */
259
+ visitSchemaSync(schema: Schema, fullSchema?: boolean): void;
260
+ /**
261
+ * Calls (async) the appropriate visit methods on the configured [[ISchemaPartVisitor]]
262
+ * based on the type of the part specified.
263
+ * @param schemaPart The schema part to pass to the visitor methods.
264
+ */
265
+ visitSchemaPart(schemaPart: AnyECType): Promise<void>;
266
+ /**
267
+ * Calls (synchronously) the appropriate visit methods on the configured [[ISchemaPartVisitor]]
268
+ * based on the type of the part specified.
269
+ * @param schemaPart The schema part to pass to the visitor methods.
270
+ */
271
+ visitSchemaPartSync(schemaPart: AnyECType): void;
272
+ private visitSchemaItem;
273
+ private visitSchemaItemSync;
274
+ }
275
275
  //# sourceMappingURL=SchemaPartVisitorDelegate.d.ts.map