@itwin/ecschema-editing 3.4.0-dev.8 → 3.5.0-dev.4

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 (167) hide show
  1. package/CHANGELOG.md +24 -1
  2. package/lib/cjs/Editing/Constants.d.ts +20 -20
  3. package/lib/cjs/Editing/Constants.d.ts.map +1 -1
  4. package/lib/cjs/Editing/Constants.js +60 -64
  5. package/lib/cjs/Editing/Constants.js.map +1 -1
  6. package/lib/cjs/Editing/CustomAttributes.d.ts +20 -20
  7. package/lib/cjs/Editing/CustomAttributes.d.ts.map +1 -1
  8. package/lib/cjs/Editing/CustomAttributes.js +59 -62
  9. package/lib/cjs/Editing/CustomAttributes.js.map +1 -1
  10. package/lib/cjs/Editing/ECClasses.d.ts +54 -54
  11. package/lib/cjs/Editing/ECClasses.d.ts.map +1 -1
  12. package/lib/cjs/Editing/ECClasses.js +269 -269
  13. package/lib/cjs/Editing/ECClasses.js.map +1 -1
  14. package/lib/cjs/Editing/Editor.d.ts +112 -112
  15. package/lib/cjs/Editing/Editor.d.ts.map +1 -1
  16. package/lib/cjs/Editing/Editor.js +166 -166
  17. package/lib/cjs/Editing/Editor.js.map +1 -1
  18. package/lib/cjs/Editing/Entities.d.ts +25 -25
  19. package/lib/cjs/Editing/Entities.d.ts.map +1 -1
  20. package/lib/cjs/Editing/Entities.js +116 -124
  21. package/lib/cjs/Editing/Entities.js.map +1 -1
  22. package/lib/cjs/Editing/Enumerations.d.ts +21 -21
  23. package/lib/cjs/Editing/Enumerations.d.ts.map +1 -1
  24. package/lib/cjs/Editing/Enumerations.js +66 -76
  25. package/lib/cjs/Editing/Enumerations.js.map +1 -1
  26. package/lib/cjs/Editing/Formats.d.ts +21 -21
  27. package/lib/cjs/Editing/Formats.d.ts.map +1 -1
  28. package/lib/cjs/Editing/Formats.js +61 -63
  29. package/lib/cjs/Editing/Formats.js.map +1 -1
  30. package/lib/cjs/Editing/InvertedUnits.d.ts +17 -17
  31. package/lib/cjs/Editing/InvertedUnits.d.ts.map +1 -1
  32. package/lib/cjs/Editing/InvertedUnits.js +82 -85
  33. package/lib/cjs/Editing/InvertedUnits.js.map +1 -1
  34. package/lib/cjs/Editing/KindOfQuantities.d.ts +28 -28
  35. package/lib/cjs/Editing/KindOfQuantities.d.ts.map +1 -1
  36. package/lib/cjs/Editing/KindOfQuantities.js +78 -79
  37. package/lib/cjs/Editing/KindOfQuantities.js.map +1 -1
  38. package/lib/cjs/Editing/Mixins.d.ts +22 -22
  39. package/lib/cjs/Editing/Mixins.d.ts.map +1 -1
  40. package/lib/cjs/Editing/Mixins.js +84 -88
  41. package/lib/cjs/Editing/Mixins.js.map +1 -1
  42. package/lib/cjs/Editing/Mutable/MutableCAClass.d.ts +9 -9
  43. package/lib/cjs/Editing/Mutable/MutableCAClass.js +15 -15
  44. package/lib/cjs/Editing/Mutable/MutableCAClass.js.map +1 -1
  45. package/lib/cjs/Editing/Mutable/MutableClass.d.ts +34 -34
  46. package/lib/cjs/Editing/Mutable/MutableClass.js +22 -22
  47. package/lib/cjs/Editing/Mutable/MutableClass.js.map +1 -1
  48. package/lib/cjs/Editing/Mutable/MutableConstant.d.ts +12 -12
  49. package/lib/cjs/Editing/Mutable/MutableConstant.js +15 -15
  50. package/lib/cjs/Editing/Mutable/MutableConstant.js.map +1 -1
  51. package/lib/cjs/Editing/Mutable/MutableEntityClass.d.ts +15 -15
  52. package/lib/cjs/Editing/Mutable/MutableEntityClass.js +59 -59
  53. package/lib/cjs/Editing/Mutable/MutableEntityClass.js.map +1 -1
  54. package/lib/cjs/Editing/Mutable/MutableEnumeration.d.ts +9 -9
  55. package/lib/cjs/Editing/Mutable/MutableEnumeration.js +14 -14
  56. package/lib/cjs/Editing/Mutable/MutableEnumeration.js.map +1 -1
  57. package/lib/cjs/Editing/Mutable/MutableFormat.d.ts +18 -18
  58. package/lib/cjs/Editing/Mutable/MutableFormat.js +15 -15
  59. package/lib/cjs/Editing/Mutable/MutableFormat.js.map +1 -1
  60. package/lib/cjs/Editing/Mutable/MutableInvertedUnit.d.ts +10 -10
  61. package/lib/cjs/Editing/Mutable/MutableInvertedUnit.js +15 -15
  62. package/lib/cjs/Editing/Mutable/MutableInvertedUnit.js.map +1 -1
  63. package/lib/cjs/Editing/Mutable/MutableKindOfQuantity.d.ts +10 -10
  64. package/lib/cjs/Editing/Mutable/MutableKindOfQuantity.js +15 -15
  65. package/lib/cjs/Editing/Mutable/MutableKindOfQuantity.js.map +1 -1
  66. package/lib/cjs/Editing/Mutable/MutableMixin.d.ts +11 -11
  67. package/lib/cjs/Editing/Mutable/MutableMixin.js +15 -15
  68. package/lib/cjs/Editing/Mutable/MutableMixin.js.map +1 -1
  69. package/lib/cjs/Editing/Mutable/MutablePhenomenon.d.ts +9 -9
  70. package/lib/cjs/Editing/Mutable/MutablePhenomenon.js +15 -15
  71. package/lib/cjs/Editing/Mutable/MutablePhenomenon.js.map +1 -1
  72. package/lib/cjs/Editing/Mutable/MutableProperty.d.ts +8 -8
  73. package/lib/cjs/Editing/Mutable/MutableProperty.js +15 -15
  74. package/lib/cjs/Editing/Mutable/MutableProperty.js.map +1 -1
  75. package/lib/cjs/Editing/Mutable/MutablePropertyCategory.d.ts +9 -9
  76. package/lib/cjs/Editing/Mutable/MutablePropertyCategory.js +15 -15
  77. package/lib/cjs/Editing/Mutable/MutablePropertyCategory.js.map +1 -1
  78. package/lib/cjs/Editing/Mutable/MutableRelationshipClass.d.ts +21 -21
  79. package/lib/cjs/Editing/Mutable/MutableRelationshipClass.js +24 -24
  80. package/lib/cjs/Editing/Mutable/MutableRelationshipClass.js.map +1 -1
  81. package/lib/cjs/Editing/Mutable/MutableSchema.d.ts +45 -45
  82. package/lib/cjs/Editing/Mutable/MutableSchema.js +17 -17
  83. package/lib/cjs/Editing/Mutable/MutableSchema.js.map +1 -1
  84. package/lib/cjs/Editing/Mutable/MutableUnit.d.ts +11 -11
  85. package/lib/cjs/Editing/Mutable/MutableUnit.js +15 -15
  86. package/lib/cjs/Editing/Mutable/MutableUnit.js.map +1 -1
  87. package/lib/cjs/Editing/Mutable/MutableUnitSystem.d.ts +8 -8
  88. package/lib/cjs/Editing/Mutable/MutableUnitSystem.js +15 -15
  89. package/lib/cjs/Editing/Mutable/MutableUnitSystem.js.map +1 -1
  90. package/lib/cjs/Editing/Phenomena.d.ts +15 -15
  91. package/lib/cjs/Editing/Phenomena.d.ts.map +1 -1
  92. package/lib/cjs/Editing/Phenomena.js +44 -47
  93. package/lib/cjs/Editing/Phenomena.js.map +1 -1
  94. package/lib/cjs/Editing/PropertyCategories.d.ts +16 -16
  95. package/lib/cjs/Editing/PropertyCategories.d.ts.map +1 -1
  96. package/lib/cjs/Editing/PropertyCategories.js +51 -53
  97. package/lib/cjs/Editing/PropertyCategories.js.map +1 -1
  98. package/lib/cjs/Editing/RelationshipClasses.d.ts +21 -21
  99. package/lib/cjs/Editing/RelationshipClasses.d.ts.map +1 -1
  100. package/lib/cjs/Editing/RelationshipClasses.js +68 -69
  101. package/lib/cjs/Editing/RelationshipClasses.js.map +1 -1
  102. package/lib/cjs/Editing/Structs.d.ts +19 -19
  103. package/lib/cjs/Editing/Structs.d.ts.map +1 -1
  104. package/lib/cjs/Editing/Structs.js +57 -60
  105. package/lib/cjs/Editing/Structs.js.map +1 -1
  106. package/lib/cjs/Editing/UnitSystems.d.ts +15 -15
  107. package/lib/cjs/Editing/UnitSystems.d.ts.map +1 -1
  108. package/lib/cjs/Editing/UnitSystems.js +41 -43
  109. package/lib/cjs/Editing/UnitSystems.js.map +1 -1
  110. package/lib/cjs/Editing/Units.d.ts +15 -15
  111. package/lib/cjs/Editing/Units.d.ts.map +1 -1
  112. package/lib/cjs/Editing/Units.js +58 -61
  113. package/lib/cjs/Editing/Units.js.map +1 -1
  114. package/lib/cjs/Validation/Diagnostic.d.ts +321 -321
  115. package/lib/cjs/Validation/Diagnostic.js +310 -310
  116. package/lib/cjs/Validation/Diagnostic.js.map +1 -1
  117. package/lib/cjs/Validation/DiagnosticReporter.d.ts +96 -96
  118. package/lib/cjs/Validation/DiagnosticReporter.d.ts.map +1 -1
  119. package/lib/cjs/Validation/DiagnosticReporter.js +106 -106
  120. package/lib/cjs/Validation/DiagnosticReporter.js.map +1 -1
  121. package/lib/cjs/Validation/ECRules.d.ts +448 -438
  122. package/lib/cjs/Validation/ECRules.d.ts.map +1 -1
  123. package/lib/cjs/Validation/ECRules.js +593 -583
  124. package/lib/cjs/Validation/ECRules.js.map +1 -1
  125. package/lib/cjs/Validation/LoggingDiagnosticReporter.d.ts +13 -13
  126. package/lib/cjs/Validation/LoggingDiagnosticReporter.js +40 -40
  127. package/lib/cjs/Validation/LoggingDiagnosticReporter.js.map +1 -1
  128. package/lib/cjs/Validation/RuleSuppressionSet.d.ts +59 -58
  129. package/lib/cjs/Validation/RuleSuppressionSet.d.ts.map +1 -1
  130. package/lib/cjs/Validation/RuleSuppressionSet.js +9 -9
  131. package/lib/cjs/Validation/RuleSuppressionSet.js.map +1 -1
  132. package/lib/cjs/Validation/Rules.d.ts +64 -64
  133. package/lib/cjs/Validation/Rules.js +9 -9
  134. package/lib/cjs/Validation/Rules.js.map +1 -1
  135. package/lib/cjs/Validation/SchemaChanges.d.ts +607 -607
  136. package/lib/cjs/Validation/SchemaChanges.js +1135 -1135
  137. package/lib/cjs/Validation/SchemaChanges.js.map +1 -1
  138. package/lib/cjs/Validation/SchemaCompareDiagnostics.d.ts +422 -422
  139. package/lib/cjs/Validation/SchemaCompareDiagnostics.js +111 -111
  140. package/lib/cjs/Validation/SchemaCompareDiagnostics.js.map +1 -1
  141. package/lib/cjs/Validation/SchemaCompareReporter.d.ts +11 -11
  142. package/lib/cjs/Validation/SchemaCompareReporter.js +9 -9
  143. package/lib/cjs/Validation/SchemaCompareReporter.js.map +1 -1
  144. package/lib/cjs/Validation/SchemaCompareResultDelegate.d.ts +236 -236
  145. package/lib/cjs/Validation/SchemaCompareResultDelegate.js +348 -348
  146. package/lib/cjs/Validation/SchemaCompareResultDelegate.js.map +1 -1
  147. package/lib/cjs/Validation/SchemaCompareVisitor.d.ts +119 -119
  148. package/lib/cjs/Validation/SchemaCompareVisitor.js +206 -206
  149. package/lib/cjs/Validation/SchemaCompareVisitor.js.map +1 -1
  150. package/lib/cjs/Validation/SchemaComparer.d.ts +171 -171
  151. package/lib/cjs/Validation/SchemaComparer.js +666 -666
  152. package/lib/cjs/Validation/SchemaComparer.js.map +1 -1
  153. package/lib/cjs/Validation/SchemaValidater.d.ts +19 -19
  154. package/lib/cjs/Validation/SchemaValidater.js +61 -61
  155. package/lib/cjs/Validation/SchemaValidater.js.map +1 -1
  156. package/lib/cjs/Validation/SchemaValidationVisitor.d.ts +170 -170
  157. package/lib/cjs/Validation/SchemaValidationVisitor.d.ts.map +1 -1
  158. package/lib/cjs/Validation/SchemaValidationVisitor.js +492 -490
  159. package/lib/cjs/Validation/SchemaValidationVisitor.js.map +1 -1
  160. package/lib/cjs/Validation/SchemaWalker.d.ts +22 -22
  161. package/lib/cjs/Validation/SchemaWalker.js +51 -51
  162. package/lib/cjs/Validation/SchemaWalker.js.map +1 -1
  163. package/lib/cjs/ecschema-editing.d.ts +33 -33
  164. package/lib/cjs/ecschema-editing.js +54 -54
  165. package/lib/cjs/ecschema-editing.js.map +1 -1
  166. package/package.json +11 -11
  167. package/public/locales/en/ECSchemaEditing.json +26 -26
@@ -1 +1 @@
1
- {"version":3,"file":"Editor.js","sourceRoot":"","sources":["../../../src/Editing/Editor.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Editing\r\n */\r\n\r\nimport * as Rules from \"../Validation/ECRules\";\r\nimport { CustomAttribute, ECObjectsError, ECObjectsStatus, Schema, SchemaContext, SchemaItemKey, SchemaKey, SchemaMatchType } from \"@itwin/ecschema-metadata\";\r\nimport { MutableSchema } from \"./Mutable/MutableSchema\";\r\nimport { assert } from \"@itwin/core-bentley\";\r\nimport { Constants } from \"./Constants\";\r\nimport { CustomAttributes } from \"./CustomAttributes\";\r\nimport { Entities } from \"./Entities\";\r\nimport { Enumerations } from \"./Enumerations\";\r\nimport { Formats } from \"./Formats\";\r\nimport { InvertedUnits } from \"./InvertedUnits\";\r\nimport { KindOfQuantities } from \"./KindOfQuantities\";\r\nimport { Mixins } from \"./Mixins\";\r\nimport { Phenomena } from \"./Phenomena\";\r\nimport { PropertyCategories } from \"./PropertyCategories\";\r\nimport { RelationshipClasses } from \"./RelationshipClasses\";\r\nimport { Structs } from \"./Structs\";\r\nimport { Units } from \"./Units\";\r\nimport { UnitSystems } from \"./UnitSystems\";\r\n\r\n// We can either add validation in Editor, or in the protected methods of Schema.\r\n// TODO: Add an error code so we can do something programmatic with the error.\r\n/**\r\n * @alpha\r\n */\r\nexport interface SchemaEditResults {\r\n schemaKey?: SchemaKey;\r\n errorMessage?: string;\r\n}\r\n\r\n/**\r\n * @alpha\r\n */\r\nexport interface SchemaItemEditResults {\r\n itemKey?: SchemaItemKey;\r\n errorMessage?: string;\r\n}\r\n\r\n/**\r\n * @alpha\r\n */\r\nexport interface PropertyEditResults {\r\n itemKey?: SchemaItemKey;\r\n propertyName?: string;\r\n errorMessage?: string;\r\n}\r\n\r\n/**\r\n * A class that allows you to edit and create schemas, classes, and items from the SchemaContext level.\r\n * @alpha\r\n */\r\nexport class SchemaContextEditor {\r\n private _schemaContext: SchemaContext;\r\n public readonly entities = new Entities(this);\r\n public readonly mixins = new Mixins(this);\r\n public readonly structs = new Structs(this);\r\n public readonly customAttributes = new CustomAttributes(this);\r\n public readonly relationships = new RelationshipClasses(this);\r\n public readonly constants = new Constants(this);\r\n public readonly enumerations = new Enumerations(this);\r\n public readonly formats = new Formats(this);\r\n public readonly kindOfQuantities = new KindOfQuantities(this);\r\n public readonly units = new Units(this);\r\n public readonly phenomenons = new Phenomena(this);\r\n public readonly unitSystems = new UnitSystems(this);\r\n public readonly propertyCategories = new PropertyCategories(this);\r\n public readonly invertedUnits = new InvertedUnits(this);\r\n\r\n /**\r\n * Creates a new SchemaContextEditor instance.\r\n * @param schemaContext The SchemaContext the Editor will use to edit in.\r\n */\r\n constructor(schemaContext: SchemaContext) {\r\n // TODO: Make copy\r\n this._schemaContext = schemaContext;\r\n }\r\n\r\n /** Allows you to get schema classes and items through regular SchemaContext methods. */\r\n public get schemaContext(): SchemaContext { return this._schemaContext; }\r\n\r\n public async finish(): Promise<SchemaContext> {\r\n return this._schemaContext;\r\n }\r\n\r\n /**\r\n * Helper method for retrieving a schema, previously added, from the SchemaContext.\r\n * @param schemaKey The SchemaKey identifying the schema.\r\n */\r\n public async getSchema(schemaKey: SchemaKey): Promise<MutableSchema> {\r\n const schema = (await this.schemaContext.getCachedSchema<MutableSchema>(schemaKey, SchemaMatchType.Latest));\r\n if (schema === undefined)\r\n throw new ECObjectsError(ECObjectsStatus.UnableToLocateSchema,`Schema Key ${schemaKey.toString(true)} not found in context`);\r\n\r\n return schema;\r\n }\r\n /**\r\n * Creates a Schema with the given properties and adds it to the current schema context.\r\n * @param name The name given to the new schema.\r\n * @param alias The alias of the new schema.\r\n * @param readVersion The read version number of the schema.\r\n * @param writeVersion The write version number of the schema.\r\n * @param minorVersion The minor version number of the schema.\r\n * @returns Resolves to a SchemaEditResults object.\r\n */\r\n public async createSchema(name: string, alias: string, readVersion: number, writeVersion: number, minorVersion: number): Promise<SchemaEditResults> {\r\n const newSchema = new Schema(this._schemaContext, name, alias, readVersion, writeVersion, minorVersion);\r\n await this._schemaContext.addSchema(newSchema);\r\n return { schemaKey: newSchema.schemaKey };\r\n }\r\n\r\n /**\r\n * Adds a referenced schema to the schema identified by the given SchemaKey.\r\n * @param schemaKey The SchemaKey identifying the schema.\r\n * @param refSchema The referenced schema to add.\r\n */\r\n public async addSchemaReference(schemaKey: SchemaKey, refSchema: Schema): Promise<SchemaEditResults> {\r\n const schema = (await this.schemaContext.getCachedSchema<MutableSchema>(schemaKey, SchemaMatchType.Exact));\r\n if (schema === undefined)\r\n return { errorMessage: `Schema Key ${schemaKey.toString(true)} not found in context` };\r\n\r\n await schema.addReference(refSchema);\r\n const diagnostics = Rules.validateSchemaReferences(schema);\r\n\r\n const result: SchemaEditResults = { errorMessage: \"\" };\r\n for await (const diagnostic of diagnostics) {\r\n result.errorMessage += `${diagnostic.code}: ${diagnostic.messageText}\\r\\n`;\r\n }\r\n\r\n if (result.errorMessage) {\r\n this.removeReference(schema, refSchema);\r\n return result;\r\n }\r\n\r\n if (!await this.schemaContext.getCachedSchema(refSchema.schemaKey)) {\r\n await this.schemaContext.addSchema(refSchema);\r\n }\r\n\r\n return {};\r\n }\r\n\r\n /**\r\n * Adds a CustomAttribute instance to the schema identified by the given SchemaKey\r\n * @param schemaKey The SchemaKey identifying the schema.\r\n * @param customAttribute The CustomAttribute instance to add.\r\n */\r\n public async addCustomAttribute(schemaKey: SchemaKey, customAttribute: CustomAttribute): Promise<SchemaEditResults> {\r\n const schema = (await this.schemaContext.getCachedSchema<MutableSchema>(schemaKey, SchemaMatchType.Latest));\r\n if (schema === undefined)\r\n return { errorMessage: `Schema Key ${schemaKey.toString(true)} not found in context` };\r\n\r\n schema.addCustomAttribute(customAttribute);\r\n\r\n const diagnostics = Rules.validateCustomAttributeInstance(schema, customAttribute);\r\n\r\n const result: SchemaEditResults = { errorMessage: \"\" };\r\n for await (const diagnostic of diagnostics) {\r\n result.errorMessage += `${diagnostic.code}: ${diagnostic.messageText}\\r\\n`;\r\n }\r\n\r\n if (result.errorMessage) {\r\n this.removeCustomAttribute(schema, customAttribute);\r\n return result;\r\n }\r\n\r\n return {};\r\n }\r\n\r\n /**\r\n * Sets the schema version.\r\n * @param schemaKey The SchemaKey identifying the schema.\r\n * @param readVersion The read version of the schema. If not specified, the existing read version will be maintained.\r\n * @param writeVersion The write version of the schema. If not specified, the existing write version will be maintained.\r\n * @param minorVersion The minor version of the schema. If not specified, the existing minor version will be maintained.\r\n */\r\n public async setVersion(schemaKey: SchemaKey, readVersion?: number, writeVersion?: number, minorVersion?: number): Promise<SchemaEditResults> {\r\n const schema = (await this.schemaContext.getCachedSchema(schemaKey, SchemaMatchType.Latest));\r\n if (schema === undefined) return { errorMessage: `Schema Key ${schemaKey.toString(true)} not found in context` };\r\n\r\n schema.setVersion(readVersion || schema.readVersion, writeVersion || schema.writeVersion, minorVersion || schema.minorVersion);\r\n return {};\r\n }\r\n\r\n /**\r\n * Increments the minor version of a schema.\r\n * @param schemaKey The SchemaKey identifying the schema.\r\n */\r\n public async incrementMinorVersion(schemaKey: SchemaKey): Promise<SchemaEditResults> {\r\n const schema = (await this.schemaContext.getCachedSchema(schemaKey, SchemaMatchType.Latest));\r\n if (schema === undefined) return { errorMessage: `Schema Key ${schemaKey.toString(true)} not found in context` };\r\n\r\n schema.setVersion(schema.readVersion, schema.writeVersion, schema.minorVersion + 1);\r\n return {};\r\n }\r\n\r\n private removeReference(schema: Schema, refSchema: Schema) {\r\n const index: number = schema.references.indexOf(refSchema);\r\n if (index !== -1) {\r\n schema.references.splice(index, 1);\r\n }\r\n }\r\n\r\n private removeCustomAttribute(schema: Schema, customAttribute: CustomAttribute) {\r\n assert(schema.customAttributes !== undefined);\r\n const map = schema.customAttributes as Map<string, CustomAttribute>;\r\n map.delete(customAttribute.className);\r\n }\r\n}\r\n\r\n"]}
1
+ {"version":3,"file":"Editor.js","sourceRoot":"","sources":["../../../src/Editing/Editor.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Editing\n */\n\nimport * as Rules from \"../Validation/ECRules\";\nimport { CustomAttribute, ECObjectsError, ECObjectsStatus, Schema, SchemaContext, SchemaItemKey, SchemaKey, SchemaMatchType } from \"@itwin/ecschema-metadata\";\nimport { MutableSchema } from \"./Mutable/MutableSchema\";\nimport { assert } from \"@itwin/core-bentley\";\nimport { Constants } from \"./Constants\";\nimport { CustomAttributes } from \"./CustomAttributes\";\nimport { Entities } from \"./Entities\";\nimport { Enumerations } from \"./Enumerations\";\nimport { Formats } from \"./Formats\";\nimport { InvertedUnits } from \"./InvertedUnits\";\nimport { KindOfQuantities } from \"./KindOfQuantities\";\nimport { Mixins } from \"./Mixins\";\nimport { Phenomena } from \"./Phenomena\";\nimport { PropertyCategories } from \"./PropertyCategories\";\nimport { RelationshipClasses } from \"./RelationshipClasses\";\nimport { Structs } from \"./Structs\";\nimport { Units } from \"./Units\";\nimport { UnitSystems } from \"./UnitSystems\";\n\n// We can either add validation in Editor, or in the protected methods of Schema.\n// TODO: Add an error code so we can do something programmatic with the error.\n/**\n * @alpha\n */\nexport interface SchemaEditResults {\n schemaKey?: SchemaKey;\n errorMessage?: string;\n}\n\n/**\n * @alpha\n */\nexport interface SchemaItemEditResults {\n itemKey?: SchemaItemKey;\n errorMessage?: string;\n}\n\n/**\n * @alpha\n */\nexport interface PropertyEditResults {\n itemKey?: SchemaItemKey;\n propertyName?: string;\n errorMessage?: string;\n}\n\n/**\n * A class that allows you to edit and create schemas, classes, and items from the SchemaContext level.\n * @alpha\n */\nexport class SchemaContextEditor {\n private _schemaContext: SchemaContext;\n public readonly entities = new Entities(this);\n public readonly mixins = new Mixins(this);\n public readonly structs = new Structs(this);\n public readonly customAttributes = new CustomAttributes(this);\n public readonly relationships = new RelationshipClasses(this);\n public readonly constants = new Constants(this);\n public readonly enumerations = new Enumerations(this);\n public readonly formats = new Formats(this);\n public readonly kindOfQuantities = new KindOfQuantities(this);\n public readonly units = new Units(this);\n public readonly phenomenons = new Phenomena(this);\n public readonly unitSystems = new UnitSystems(this);\n public readonly propertyCategories = new PropertyCategories(this);\n public readonly invertedUnits = new InvertedUnits(this);\n\n /**\n * Creates a new SchemaContextEditor instance.\n * @param schemaContext The SchemaContext the Editor will use to edit in.\n */\n constructor(schemaContext: SchemaContext) {\n // TODO: Make copy\n this._schemaContext = schemaContext;\n }\n\n /** Allows you to get schema classes and items through regular SchemaContext methods. */\n public get schemaContext(): SchemaContext { return this._schemaContext; }\n\n public async finish(): Promise<SchemaContext> {\n return this._schemaContext;\n }\n\n /**\n * Helper method for retrieving a schema, previously added, from the SchemaContext.\n * @param schemaKey The SchemaKey identifying the schema.\n */\n public async getSchema(schemaKey: SchemaKey): Promise<MutableSchema> {\n const schema = (await this.schemaContext.getCachedSchema<MutableSchema>(schemaKey, SchemaMatchType.Latest));\n if (schema === undefined)\n throw new ECObjectsError(ECObjectsStatus.UnableToLocateSchema,`Schema Key ${schemaKey.toString(true)} not found in context`);\n\n return schema;\n }\n /**\n * Creates a Schema with the given properties and adds it to the current schema context.\n * @param name The name given to the new schema.\n * @param alias The alias of the new schema.\n * @param readVersion The read version number of the schema.\n * @param writeVersion The write version number of the schema.\n * @param minorVersion The minor version number of the schema.\n * @returns Resolves to a SchemaEditResults object.\n */\n public async createSchema(name: string, alias: string, readVersion: number, writeVersion: number, minorVersion: number): Promise<SchemaEditResults> {\n const newSchema = new Schema(this._schemaContext, name, alias, readVersion, writeVersion, minorVersion);\n await this._schemaContext.addSchema(newSchema);\n return { schemaKey: newSchema.schemaKey };\n }\n\n /**\n * Adds a referenced schema to the schema identified by the given SchemaKey.\n * @param schemaKey The SchemaKey identifying the schema.\n * @param refSchema The referenced schema to add.\n */\n public async addSchemaReference(schemaKey: SchemaKey, refSchema: Schema): Promise<SchemaEditResults> {\n const schema = (await this.schemaContext.getCachedSchema<MutableSchema>(schemaKey, SchemaMatchType.Exact));\n if (schema === undefined)\n return { errorMessage: `Schema Key ${schemaKey.toString(true)} not found in context` };\n\n await schema.addReference(refSchema);\n const diagnostics = Rules.validateSchemaReferences(schema);\n\n const result: SchemaEditResults = { errorMessage: \"\" };\n for await (const diagnostic of diagnostics) {\n result.errorMessage += `${diagnostic.code}: ${diagnostic.messageText}\\r\\n`;\n }\n\n if (result.errorMessage) {\n this.removeReference(schema, refSchema);\n return result;\n }\n\n if (!await this.schemaContext.getCachedSchema(refSchema.schemaKey)) {\n await this.schemaContext.addSchema(refSchema);\n }\n\n return {};\n }\n\n /**\n * Adds a CustomAttribute instance to the schema identified by the given SchemaKey\n * @param schemaKey The SchemaKey identifying the schema.\n * @param customAttribute The CustomAttribute instance to add.\n */\n public async addCustomAttribute(schemaKey: SchemaKey, customAttribute: CustomAttribute): Promise<SchemaEditResults> {\n const schema = (await this.schemaContext.getCachedSchema<MutableSchema>(schemaKey, SchemaMatchType.Latest));\n if (schema === undefined)\n return { errorMessage: `Schema Key ${schemaKey.toString(true)} not found in context` };\n\n schema.addCustomAttribute(customAttribute);\n\n const diagnostics = Rules.validateCustomAttributeInstance(schema, customAttribute);\n\n const result: SchemaEditResults = { errorMessage: \"\" };\n for await (const diagnostic of diagnostics) {\n result.errorMessage += `${diagnostic.code}: ${diagnostic.messageText}\\r\\n`;\n }\n\n if (result.errorMessage) {\n this.removeCustomAttribute(schema, customAttribute);\n return result;\n }\n\n return {};\n }\n\n /**\n * Sets the schema version.\n * @param schemaKey The SchemaKey identifying the schema.\n * @param readVersion The read version of the schema. If not specified, the existing read version will be maintained.\n * @param writeVersion The write version of the schema. If not specified, the existing write version will be maintained.\n * @param minorVersion The minor version of the schema. If not specified, the existing minor version will be maintained.\n */\n public async setVersion(schemaKey: SchemaKey, readVersion?: number, writeVersion?: number, minorVersion?: number): Promise<SchemaEditResults> {\n const schema = (await this.schemaContext.getCachedSchema(schemaKey, SchemaMatchType.Latest));\n if (schema === undefined)\n return { errorMessage: `Schema Key ${schemaKey.toString(true)} not found in context` };\n\n schema.setVersion(readVersion || schema.readVersion, writeVersion || schema.writeVersion, minorVersion || schema.minorVersion);\n return {};\n }\n\n /**\n * Increments the minor version of a schema.\n * @param schemaKey The SchemaKey identifying the schema.\n */\n public async incrementMinorVersion(schemaKey: SchemaKey): Promise<SchemaEditResults> {\n const schema = (await this.schemaContext.getCachedSchema(schemaKey, SchemaMatchType.Latest));\n if (schema === undefined)\n return { errorMessage: `Schema Key ${schemaKey.toString(true)} not found in context` };\n\n schema.setVersion(schema.readVersion, schema.writeVersion, schema.minorVersion + 1);\n return {};\n }\n\n private removeReference(schema: Schema, refSchema: Schema) {\n const index: number = schema.references.indexOf(refSchema);\n if (index !== -1) {\n schema.references.splice(index, 1);\n }\n }\n\n private removeCustomAttribute(schema: Schema, customAttribute: CustomAttribute) {\n assert(schema.customAttributes !== undefined);\n const map = schema.customAttributes as Map<string, CustomAttribute>;\n map.delete(customAttribute.className);\n }\n}\n\n"]}
@@ -1,26 +1,26 @@
1
- /** @packageDocumentation
2
- * @module Editing
3
- */
4
- import { ECClassModifier, EntityClassProps, Mixin, RelationshipClass, SchemaItemKey, SchemaKey, StrengthDirection } from "@itwin/ecschema-metadata";
5
- import { PropertyEditResults, SchemaContextEditor, SchemaItemEditResults } from "./Editor";
6
- import { ECClasses } from "./ECClasses";
7
- /**
8
- * @alpha
9
- * A class extending ECClasses allowing you to create schema items of type EntityClass.
10
- */
11
- export declare class Entities extends ECClasses {
12
- constructor(_schemaEditor: SchemaContextEditor);
13
- createElement(schemaKey: SchemaKey, name: string, modifier: ECClassModifier, baseClassKey: SchemaItemKey, displayLabel?: string, mixins?: Mixin[]): Promise<SchemaItemEditResults>;
14
- createElementUniqueAspect(schemaKey: SchemaKey, name: string, modifier: ECClassModifier, baseClassKey: SchemaItemKey, displayLabel?: string, mixins?: Mixin[]): Promise<SchemaItemEditResults>;
15
- createElementMultiAspect(schemaKey: SchemaKey, name: string, modifier: ECClassModifier, baseClassKey: SchemaItemKey, displayLabel?: string, mixins?: Mixin[]): Promise<SchemaItemEditResults>;
16
- create(schemaKey: SchemaKey, name: string, modifier: ECClassModifier, displayLabel?: string, baseClassKey?: SchemaItemKey, mixins?: Mixin[]): Promise<SchemaItemEditResults>;
17
- /**
18
- * Creates an EntityClass through an EntityClassProps.
19
- * @param schemaKey a SchemaKey of the Schema that will house the new object.
20
- * @param entityProps a json object that will be used to populate the new EntityClass. Needs a name value passed in.
21
- */
22
- createFromProps(schemaKey: SchemaKey, entityProps: EntityClassProps): Promise<SchemaItemEditResults>;
23
- addMixin(entityKey: SchemaItemKey, mixinKey: SchemaItemKey): Promise<void>;
24
- createNavigationProperty(entityKey: SchemaItemKey, name: string, relationship: string | RelationshipClass, direction: string | StrengthDirection): Promise<PropertyEditResults>;
25
- }
1
+ /** @packageDocumentation
2
+ * @module Editing
3
+ */
4
+ import { ECClassModifier, EntityClassProps, Mixin, RelationshipClass, SchemaItemKey, SchemaKey, StrengthDirection } from "@itwin/ecschema-metadata";
5
+ import { PropertyEditResults, SchemaContextEditor, SchemaItemEditResults } from "./Editor";
6
+ import { ECClasses } from "./ECClasses";
7
+ /**
8
+ * @alpha
9
+ * A class extending ECClasses allowing you to create schema items of type EntityClass.
10
+ */
11
+ export declare class Entities extends ECClasses {
12
+ constructor(_schemaEditor: SchemaContextEditor);
13
+ createElement(schemaKey: SchemaKey, name: string, modifier: ECClassModifier, baseClassKey: SchemaItemKey, displayLabel?: string, mixins?: Mixin[]): Promise<SchemaItemEditResults>;
14
+ createElementUniqueAspect(schemaKey: SchemaKey, name: string, modifier: ECClassModifier, baseClassKey: SchemaItemKey, displayLabel?: string, mixins?: Mixin[]): Promise<SchemaItemEditResults>;
15
+ createElementMultiAspect(schemaKey: SchemaKey, name: string, modifier: ECClassModifier, baseClassKey: SchemaItemKey, displayLabel?: string, mixins?: Mixin[]): Promise<SchemaItemEditResults>;
16
+ create(schemaKey: SchemaKey, name: string, modifier: ECClassModifier, displayLabel?: string, baseClassKey?: SchemaItemKey, mixins?: Mixin[]): Promise<SchemaItemEditResults>;
17
+ /**
18
+ * Creates an EntityClass through an EntityClassProps.
19
+ * @param schemaKey a SchemaKey of the Schema that will house the new object.
20
+ * @param entityProps a json object that will be used to populate the new EntityClass. Needs a name value passed in.
21
+ */
22
+ createFromProps(schemaKey: SchemaKey, entityProps: EntityClassProps): Promise<SchemaItemEditResults>;
23
+ addMixin(entityKey: SchemaItemKey, mixinKey: SchemaItemKey): Promise<void>;
24
+ createNavigationProperty(entityKey: SchemaItemKey, name: string, relationship: string | RelationshipClass, direction: string | StrengthDirection): Promise<PropertyEditResults>;
25
+ }
26
26
  //# sourceMappingURL=Entities.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Entities.d.ts","sourceRoot":"","sources":["../../../src/Editing/Entities.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EACoB,eAAe,EAAgD,gBAAgB,EACxG,KAAK,EAAE,iBAAiB,EAAE,aAAa,EAAkB,SAAS,EAAE,iBAAiB,EACtF,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,UAAU,CAAC;AAC3F,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAGxC;;;GAGG;AACH,qBAAa,QAAS,SAAQ,SAAS;gBAClB,aAAa,EAAE,mBAAmB;IAIxC,aAAa,CAAC,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,eAAe,EAAE,YAAY,EAAE,aAAa,EAAE,YAAY,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAelL,yBAAyB,CAAC,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,eAAe,EAAE,YAAY,EAAE,aAAa,EAAE,YAAY,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAe9L,wBAAwB,CAAC,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,eAAe,EAAE,YAAY,EAAE,aAAa,EAAE,YAAY,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAe7L,MAAM,CAAC,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,eAAe,EAAE,YAAY,CAAC,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,aAAa,EAAE,MAAM,CAAC,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAiCzL;;;;OAIG;IACU,eAAe,CAAC,SAAS,EAAE,SAAS,EAAE,WAAW,EAAE,gBAAgB,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAcpG,QAAQ,CAAC,SAAS,EAAE,aAAa,EAAE,QAAQ,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAa1E,wBAAwB,CAAC,SAAS,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,iBAAiB,EAAE,SAAS,EAAE,MAAM,GAAG,iBAAiB,GAAG,OAAO,CAAC,mBAAmB,CAAC;CAS7L"}
1
+ {"version":3,"file":"Entities.d.ts","sourceRoot":"","sources":["../../../src/Editing/Entities.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EACoB,eAAe,EAAgD,gBAAgB,EACxG,KAAK,EAAE,iBAAiB,EAAE,aAAa,EAAkB,SAAS,EAAE,iBAAiB,EACtF,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,UAAU,CAAC;AAC3F,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAGxC;;;GAGG;AACH,qBAAa,QAAS,SAAQ,SAAS;gBAClB,aAAa,EAAE,mBAAmB;IAIxC,aAAa,CAAC,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,eAAe,EAAE,YAAY,EAAE,aAAa,EAAE,YAAY,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAelL,yBAAyB,CAAC,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,eAAe,EAAE,YAAY,EAAE,aAAa,EAAE,YAAY,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAe9L,wBAAwB,CAAC,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,eAAe,EAAE,YAAY,EAAE,aAAa,EAAE,YAAY,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAe7L,MAAM,CAAC,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,eAAe,EAAE,YAAY,CAAC,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,aAAa,EAAE,MAAM,CAAC,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAkCzL;;;;OAIG;IACU,eAAe,CAAC,SAAS,EAAE,SAAS,EAAE,WAAW,EAAE,gBAAgB,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAgBpG,QAAQ,CAAC,SAAS,EAAE,aAAa,EAAE,QAAQ,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAc1E,wBAAwB,CAAC,SAAS,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,iBAAiB,EAAE,SAAS,EAAE,MAAM,GAAG,iBAAiB,GAAG,OAAO,CAAC,mBAAmB,CAAC;CAY7L"}
@@ -1,125 +1,117 @@
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 Editing
8
- */
9
- Object.defineProperty(exports, "__esModule", { value: true });
10
- exports.Entities = void 0;
11
- const ecschema_metadata_1 = require("@itwin/ecschema-metadata");
12
- const ECClasses_1 = require("./ECClasses");
13
- /**
14
- * @alpha
15
- * A class extending ECClasses allowing you to create schema items of type EntityClass.
16
- */
17
- class Entities extends ECClasses_1.ECClasses {
18
- constructor(_schemaEditor) {
19
- super(_schemaEditor);
20
- }
21
- async createElement(schemaKey, name, modifier, baseClassKey, displayLabel, mixins) {
22
- const baseClass = await this._schemaEditor.schemaContext.getSchemaItem(baseClassKey);
23
- if (!baseClass)
24
- throw new Error(`The class ${name} could not be created because the specified base class ${baseClassKey.fullName} could be found.`);
25
- if ((baseClass === null || baseClass === void 0 ? void 0 : baseClass.schemaItemType) !== ecschema_metadata_1.SchemaItemType.EntityClass)
26
- throw new Error(`The class ${name} could not be created because the specified base class ${baseClassKey.fullName} is not an EntityClass.`);
27
- if (!(await baseClass.is("Element", "BisCore"))) {
28
- throw new Error(`The class ${name} could not be created because the specified base class ${baseClassKey.fullName} is not an Element.`);
29
- }
30
- return this.create(schemaKey, name, modifier, displayLabel, baseClassKey, mixins);
31
- }
32
- async createElementUniqueAspect(schemaKey, name, modifier, baseClassKey, displayLabel, mixins) {
33
- const baseClass = await this._schemaEditor.schemaContext.getSchemaItem(baseClassKey);
34
- if (!baseClass)
35
- throw new Error(`The class ${name} could not be created because the specified base class ${baseClassKey.fullName} could be found.`);
36
- if ((baseClass === null || baseClass === void 0 ? void 0 : baseClass.schemaItemType) !== ecschema_metadata_1.SchemaItemType.EntityClass)
37
- throw new Error(`The class ${name} could not be created because the specified base class ${baseClassKey.fullName} is not an EntityClass.`);
38
- if (!(await baseClass.is("ElementUniqueAspect", "BisCore"))) {
39
- throw new Error(`The class ${name} could not be created because the specified base class ${baseClassKey.fullName} is not an ElementUniqueAspect.`);
40
- }
41
- return this.create(schemaKey, name, modifier, displayLabel, baseClassKey, mixins);
42
- }
43
- async createElementMultiAspect(schemaKey, name, modifier, baseClassKey, displayLabel, mixins) {
44
- const baseClass = await this._schemaEditor.schemaContext.getSchemaItem(baseClassKey);
45
- if (!baseClass)
46
- throw new Error(`The class ${name} could not be created because the specified base class ${baseClassKey.fullName} could be found.`);
47
- if ((baseClass === null || baseClass === void 0 ? void 0 : baseClass.schemaItemType) !== ecschema_metadata_1.SchemaItemType.EntityClass)
48
- throw new Error(`The class ${name} could not be created because the specified base class ${baseClassKey.fullName} is not an EntityClass.`);
49
- if (!(await baseClass.is("ElementMultiAspect", "BisCore"))) {
50
- throw new Error(`The class ${name} could not be created because the specified base class ${baseClassKey.fullName} is not an ElementMultiAspect.`);
51
- }
52
- return this.create(schemaKey, name, modifier, displayLabel, baseClassKey, mixins);
53
- }
54
- async create(schemaKey, name, modifier, displayLabel, baseClassKey, mixins) {
55
- const schema = await this._schemaEditor.getSchema(schemaKey);
56
- if (schema === undefined)
57
- return { errorMessage: `Schema Key ${schemaKey.toString(true)} not found in context` };
58
- const newClass = (await schema.createEntityClass(name, modifier));
59
- if (newClass === undefined) {
60
- return { errorMessage: `Failed to create class ${name} in schema ${schemaKey.toString(true)}.` };
61
- }
62
- // Add a deserializing method.
63
- if (baseClassKey !== undefined) {
64
- let baseClassSchema = schema;
65
- if (!baseClassKey.schemaKey.matches(schema.schemaKey))
66
- baseClassSchema = await this._schemaEditor.getSchema(baseClassKey.schemaKey);
67
- const baseClassItem = await baseClassSchema.lookupItem(baseClassKey);
68
- if (baseClassItem === undefined)
69
- return { errorMessage: `Unable to locate base class ${baseClassKey.fullName} in schema ${baseClassSchema.fullName}.` };
70
- if (baseClassItem.schemaItemType !== ecschema_metadata_1.SchemaItemType.EntityClass)
71
- return { errorMessage: `${baseClassItem.fullName} is not of type Entity Class.` };
72
- newClass.baseClass = new ecschema_metadata_1.DelayedPromiseWithProps(baseClassKey, async () => baseClassItem);
73
- }
74
- if (mixins !== undefined) {
75
- mixins.forEach((m) => newClass.addMixin(m));
76
- }
77
- if (displayLabel) {
78
- newClass.setDisplayLabel(displayLabel);
79
- }
80
- return { itemKey: newClass.key };
81
- }
82
- /**
83
- * Creates an EntityClass through an EntityClassProps.
84
- * @param schemaKey a SchemaKey of the Schema that will house the new object.
85
- * @param entityProps a json object that will be used to populate the new EntityClass. Needs a name value passed in.
86
- */
87
- async createFromProps(schemaKey, entityProps) {
88
- const schema = await this._schemaEditor.getSchema(schemaKey);
89
- if (schema === undefined)
90
- return { errorMessage: `Schema Key ${schemaKey.toString(true)} not found in context` };
91
- if (entityProps.name === undefined)
92
- return { errorMessage: `No name was supplied within props.` };
93
- const newClass = (await schema.createEntityClass(entityProps.name));
94
- if (newClass === undefined) {
95
- return { errorMessage: `Failed to create class ${entityProps.name} in schema ${schemaKey.toString(true)}.` };
96
- }
97
- await newClass.fromJSON(entityProps);
98
- return { itemKey: newClass.key };
99
- }
100
- async addMixin(entityKey, mixinKey) {
101
- const entity = (await this._schemaEditor.schemaContext.getSchemaItem(entityKey));
102
- const mixin = (await this._schemaEditor.schemaContext.getSchemaItem(mixinKey));
103
- // TODO: have a helpful returns
104
- if (entity === undefined)
105
- return;
106
- if (mixin === undefined)
107
- return;
108
- if (entity.schemaItemType !== ecschema_metadata_1.SchemaItemType.EntityClass)
109
- return;
110
- if (mixin.schemaItemType !== ecschema_metadata_1.SchemaItemType.Mixin)
111
- return;
112
- entity.addMixin(mixin);
113
- }
114
- async createNavigationProperty(entityKey, name, relationship, direction) {
115
- const entity = (await this._schemaEditor.schemaContext.getSchemaItem(entityKey));
116
- if (entity === undefined)
117
- throw new ecschema_metadata_1.ECObjectsError(ecschema_metadata_1.ECObjectsStatus.ClassNotFound, `Entity Class ${entityKey.fullName} not found in schema context.`);
118
- if (entity.schemaItemType !== ecschema_metadata_1.SchemaItemType.EntityClass)
119
- throw new ecschema_metadata_1.ECObjectsError(ecschema_metadata_1.ECObjectsStatus.InvalidSchemaItemType, `Expected ${entityKey.fullName} to be of type Entity Class.`);
120
- await entity.createNavigationProperty(name, relationship, direction);
121
- return { itemKey: entityKey, propertyName: name };
122
- }
123
- }
124
- exports.Entities = Entities;
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 Editing
8
+ */
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.Entities = void 0;
11
+ const ecschema_metadata_1 = require("@itwin/ecschema-metadata");
12
+ const ECClasses_1 = require("./ECClasses");
13
+ /**
14
+ * @alpha
15
+ * A class extending ECClasses allowing you to create schema items of type EntityClass.
16
+ */
17
+ class Entities extends ECClasses_1.ECClasses {
18
+ constructor(_schemaEditor) {
19
+ super(_schemaEditor);
20
+ }
21
+ async createElement(schemaKey, name, modifier, baseClassKey, displayLabel, mixins) {
22
+ const baseClass = await this._schemaEditor.schemaContext.getSchemaItem(baseClassKey);
23
+ if (!baseClass)
24
+ throw new Error(`The class ${name} could not be created because the specified base class ${baseClassKey.fullName} could be found.`);
25
+ if ((baseClass === null || baseClass === void 0 ? void 0 : baseClass.schemaItemType) !== ecschema_metadata_1.SchemaItemType.EntityClass)
26
+ throw new Error(`The class ${name} could not be created because the specified base class ${baseClassKey.fullName} is not an EntityClass.`);
27
+ if (!(await baseClass.is("Element", "BisCore"))) {
28
+ throw new Error(`The class ${name} could not be created because the specified base class ${baseClassKey.fullName} is not an Element.`);
29
+ }
30
+ return this.create(schemaKey, name, modifier, displayLabel, baseClassKey, mixins);
31
+ }
32
+ async createElementUniqueAspect(schemaKey, name, modifier, baseClassKey, displayLabel, mixins) {
33
+ const baseClass = await this._schemaEditor.schemaContext.getSchemaItem(baseClassKey);
34
+ if (!baseClass)
35
+ throw new Error(`The class ${name} could not be created because the specified base class ${baseClassKey.fullName} could be found.`);
36
+ if ((baseClass === null || baseClass === void 0 ? void 0 : baseClass.schemaItemType) !== ecschema_metadata_1.SchemaItemType.EntityClass)
37
+ throw new Error(`The class ${name} could not be created because the specified base class ${baseClassKey.fullName} is not an EntityClass.`);
38
+ if (!(await baseClass.is("ElementUniqueAspect", "BisCore"))) {
39
+ throw new Error(`The class ${name} could not be created because the specified base class ${baseClassKey.fullName} is not an ElementUniqueAspect.`);
40
+ }
41
+ return this.create(schemaKey, name, modifier, displayLabel, baseClassKey, mixins);
42
+ }
43
+ async createElementMultiAspect(schemaKey, name, modifier, baseClassKey, displayLabel, mixins) {
44
+ const baseClass = await this._schemaEditor.schemaContext.getSchemaItem(baseClassKey);
45
+ if (!baseClass)
46
+ throw new Error(`The class ${name} could not be created because the specified base class ${baseClassKey.fullName} could be found.`);
47
+ if ((baseClass === null || baseClass === void 0 ? void 0 : baseClass.schemaItemType) !== ecschema_metadata_1.SchemaItemType.EntityClass)
48
+ throw new Error(`The class ${name} could not be created because the specified base class ${baseClassKey.fullName} is not an EntityClass.`);
49
+ if (!(await baseClass.is("ElementMultiAspect", "BisCore"))) {
50
+ throw new Error(`The class ${name} could not be created because the specified base class ${baseClassKey.fullName} is not an ElementMultiAspect.`);
51
+ }
52
+ return this.create(schemaKey, name, modifier, displayLabel, baseClassKey, mixins);
53
+ }
54
+ async create(schemaKey, name, modifier, displayLabel, baseClassKey, mixins) {
55
+ const schema = await this._schemaEditor.getSchema(schemaKey);
56
+ if (schema === undefined)
57
+ return { errorMessage: `Schema Key ${schemaKey.toString(true)} not found in context` };
58
+ const newClass = (await schema.createEntityClass(name, modifier));
59
+ if (newClass === undefined)
60
+ return { errorMessage: `Failed to create class ${name} in schema ${schemaKey.toString(true)}.` };
61
+ // Add a deserializing method.
62
+ if (baseClassKey !== undefined) {
63
+ let baseClassSchema = schema;
64
+ if (!baseClassKey.schemaKey.matches(schema.schemaKey))
65
+ baseClassSchema = await this._schemaEditor.getSchema(baseClassKey.schemaKey);
66
+ const baseClassItem = await baseClassSchema.lookupItem(baseClassKey);
67
+ if (baseClassItem === undefined)
68
+ return { errorMessage: `Unable to locate base class ${baseClassKey.fullName} in schema ${baseClassSchema.fullName}.` };
69
+ if (baseClassItem.schemaItemType !== ecschema_metadata_1.SchemaItemType.EntityClass)
70
+ return { errorMessage: `${baseClassItem.fullName} is not of type Entity Class.` };
71
+ newClass.baseClass = new ecschema_metadata_1.DelayedPromiseWithProps(baseClassKey, async () => baseClassItem);
72
+ }
73
+ if (mixins !== undefined)
74
+ mixins.forEach((m) => newClass.addMixin(m));
75
+ if (displayLabel)
76
+ newClass.setDisplayLabel(displayLabel);
77
+ return { itemKey: newClass.key };
78
+ }
79
+ /**
80
+ * Creates an EntityClass through an EntityClassProps.
81
+ * @param schemaKey a SchemaKey of the Schema that will house the new object.
82
+ * @param entityProps a json object that will be used to populate the new EntityClass. Needs a name value passed in.
83
+ */
84
+ async createFromProps(schemaKey, entityProps) {
85
+ const schema = await this._schemaEditor.getSchema(schemaKey);
86
+ if (schema === undefined)
87
+ return { errorMessage: `Schema Key ${schemaKey.toString(true)} not found in context` };
88
+ if (entityProps.name === undefined)
89
+ return { errorMessage: `No name was supplied within props.` };
90
+ const newClass = (await schema.createEntityClass(entityProps.name));
91
+ if (newClass === undefined)
92
+ return { errorMessage: `Failed to create class ${entityProps.name} in schema ${schemaKey.toString(true)}.` };
93
+ await newClass.fromJSON(entityProps);
94
+ return { itemKey: newClass.key };
95
+ }
96
+ async addMixin(entityKey, mixinKey) {
97
+ const entity = (await this._schemaEditor.schemaContext.getSchemaItem(entityKey));
98
+ const mixin = (await this._schemaEditor.schemaContext.getSchemaItem(mixinKey));
99
+ // TODO: have a helpful returns
100
+ if (!entity || entity.schemaItemType !== ecschema_metadata_1.SchemaItemType.EntityClass)
101
+ return;
102
+ if (!mixin || mixin.schemaItemType !== ecschema_metadata_1.SchemaItemType.Mixin)
103
+ return;
104
+ entity.addMixin(mixin);
105
+ }
106
+ async createNavigationProperty(entityKey, name, relationship, direction) {
107
+ const entity = (await this._schemaEditor.schemaContext.getSchemaItem(entityKey));
108
+ if (entity === undefined)
109
+ throw new ecschema_metadata_1.ECObjectsError(ecschema_metadata_1.ECObjectsStatus.ClassNotFound, `Entity Class ${entityKey.fullName} not found in schema context.`);
110
+ if (entity.schemaItemType !== ecschema_metadata_1.SchemaItemType.EntityClass)
111
+ throw new ecschema_metadata_1.ECObjectsError(ecschema_metadata_1.ECObjectsStatus.InvalidSchemaItemType, `Expected ${entityKey.fullName} to be of type Entity Class.`);
112
+ await entity.createNavigationProperty(name, relationship, direction);
113
+ return { itemKey: entityKey, propertyName: name };
114
+ }
115
+ }
116
+ exports.Entities = Entities;
125
117
  //# sourceMappingURL=Entities.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Entities.js","sourceRoot":"","sources":["../../../src/Editing/Entities.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Editing\r\n */\r\n\r\nimport {\r\n DelayedPromiseWithProps, ECClassModifier, ECObjectsError, ECObjectsStatus, EntityClass, EntityClassProps,\r\n Mixin, RelationshipClass, SchemaItemKey, SchemaItemType, SchemaKey, StrengthDirection,\r\n} from \"@itwin/ecschema-metadata\";\r\nimport { PropertyEditResults, SchemaContextEditor, SchemaItemEditResults } from \"./Editor\";\r\nimport { ECClasses } from \"./ECClasses\";\r\nimport { MutableEntityClass } from \"./Mutable/MutableEntityClass\";\r\n\r\n/**\r\n * @alpha\r\n * A class extending ECClasses allowing you to create schema items of type EntityClass.\r\n */\r\nexport class Entities extends ECClasses {\r\n public constructor(_schemaEditor: SchemaContextEditor) {\r\n super(_schemaEditor);\r\n }\r\n\r\n public async createElement(schemaKey: SchemaKey, name: string, modifier: ECClassModifier, baseClassKey: SchemaItemKey, displayLabel?: string, mixins?: Mixin[]): Promise<SchemaItemEditResults> {\r\n const baseClass = await this._schemaEditor.schemaContext.getSchemaItem(baseClassKey);\r\n if (!baseClass)\r\n throw new Error(`The class ${name} could not be created because the specified base class ${baseClassKey.fullName} could be found.`);\r\n\r\n if (baseClass?.schemaItemType !== SchemaItemType.EntityClass)\r\n throw new Error(`The class ${name} could not be created because the specified base class ${baseClassKey.fullName} is not an EntityClass.`);\r\n\r\n if (!(await (baseClass as EntityClass).is(\"Element\", \"BisCore\"))) {\r\n throw new Error(`The class ${name} could not be created because the specified base class ${baseClassKey.fullName} is not an Element.`);\r\n }\r\n\r\n return this.create(schemaKey, name, modifier, displayLabel, baseClassKey, mixins);\r\n }\r\n\r\n public async createElementUniqueAspect(schemaKey: SchemaKey, name: string, modifier: ECClassModifier, baseClassKey: SchemaItemKey, displayLabel?: string, mixins?: Mixin[]): Promise<SchemaItemEditResults> {\r\n const baseClass = await this._schemaEditor.schemaContext.getSchemaItem(baseClassKey);\r\n if (!baseClass)\r\n throw new Error(`The class ${name} could not be created because the specified base class ${baseClassKey.fullName} could be found.`);\r\n\r\n if (baseClass?.schemaItemType !== SchemaItemType.EntityClass)\r\n throw new Error(`The class ${name} could not be created because the specified base class ${baseClassKey.fullName} is not an EntityClass.`);\r\n\r\n if (!(await (baseClass as EntityClass).is(\"ElementUniqueAspect\", \"BisCore\"))) {\r\n throw new Error(`The class ${name} could not be created because the specified base class ${baseClassKey.fullName} is not an ElementUniqueAspect.`);\r\n }\r\n\r\n return this.create(schemaKey, name, modifier, displayLabel, baseClassKey, mixins);\r\n }\r\n\r\n public async createElementMultiAspect(schemaKey: SchemaKey, name: string, modifier: ECClassModifier, baseClassKey: SchemaItemKey, displayLabel?: string, mixins?: Mixin[]): Promise<SchemaItemEditResults> {\r\n const baseClass = await this._schemaEditor.schemaContext.getSchemaItem(baseClassKey);\r\n if (!baseClass)\r\n throw new Error(`The class ${name} could not be created because the specified base class ${baseClassKey.fullName} could be found.`);\r\n\r\n if (baseClass?.schemaItemType !== SchemaItemType.EntityClass)\r\n throw new Error(`The class ${name} could not be created because the specified base class ${baseClassKey.fullName} is not an EntityClass.`);\r\n\r\n if (!(await (baseClass as EntityClass).is(\"ElementMultiAspect\", \"BisCore\"))) {\r\n throw new Error(`The class ${name} could not be created because the specified base class ${baseClassKey.fullName} is not an ElementMultiAspect.`);\r\n }\r\n\r\n return this.create(schemaKey, name, modifier, displayLabel, baseClassKey, mixins);\r\n }\r\n\r\n public async create(schemaKey: SchemaKey, name: string, modifier: ECClassModifier, displayLabel?: string, baseClassKey?: SchemaItemKey, mixins?: Mixin[]): Promise<SchemaItemEditResults> {\r\n const schema = await this._schemaEditor.getSchema(schemaKey);\r\n if (schema === undefined) return { errorMessage: `Schema Key ${schemaKey.toString(true)} not found in context` };\r\n\r\n const newClass = (await schema.createEntityClass(name, modifier)) as MutableEntityClass;\r\n if (newClass === undefined) {\r\n return { errorMessage: `Failed to create class ${name} in schema ${schemaKey.toString(true)}.` };\r\n }\r\n\r\n // Add a deserializing method.\r\n if (baseClassKey !== undefined) {\r\n let baseClassSchema = schema;\r\n if (!baseClassKey.schemaKey.matches(schema.schemaKey))\r\n baseClassSchema = await this._schemaEditor.getSchema(baseClassKey.schemaKey);\r\n\r\n const baseClassItem = await baseClassSchema.lookupItem<EntityClass>(baseClassKey);\r\n if (baseClassItem === undefined)\r\n return { errorMessage: `Unable to locate base class ${baseClassKey.fullName} in schema ${baseClassSchema.fullName}.` };\r\n\r\n if (baseClassItem.schemaItemType !== SchemaItemType.EntityClass)\r\n return { errorMessage: `${baseClassItem.fullName} is not of type Entity Class.` };\r\n\r\n newClass.baseClass = new DelayedPromiseWithProps<SchemaItemKey, EntityClass>(baseClassKey, async () => baseClassItem);\r\n }\r\n\r\n if (mixins !== undefined) {\r\n mixins.forEach((m) => newClass.addMixin(m));\r\n }\r\n if (displayLabel) { newClass.setDisplayLabel(displayLabel); }\r\n\r\n return { itemKey: newClass.key };\r\n }\r\n\r\n /**\r\n * Creates an EntityClass through an EntityClassProps.\r\n * @param schemaKey a SchemaKey of the Schema that will house the new object.\r\n * @param entityProps a json object that will be used to populate the new EntityClass. Needs a name value passed in.\r\n */\r\n public async createFromProps(schemaKey: SchemaKey, entityProps: EntityClassProps): Promise<SchemaItemEditResults> {\r\n const schema = await this._schemaEditor.getSchema(schemaKey);\r\n if (schema === undefined) return { errorMessage: `Schema Key ${schemaKey.toString(true)} not found in context` };\r\n\r\n if (entityProps.name === undefined) return { errorMessage: `No name was supplied within props.` };\r\n const newClass = (await schema.createEntityClass(entityProps.name)) as MutableEntityClass;\r\n if (newClass === undefined) {\r\n return { errorMessage: `Failed to create class ${entityProps.name} in schema ${schemaKey.toString(true)}.` };\r\n }\r\n\r\n await newClass.fromJSON(entityProps);\r\n\r\n return { itemKey: newClass.key };\r\n }\r\n public async addMixin(entityKey: SchemaItemKey, mixinKey: SchemaItemKey): Promise<void> {\r\n const entity = (await this._schemaEditor.schemaContext.getSchemaItem<MutableEntityClass>(entityKey));\r\n const mixin = (await this._schemaEditor.schemaContext.getSchemaItem<Mixin>(mixinKey));\r\n\r\n // TODO: have a helpful returns\r\n if (entity === undefined) return;\r\n if (mixin === undefined) return;\r\n if (entity.schemaItemType !== SchemaItemType.EntityClass) return;\r\n if (mixin.schemaItemType !== SchemaItemType.Mixin) return;\r\n\r\n entity.addMixin(mixin);\r\n }\r\n\r\n public async createNavigationProperty(entityKey: SchemaItemKey, name: string, relationship: string | RelationshipClass, direction: string | StrengthDirection): Promise<PropertyEditResults> {\r\n const entity = (await this._schemaEditor.schemaContext.getSchemaItem<MutableEntityClass>(entityKey));\r\n\r\n if (entity === undefined) throw new ECObjectsError(ECObjectsStatus.ClassNotFound, `Entity Class ${entityKey.fullName} not found in schema context.`);\r\n if (entity.schemaItemType !== SchemaItemType.EntityClass) throw new ECObjectsError(ECObjectsStatus.InvalidSchemaItemType, `Expected ${entityKey.fullName} to be of type Entity Class.`);\r\n\r\n await entity.createNavigationProperty(name, relationship, direction);\r\n return { itemKey: entityKey, propertyName: name };\r\n }\r\n}\r\n\r\n"]}
1
+ {"version":3,"file":"Entities.js","sourceRoot":"","sources":["../../../src/Editing/Entities.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Editing\n */\n\nimport {\n DelayedPromiseWithProps, ECClassModifier, ECObjectsError, ECObjectsStatus, EntityClass, EntityClassProps,\n Mixin, RelationshipClass, SchemaItemKey, SchemaItemType, SchemaKey, StrengthDirection,\n} from \"@itwin/ecschema-metadata\";\nimport { PropertyEditResults, SchemaContextEditor, SchemaItemEditResults } from \"./Editor\";\nimport { ECClasses } from \"./ECClasses\";\nimport { MutableEntityClass } from \"./Mutable/MutableEntityClass\";\n\n/**\n * @alpha\n * A class extending ECClasses allowing you to create schema items of type EntityClass.\n */\nexport class Entities extends ECClasses {\n public constructor(_schemaEditor: SchemaContextEditor) {\n super(_schemaEditor);\n }\n\n public async createElement(schemaKey: SchemaKey, name: string, modifier: ECClassModifier, baseClassKey: SchemaItemKey, displayLabel?: string, mixins?: Mixin[]): Promise<SchemaItemEditResults> {\n const baseClass = await this._schemaEditor.schemaContext.getSchemaItem(baseClassKey);\n if (!baseClass)\n throw new Error(`The class ${name} could not be created because the specified base class ${baseClassKey.fullName} could be found.`);\n\n if (baseClass?.schemaItemType !== SchemaItemType.EntityClass)\n throw new Error(`The class ${name} could not be created because the specified base class ${baseClassKey.fullName} is not an EntityClass.`);\n\n if (!(await (baseClass as EntityClass).is(\"Element\", \"BisCore\"))) {\n throw new Error(`The class ${name} could not be created because the specified base class ${baseClassKey.fullName} is not an Element.`);\n }\n\n return this.create(schemaKey, name, modifier, displayLabel, baseClassKey, mixins);\n }\n\n public async createElementUniqueAspect(schemaKey: SchemaKey, name: string, modifier: ECClassModifier, baseClassKey: SchemaItemKey, displayLabel?: string, mixins?: Mixin[]): Promise<SchemaItemEditResults> {\n const baseClass = await this._schemaEditor.schemaContext.getSchemaItem(baseClassKey);\n if (!baseClass)\n throw new Error(`The class ${name} could not be created because the specified base class ${baseClassKey.fullName} could be found.`);\n\n if (baseClass?.schemaItemType !== SchemaItemType.EntityClass)\n throw new Error(`The class ${name} could not be created because the specified base class ${baseClassKey.fullName} is not an EntityClass.`);\n\n if (!(await (baseClass as EntityClass).is(\"ElementUniqueAspect\", \"BisCore\"))) {\n throw new Error(`The class ${name} could not be created because the specified base class ${baseClassKey.fullName} is not an ElementUniqueAspect.`);\n }\n\n return this.create(schemaKey, name, modifier, displayLabel, baseClassKey, mixins);\n }\n\n public async createElementMultiAspect(schemaKey: SchemaKey, name: string, modifier: ECClassModifier, baseClassKey: SchemaItemKey, displayLabel?: string, mixins?: Mixin[]): Promise<SchemaItemEditResults> {\n const baseClass = await this._schemaEditor.schemaContext.getSchemaItem(baseClassKey);\n if (!baseClass)\n throw new Error(`The class ${name} could not be created because the specified base class ${baseClassKey.fullName} could be found.`);\n\n if (baseClass?.schemaItemType !== SchemaItemType.EntityClass)\n throw new Error(`The class ${name} could not be created because the specified base class ${baseClassKey.fullName} is not an EntityClass.`);\n\n if (!(await (baseClass as EntityClass).is(\"ElementMultiAspect\", \"BisCore\"))) {\n throw new Error(`The class ${name} could not be created because the specified base class ${baseClassKey.fullName} is not an ElementMultiAspect.`);\n }\n\n return this.create(schemaKey, name, modifier, displayLabel, baseClassKey, mixins);\n }\n\n public async create(schemaKey: SchemaKey, name: string, modifier: ECClassModifier, displayLabel?: string, baseClassKey?: SchemaItemKey, mixins?: Mixin[]): Promise<SchemaItemEditResults> {\n const schema = await this._schemaEditor.getSchema(schemaKey);\n if (schema === undefined)\n return { errorMessage: `Schema Key ${schemaKey.toString(true)} not found in context` };\n\n const newClass = (await schema.createEntityClass(name, modifier)) as MutableEntityClass;\n if (newClass === undefined)\n return { errorMessage: `Failed to create class ${name} in schema ${schemaKey.toString(true)}.` };\n\n // Add a deserializing method.\n if (baseClassKey !== undefined) {\n let baseClassSchema = schema;\n if (!baseClassKey.schemaKey.matches(schema.schemaKey))\n baseClassSchema = await this._schemaEditor.getSchema(baseClassKey.schemaKey);\n\n const baseClassItem = await baseClassSchema.lookupItem<EntityClass>(baseClassKey);\n if (baseClassItem === undefined)\n return { errorMessage: `Unable to locate base class ${baseClassKey.fullName} in schema ${baseClassSchema.fullName}.` };\n\n if (baseClassItem.schemaItemType !== SchemaItemType.EntityClass)\n return { errorMessage: `${baseClassItem.fullName} is not of type Entity Class.` };\n\n newClass.baseClass = new DelayedPromiseWithProps<SchemaItemKey, EntityClass>(baseClassKey, async () => baseClassItem);\n }\n\n if (mixins !== undefined)\n mixins.forEach((m) => newClass.addMixin(m));\n\n if (displayLabel)\n newClass.setDisplayLabel(displayLabel);\n\n return { itemKey: newClass.key };\n }\n\n /**\n * Creates an EntityClass through an EntityClassProps.\n * @param schemaKey a SchemaKey of the Schema that will house the new object.\n * @param entityProps a json object that will be used to populate the new EntityClass. Needs a name value passed in.\n */\n public async createFromProps(schemaKey: SchemaKey, entityProps: EntityClassProps): Promise<SchemaItemEditResults> {\n const schema = await this._schemaEditor.getSchema(schemaKey);\n if (schema === undefined)\n return { errorMessage: `Schema Key ${schemaKey.toString(true)} not found in context` };\n\n if (entityProps.name === undefined)\n return { errorMessage: `No name was supplied within props.` };\n\n const newClass = (await schema.createEntityClass(entityProps.name)) as MutableEntityClass;\n if (newClass === undefined)\n return { errorMessage: `Failed to create class ${entityProps.name} in schema ${schemaKey.toString(true)}.` };\n\n await newClass.fromJSON(entityProps);\n\n return { itemKey: newClass.key };\n }\n public async addMixin(entityKey: SchemaItemKey, mixinKey: SchemaItemKey): Promise<void> {\n const entity = (await this._schemaEditor.schemaContext.getSchemaItem<MutableEntityClass>(entityKey));\n const mixin = (await this._schemaEditor.schemaContext.getSchemaItem<Mixin>(mixinKey));\n\n // TODO: have a helpful returns\n if (!entity || entity.schemaItemType !== SchemaItemType.EntityClass)\n return;\n\n if (!mixin || mixin.schemaItemType !== SchemaItemType.Mixin)\n return;\n\n entity.addMixin(mixin);\n }\n\n public async createNavigationProperty(entityKey: SchemaItemKey, name: string, relationship: string | RelationshipClass, direction: string | StrengthDirection): Promise<PropertyEditResults> {\n const entity = (await this._schemaEditor.schemaContext.getSchemaItem<MutableEntityClass>(entityKey));\n\n if (entity === undefined)\n throw new ECObjectsError(ECObjectsStatus.ClassNotFound, `Entity Class ${entityKey.fullName} not found in schema context.`);\n\n if (entity.schemaItemType !== SchemaItemType.EntityClass)\n throw new ECObjectsError(ECObjectsStatus.InvalidSchemaItemType, `Expected ${entityKey.fullName} to be of type Entity Class.`);\n\n await entity.createNavigationProperty(name, relationship, direction);\n return { itemKey: entityKey, propertyName: name };\n }\n}\n\n"]}
@@ -1,22 +1,22 @@
1
- /** @packageDocumentation
2
- * @module Editing
3
- */
4
- import { AnyEnumerator, EnumerationProps, PrimitiveType, SchemaItemKey, SchemaKey } from "@itwin/ecschema-metadata";
5
- import { SchemaContextEditor, SchemaItemEditResults } from "./Editor";
6
- /**
7
- * @alpha
8
- * A class allowing you to create schema items of type Enumeration.
9
- */
10
- export declare class Enumerations {
11
- protected _schemaEditor: SchemaContextEditor;
12
- constructor(_schemaEditor: SchemaContextEditor);
13
- create(schemaKey: SchemaKey, name: string, type: PrimitiveType.Integer | PrimitiveType.String, displayLabel?: string, isStrict?: boolean, enumerators?: AnyEnumerator[]): Promise<SchemaItemEditResults>;
14
- /**
15
- * Creates an Enumeration through an EnumeratorProps.
16
- * @param schemaKey a SchemaKey of the Schema that will house the new object.
17
- * @param relationshipProps a json object that will be used to populate the new RelationshipClass. Needs a name value passed in.
18
- */
19
- createFromProps(schemaKey: SchemaKey, enumProps: EnumerationProps): Promise<SchemaItemEditResults>;
20
- addEnumerator(enumerationKey: SchemaItemKey, enumerator: AnyEnumerator): Promise<void>;
21
- }
1
+ /** @packageDocumentation
2
+ * @module Editing
3
+ */
4
+ import { AnyEnumerator, EnumerationProps, PrimitiveType, SchemaItemKey, SchemaKey } from "@itwin/ecschema-metadata";
5
+ import { SchemaContextEditor, SchemaItemEditResults } from "./Editor";
6
+ /**
7
+ * @alpha
8
+ * A class allowing you to create schema items of type Enumeration.
9
+ */
10
+ export declare class Enumerations {
11
+ protected _schemaEditor: SchemaContextEditor;
12
+ constructor(_schemaEditor: SchemaContextEditor);
13
+ create(schemaKey: SchemaKey, name: string, type: PrimitiveType.Integer | PrimitiveType.String, displayLabel?: string, isStrict?: boolean, enumerators?: AnyEnumerator[]): Promise<SchemaItemEditResults>;
14
+ /**
15
+ * Creates an Enumeration through an EnumeratorProps.
16
+ * @param schemaKey a SchemaKey of the Schema that will house the new object.
17
+ * @param relationshipProps a json object that will be used to populate the new RelationshipClass. Needs a name value passed in.
18
+ */
19
+ createFromProps(schemaKey: SchemaKey, enumProps: EnumerationProps): Promise<SchemaItemEditResults>;
20
+ addEnumerator(enumerationKey: SchemaItemKey, enumerator: AnyEnumerator): Promise<void>;
21
+ }
22
22
  //# sourceMappingURL=Enumerations.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Enumerations.d.ts","sourceRoot":"","sources":["../../../src/Editing/Enumerations.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAE,aAAa,EAAgD,gBAAgB,EAAE,aAAa,EAAE,aAAa,EAAkB,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAClL,OAAO,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,UAAU,CAAC;AAGtE;;;GAGG;AACH,qBAAa,YAAY;IACJ,SAAS,CAAC,aAAa,EAAE,mBAAmB;gBAAlC,aAAa,EAAE,mBAAmB;IAElD,MAAM,CAAC,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,CAAC,OAAO,GAAG,aAAa,CAAC,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,OAAO,EAAE,WAAW,CAAC,EAAE,aAAa,EAAE,GAAG,OAAO,CAAC,qBAAqB,CAAC;IA0BrN;;;;OAIG;IACU,eAAe,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,gBAAgB,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAclG,aAAa,CAAC,cAAc,EAAE,aAAa,EAAE,UAAU,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;CAqBpG"}
1
+ {"version":3,"file":"Enumerations.d.ts","sourceRoot":"","sources":["../../../src/Editing/Enumerations.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAE,aAAa,EAAgD,gBAAgB,EAAE,aAAa,EAAE,aAAa,EAAkB,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAClL,OAAO,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,UAAU,CAAC;AAGtE;;;GAGG;AACH,qBAAa,YAAY;IACJ,SAAS,CAAC,aAAa,EAAE,mBAAmB;gBAAlC,aAAa,EAAE,mBAAmB;IAElD,MAAM,CAAC,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,CAAC,OAAO,GAAG,aAAa,CAAC,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,OAAO,EAAE,WAAW,CAAC,EAAE,aAAa,EAAE,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAsBrN;;;;OAIG;IACU,eAAe,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,gBAAgB,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAgBlG,aAAa,CAAC,cAAc,EAAE,aAAa,EAAE,UAAU,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;CAiBpG"}