@itwin/ecschema-editing 5.3.2 → 5.4.0-dev.11

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 (183) hide show
  1. package/CHANGELOG.md +1 -1
  2. package/lib/cjs/Differencing/Errors.js.map +1 -1
  3. package/lib/cjs/Differencing/SchemaConflicts.js.map +1 -1
  4. package/lib/cjs/Differencing/SchemaDiagnosticVisitor.js.map +1 -1
  5. package/lib/cjs/Differencing/SchemaDifference.js.map +1 -1
  6. package/lib/cjs/Differencing/SchemaDifferenceValidator.js.map +1 -1
  7. package/lib/cjs/Differencing/SchemaDifferenceVisitor.js.map +1 -1
  8. package/lib/cjs/Differencing/Utils.js.map +1 -1
  9. package/lib/cjs/Editing/Constants.js.map +1 -1
  10. package/lib/cjs/Editing/CustomAttributes.js.map +1 -1
  11. package/lib/cjs/Editing/ECClasses.js.map +1 -1
  12. package/lib/cjs/Editing/Editor.js.map +1 -1
  13. package/lib/cjs/Editing/Entities.js.map +1 -1
  14. package/lib/cjs/Editing/Enumerations.js.map +1 -1
  15. package/lib/cjs/Editing/Exception.js.map +1 -1
  16. package/lib/cjs/Editing/Formats.js.map +1 -1
  17. package/lib/cjs/Editing/InvertedUnits.js.map +1 -1
  18. package/lib/cjs/Editing/KindOfQuantities.js.map +1 -1
  19. package/lib/cjs/Editing/Mixins.js.map +1 -1
  20. package/lib/cjs/Editing/Mutable/MutableArrayProperty.js.map +1 -1
  21. package/lib/cjs/Editing/Mutable/MutableCAClass.js.map +1 -1
  22. package/lib/cjs/Editing/Mutable/MutableClass.js.map +1 -1
  23. package/lib/cjs/Editing/Mutable/MutableConstant.js.map +1 -1
  24. package/lib/cjs/Editing/Mutable/MutableEntityClass.js.map +1 -1
  25. package/lib/cjs/Editing/Mutable/MutableEnumeration.js.map +1 -1
  26. package/lib/cjs/Editing/Mutable/MutableFormat.js.map +1 -1
  27. package/lib/cjs/Editing/Mutable/MutableInvertedUnit.js.map +1 -1
  28. package/lib/cjs/Editing/Mutable/MutableKindOfQuantity.js.map +1 -1
  29. package/lib/cjs/Editing/Mutable/MutableMixin.js.map +1 -1
  30. package/lib/cjs/Editing/Mutable/MutableNavigationProperty.js.map +1 -1
  31. package/lib/cjs/Editing/Mutable/MutablePhenomenon.js.map +1 -1
  32. package/lib/cjs/Editing/Mutable/MutablePrimitiveOrEnumProperty.js.map +1 -1
  33. package/lib/cjs/Editing/Mutable/MutableProperty.js.map +1 -1
  34. package/lib/cjs/Editing/Mutable/MutablePropertyCategory.js.map +1 -1
  35. package/lib/cjs/Editing/Mutable/MutableRelationshipClass.js.map +1 -1
  36. package/lib/cjs/Editing/Mutable/MutableSchema.js.map +1 -1
  37. package/lib/cjs/Editing/Mutable/MutableSchemaItem.js.map +1 -1
  38. package/lib/cjs/Editing/Mutable/MutableStructProperty.js.map +1 -1
  39. package/lib/cjs/Editing/Mutable/MutableUnit.js.map +1 -1
  40. package/lib/cjs/Editing/Mutable/MutableUnitSystem.js.map +1 -1
  41. package/lib/cjs/Editing/Phenomena.js.map +1 -1
  42. package/lib/cjs/Editing/Properties.js.map +1 -1
  43. package/lib/cjs/Editing/PropertyCategories.js.map +1 -1
  44. package/lib/cjs/Editing/RelationshipClasses.js.map +1 -1
  45. package/lib/cjs/Editing/SchemaItems.js.map +1 -1
  46. package/lib/cjs/Editing/Structs.js.map +1 -1
  47. package/lib/cjs/Editing/UnitSystems.js.map +1 -1
  48. package/lib/cjs/Editing/Units.js.map +1 -1
  49. package/lib/cjs/Merging/ClassMerger.js.map +1 -1
  50. package/lib/cjs/Merging/ConstantMerger.js.map +1 -1
  51. package/lib/cjs/Merging/CustomAttributeClassMerger.js.map +1 -1
  52. package/lib/cjs/Merging/CustomAttributeMerger.js.map +1 -1
  53. package/lib/cjs/Merging/Edits/NameMapping.js.map +1 -1
  54. package/lib/cjs/Merging/Edits/RenameEditHandler.js.map +1 -1
  55. package/lib/cjs/Merging/Edits/SchemaEdits.js.map +1 -1
  56. package/lib/cjs/Merging/Edits/SkipEditHandler.js.map +1 -1
  57. package/lib/cjs/Merging/EntityClassMerger.js.map +1 -1
  58. package/lib/cjs/Merging/EnumerationMerger.js.map +1 -1
  59. package/lib/cjs/Merging/EnumeratorMerger.js.map +1 -1
  60. package/lib/cjs/Merging/FormatMerger.js.map +1 -1
  61. package/lib/cjs/Merging/InvertedUnitMerger.js.map +1 -1
  62. package/lib/cjs/Merging/KindOfQuantityMerger.js.map +1 -1
  63. package/lib/cjs/Merging/MixinMerger.js.map +1 -1
  64. package/lib/cjs/Merging/PhenomenonMerger.js.map +1 -1
  65. package/lib/cjs/Merging/PropertyCategoryMerger.js.map +1 -1
  66. package/lib/cjs/Merging/PropertyMerger.js.map +1 -1
  67. package/lib/cjs/Merging/RelationshipClassMerger.js.map +1 -1
  68. package/lib/cjs/Merging/SchemaMerger.js.map +1 -1
  69. package/lib/cjs/Merging/SchemaMergingVisitor.js.map +1 -1
  70. package/lib/cjs/Merging/SchemaMergingWalker.js.map +1 -1
  71. package/lib/cjs/Merging/SchemaReferenceMerger.js.map +1 -1
  72. package/lib/cjs/Merging/StructClassMerger.js.map +1 -1
  73. package/lib/cjs/Merging/UnitMerger.js.map +1 -1
  74. package/lib/cjs/Merging/UnitSystemMerger.js.map +1 -1
  75. package/lib/cjs/Merging/Utils.js.map +1 -1
  76. package/lib/cjs/Validation/Diagnostic.js.map +1 -1
  77. package/lib/cjs/Validation/DiagnosticReporter.js.map +1 -1
  78. package/lib/cjs/Validation/ECRules.js.map +1 -1
  79. package/lib/cjs/Validation/LoggingDiagnosticReporter.js.map +1 -1
  80. package/lib/cjs/Validation/RuleSuppressionSet.js.map +1 -1
  81. package/lib/cjs/Validation/Rules.js.map +1 -1
  82. package/lib/cjs/Validation/SchemaChanges.js.map +1 -1
  83. package/lib/cjs/Validation/SchemaCompareDiagnostics.js.map +1 -1
  84. package/lib/cjs/Validation/SchemaCompareReporter.js.map +1 -1
  85. package/lib/cjs/Validation/SchemaCompareResultDelegate.js.map +1 -1
  86. package/lib/cjs/Validation/SchemaCompareVisitor.js.map +1 -1
  87. package/lib/cjs/Validation/SchemaComparer.js.map +1 -1
  88. package/lib/cjs/Validation/SchemaValidater.js.map +1 -1
  89. package/lib/cjs/Validation/SchemaValidationVisitor.js.map +1 -1
  90. package/lib/cjs/Validation/SchemaWalker.js.map +1 -1
  91. package/lib/cjs/ecschema-editing.js.map +1 -1
  92. package/lib/esm/Differencing/Errors.js.map +1 -1
  93. package/lib/esm/Differencing/SchemaConflicts.js.map +1 -1
  94. package/lib/esm/Differencing/SchemaDiagnosticVisitor.js.map +1 -1
  95. package/lib/esm/Differencing/SchemaDifference.js.map +1 -1
  96. package/lib/esm/Differencing/SchemaDifferenceValidator.js.map +1 -1
  97. package/lib/esm/Differencing/SchemaDifferenceVisitor.js.map +1 -1
  98. package/lib/esm/Differencing/Utils.js.map +1 -1
  99. package/lib/esm/Editing/Constants.js.map +1 -1
  100. package/lib/esm/Editing/CustomAttributes.js.map +1 -1
  101. package/lib/esm/Editing/ECClasses.js.map +1 -1
  102. package/lib/esm/Editing/Editor.js.map +1 -1
  103. package/lib/esm/Editing/Entities.js.map +1 -1
  104. package/lib/esm/Editing/Enumerations.js.map +1 -1
  105. package/lib/esm/Editing/Exception.js.map +1 -1
  106. package/lib/esm/Editing/Formats.js.map +1 -1
  107. package/lib/esm/Editing/InvertedUnits.js.map +1 -1
  108. package/lib/esm/Editing/KindOfQuantities.js.map +1 -1
  109. package/lib/esm/Editing/Mixins.js.map +1 -1
  110. package/lib/esm/Editing/Mutable/MutableArrayProperty.js.map +1 -1
  111. package/lib/esm/Editing/Mutable/MutableCAClass.js.map +1 -1
  112. package/lib/esm/Editing/Mutable/MutableClass.js.map +1 -1
  113. package/lib/esm/Editing/Mutable/MutableConstant.js.map +1 -1
  114. package/lib/esm/Editing/Mutable/MutableEntityClass.js.map +1 -1
  115. package/lib/esm/Editing/Mutable/MutableEnumeration.js.map +1 -1
  116. package/lib/esm/Editing/Mutable/MutableFormat.js.map +1 -1
  117. package/lib/esm/Editing/Mutable/MutableInvertedUnit.js.map +1 -1
  118. package/lib/esm/Editing/Mutable/MutableKindOfQuantity.js.map +1 -1
  119. package/lib/esm/Editing/Mutable/MutableMixin.js.map +1 -1
  120. package/lib/esm/Editing/Mutable/MutableNavigationProperty.js.map +1 -1
  121. package/lib/esm/Editing/Mutable/MutablePhenomenon.js.map +1 -1
  122. package/lib/esm/Editing/Mutable/MutablePrimitiveOrEnumProperty.js.map +1 -1
  123. package/lib/esm/Editing/Mutable/MutableProperty.js.map +1 -1
  124. package/lib/esm/Editing/Mutable/MutablePropertyCategory.js.map +1 -1
  125. package/lib/esm/Editing/Mutable/MutableRelationshipClass.js.map +1 -1
  126. package/lib/esm/Editing/Mutable/MutableSchema.js.map +1 -1
  127. package/lib/esm/Editing/Mutable/MutableSchemaItem.js.map +1 -1
  128. package/lib/esm/Editing/Mutable/MutableStructProperty.js.map +1 -1
  129. package/lib/esm/Editing/Mutable/MutableUnit.js.map +1 -1
  130. package/lib/esm/Editing/Mutable/MutableUnitSystem.js.map +1 -1
  131. package/lib/esm/Editing/Phenomena.js.map +1 -1
  132. package/lib/esm/Editing/Properties.js.map +1 -1
  133. package/lib/esm/Editing/PropertyCategories.js.map +1 -1
  134. package/lib/esm/Editing/RelationshipClasses.js.map +1 -1
  135. package/lib/esm/Editing/SchemaItems.js.map +1 -1
  136. package/lib/esm/Editing/Structs.js.map +1 -1
  137. package/lib/esm/Editing/UnitSystems.js.map +1 -1
  138. package/lib/esm/Editing/Units.js.map +1 -1
  139. package/lib/esm/Merging/ClassMerger.js.map +1 -1
  140. package/lib/esm/Merging/ConstantMerger.js.map +1 -1
  141. package/lib/esm/Merging/CustomAttributeClassMerger.js.map +1 -1
  142. package/lib/esm/Merging/CustomAttributeMerger.js.map +1 -1
  143. package/lib/esm/Merging/Edits/NameMapping.js.map +1 -1
  144. package/lib/esm/Merging/Edits/RenameEditHandler.js.map +1 -1
  145. package/lib/esm/Merging/Edits/SchemaEdits.js.map +1 -1
  146. package/lib/esm/Merging/Edits/SkipEditHandler.js.map +1 -1
  147. package/lib/esm/Merging/EntityClassMerger.js.map +1 -1
  148. package/lib/esm/Merging/EnumerationMerger.js.map +1 -1
  149. package/lib/esm/Merging/EnumeratorMerger.js.map +1 -1
  150. package/lib/esm/Merging/FormatMerger.js.map +1 -1
  151. package/lib/esm/Merging/InvertedUnitMerger.js.map +1 -1
  152. package/lib/esm/Merging/KindOfQuantityMerger.js.map +1 -1
  153. package/lib/esm/Merging/MixinMerger.js.map +1 -1
  154. package/lib/esm/Merging/PhenomenonMerger.js.map +1 -1
  155. package/lib/esm/Merging/PropertyCategoryMerger.js.map +1 -1
  156. package/lib/esm/Merging/PropertyMerger.js.map +1 -1
  157. package/lib/esm/Merging/RelationshipClassMerger.js.map +1 -1
  158. package/lib/esm/Merging/SchemaMerger.js.map +1 -1
  159. package/lib/esm/Merging/SchemaMergingVisitor.js.map +1 -1
  160. package/lib/esm/Merging/SchemaMergingWalker.js.map +1 -1
  161. package/lib/esm/Merging/SchemaReferenceMerger.js.map +1 -1
  162. package/lib/esm/Merging/StructClassMerger.js.map +1 -1
  163. package/lib/esm/Merging/UnitMerger.js.map +1 -1
  164. package/lib/esm/Merging/UnitSystemMerger.js.map +1 -1
  165. package/lib/esm/Merging/Utils.js.map +1 -1
  166. package/lib/esm/Validation/Diagnostic.js.map +1 -1
  167. package/lib/esm/Validation/DiagnosticReporter.js.map +1 -1
  168. package/lib/esm/Validation/ECRules.js.map +1 -1
  169. package/lib/esm/Validation/LoggingDiagnosticReporter.js.map +1 -1
  170. package/lib/esm/Validation/RuleSuppressionSet.js.map +1 -1
  171. package/lib/esm/Validation/Rules.js.map +1 -1
  172. package/lib/esm/Validation/SchemaChanges.js.map +1 -1
  173. package/lib/esm/Validation/SchemaCompareDiagnostics.js.map +1 -1
  174. package/lib/esm/Validation/SchemaCompareReporter.js.map +1 -1
  175. package/lib/esm/Validation/SchemaCompareResultDelegate.js.map +1 -1
  176. package/lib/esm/Validation/SchemaCompareVisitor.js.map +1 -1
  177. package/lib/esm/Validation/SchemaComparer.js.map +1 -1
  178. package/lib/esm/Validation/SchemaValidater.js.map +1 -1
  179. package/lib/esm/Validation/SchemaValidationVisitor.js.map +1 -1
  180. package/lib/esm/Validation/SchemaWalker.js.map +1 -1
  181. package/lib/esm/ecschema-editing.js.map +1 -1
  182. package/package.json +9 -9
  183. package/public/locales/en/ECSchemaEditing.json +26 -26
@@ -1 +1 @@
1
- {"version":3,"file":"SchemaChanges.js","sourceRoot":"","sources":["../../../src/Validation/SchemaChanges.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 Comparison\n */\n\nimport { AnyClass, AnyEnumerator, CustomAttribute, ECClass, ECSchemaError, ECSchemaStatus,\n EntityClass, Enumeration, Format, KindOfQuantity, OverrideFormat, Property, RelationshipClass, RelationshipConstraint,\n Schema, SchemaItem, SchemaItemType,\n} from \"@itwin/ecschema-metadata\";\nimport { AnyDiagnostic } from \"./Diagnostic\";\nimport { SchemaCompareCodes } from \"./SchemaCompareDiagnostics\";\n\n/**\n * Possible change types used to categorize ISchemaChange objects.\n * @alpha\n */\nexport enum ChangeType {\n Delta = 0,\n Missing = 1,\n}\n\n/**\n * Interface that represents any change reported\n * between two schemas.\n * @alpha\n */\nexport interface ISchemaChange {\n /** The diagnostic containing the data related to the change. */\n diagnostic: AnyDiagnostic;\n /** The highest level SchemaItem that this change ultimately belong to. */\n topLevelSchemaItem: SchemaItem | Schema;\n /** The ChangeType (Delta or Missing) for this change. */\n changeType: ChangeType;\n /** Returns a string representation of the change. */\n toString(): string;\n}\n\n/**\n * Interface that represents an object that manages\n * a related set of ISchemaChange objects.\n * @alpha\n */\nexport interface ISchemaChanges {\n schema: Schema;\n ecTypeName: string;\n addChange(change: ISchemaChange): void;\n}\n\n/**\n * Allows an ISchemaChanges implementation to be dynamically constructed in addChangeToMap.\n */\ninterface SchemaChangesConstructor { new(schema: Schema, ecTypeName: string): ISchemaChanges } // eslint-disable-line @typescript-eslint/prefer-function-type\n\n/**\n * An ISchemaChange implementation meant to be used as the base class\n * for all other ISchemaChange implementations.\n * @alpha\n */\nexport abstract class BaseSchemaChange implements ISchemaChange {\n private _diagnostic: AnyDiagnostic;\n private _changeType!: ChangeType;\n\n /**\n * Initializes a new BaseSchemaChange instance.\n * @param diagnostic The diagnostic holding the change data.\n */\n constructor(diagnostic: AnyDiagnostic) {\n this._diagnostic = diagnostic;\n }\n\n /** Gets the diagnostic holding the information about the schema change. */\n public get diagnostic(): AnyDiagnostic { return this._diagnostic; }\n\n /**\n * Returns the SchemaItem that this change ultimately belongs to. For example,\n * for a CustomAttributeInstanceClassMissing diagnostic reported on a RelationshipConstraint,\n * the top-level SchemaItem would be the Relationship.\n */\n public abstract get topLevelSchemaItem(): SchemaItem | Schema;\n\n /**\n * Gets the change type (Delta or Missing) for the change. If not previously\n * set, the defaultChangeType value will be returned.\n */\n public get changeType() {\n if (!this._changeType)\n this._changeType = this.defaultChangeType;\n return this._changeType;\n }\n public set changeType(changeType: ChangeType) { this._changeType = changeType; }\n\n /** The default ChangeType (Delta or Missing). */\n public abstract get defaultChangeType(): ChangeType;\n\n /** Gets a string representation of the schema change. */\n public abstract toString(): string;\n\n /**\n * Gets the name or fullName from an EC type that is in the args array at\n * the specified index. Performs validation based on the given parameters.\n * @param index The index in the args array to find the EC type.\n * @param args The collection of arguments received in the diagnostics.\n * @param allowUndefined Specifies that undefined values are allowed.\n * @param fullName Flag indicating that the fullName should be returned rather than the name.\n */\n protected getNameFromArgument(index: number, allowUndefined: boolean = false, fullName: boolean = false): string {\n if (!this.diagnostic.messageArgs || this.diagnostic.messageArgs.length <= index)\n throw new ECSchemaError(ECSchemaStatus.InvalidSchemaComparisonArgument, `Schema comparison diagnostic '${this.diagnostic.code}' for SchemaItem '${this.topLevelSchemaItem.fullName}' has invalid arguments`);\n\n const schemaItem = this.getValueFromArgument(index);\n if (Schema.isSchema(schemaItem) || SchemaItem.isSchemaItem(schemaItem) || OverrideFormat.isOverrideFormat(schemaItem))\n return fullName ? schemaItem.fullName : schemaItem.name;\n\n if (!allowUndefined)\n throw new ECSchemaError(ECSchemaStatus.InvalidSchemaComparisonArgument, `Schema comparison diagnostic '${this.diagnostic.code}' for SchemaItem '${this.topLevelSchemaItem.fullName}' has invalid arguments`);\n\n return \"undefined\";\n }\n\n /**\n * Gets a string from the diagnostics arguments at the given index. If the value is undefined,\n * the string 'undefined' will be returned.\n * @param index The index in the args array to find the property value.\n */\n protected getStringFromArgument(index: number): string {\n const value = this.getValueFromArgument(index);\n if (value === undefined)\n return \"undefined\";\n\n if (typeof value === \"number\")\n return value.toString();\n\n if (typeof value === \"boolean\")\n return value ? \"true\" : \"false\";\n\n if (typeof value !== \"string\")\n throw new Error();\n\n return value;\n }\n\n /**\n * Helper method to retrieve a value from the diagnostic arguments, performing validation.\n * @param index THe index in the diagnostic arguments array.\n */\n protected getValueFromArgument(index: number): any {\n if (!this.diagnostic.messageArgs || this.diagnostic.messageArgs.length <= index)\n throw new Error();\n\n return this.diagnostic.messageArgs[index];\n }\n}\n\n/**\n * Base class for all ISchemaChanges implementations.\n * @alpha\n */\nexport abstract class BaseSchemaChanges implements ISchemaChanges {\n private _ecTypeName: string;\n private _schema: Schema;\n private _propertyValueChanges: PropertyValueChange[] = [];\n\n /**\n * Initializes a new BaseSchemaChanges instance.\n * @param schema The schema containing the changes.\n * @param anyECTypeName The name of the EC type.\n */\n constructor(schema: Schema, anyECTypeName: string) {\n this._schema = schema;\n this._ecTypeName = anyECTypeName;\n }\n\n /** Gets the array of PropertyValueChange instances. */\n public get propertyValueChanges(): PropertyValueChange[] {\n return this._propertyValueChanges;\n }\n\n /** Gets the name of the EC type associated with these schema changes. */\n public get ecTypeName(): string {\n return this._ecTypeName;\n }\n\n /** Gets the schema to which these changes are associated. */\n public get schema(): Schema {\n return this._schema;\n }\n\n /**\n * Adds a new ISchemaChange to a collection determined by the implementation.\n * @param change\n */\n public abstract addChange(change: ISchemaChange): void;\n\n /**\n * Helper method that adds a new ISchemaChange to a Map whose values are ISchemaChanges. The changesType will\n * be used to create a new ISchemaChanges instance if the changes collection does not exist in the Map.\n * @param changes The ISchemaChanges Map to which to add the ISchemaChange.\n * @param changesType The constructor of the ISchemaChanges. Called if the ISchemaChanges instance does not exist in the Map.\n * @param change The ISchemaChange to add.\n * @param changeKey The key used to identify the ISchemaChanges in the Map (typically the name of the EC type, ie. SchemaItem.name).\n */\n protected addChangeToMap<V extends ISchemaChanges>(changes: Map<string, V>, changesType: SchemaChangesConstructor, change: ISchemaChange, changeKey: string) {\n if (changes.has(changeKey)) {\n const existingChanges = changes.get(changeKey);\n existingChanges!.addChange(change);\n } else {\n const newChanges = new changesType(this._schema, changeKey);\n newChanges.addChange(change);\n changes.set(changeKey, newChanges as V);\n }\n }\n\n /**\n * Helper method to determine if the diagnostic is a property value change delta for this ISchemaChanges instance.\n * @param diagnostic The change diagnostic.\n * @param ecTypeName The name of the EC type as determined by the implementation.\n */\n protected isPropertyValueChangeForThis(diagnostic: AnyDiagnostic, ecTypeName: string): boolean {\n if (this.ecTypeName !== ecTypeName)\n return false;\n\n switch (diagnostic.code) {\n case SchemaCompareCodes.SchemaDelta:\n case SchemaCompareCodes.SchemaItemDelta:\n case SchemaCompareCodes.ClassDelta:\n case SchemaCompareCodes.MixinDelta:\n case SchemaCompareCodes.RelationshipDelta:\n case SchemaCompareCodes.CustomAttributeClassDelta:\n case SchemaCompareCodes.EnumerationDelta:\n case SchemaCompareCodes.KoqDelta:\n case SchemaCompareCodes.PropertyCategoryDelta:\n case SchemaCompareCodes.FormatDelta:\n case SchemaCompareCodes.UnitDelta:\n case SchemaCompareCodes.InvertedUnitDelta:\n case SchemaCompareCodes.PhenomenonDelta:\n case SchemaCompareCodes.ConstantDelta:\n case SchemaCompareCodes.PropertyDelta:\n case SchemaCompareCodes.RelationshipConstraintDelta:\n return true;\n default:\n return false;\n }\n }\n\n /**\n * Helper method to determine if the diagnostic is a CustomAttributeInstance class change for this ISchemaChanges instance.\n * @param diagnostic The change diagnostic.\n * @param ecTypeName The name of the EC type as determined by the implementation.\n */\n protected isCAContainerChangeForThis(diagnostic: AnyDiagnostic, ecTypeName: string | undefined): boolean {\n if (this.ecTypeName !== ecTypeName)\n return false;\n\n return diagnostic.code === SchemaCompareCodes.CustomAttributeInstanceClassMissing;\n }\n}\n\n/**\n * An ISchemaChanges implementation for managing schema comparison diagnostics at the Schema level.\n * @alpha\n */\nexport class SchemaChanges extends BaseSchemaChanges {\n private _diagnostics: AnyDiagnostic[] = [];\n private _missingSchemaReferences: SchemaReferenceMissing[] = [];\n private _schemaReferenceDeltas: SchemaReferenceDelta[] = [];\n private _customAttributeChanges: Map<string, CustomAttributeContainerChanges> = new Map();\n private _classChanges: Map<string, ClassChanges> = new Map();\n private _entityClassChanges: Map<string, EntityClassChanges> = new Map();\n private _relationshipClassChanges: Map<string, RelationshipClassChanges> = new Map();\n private _schemaItemChanges: Map<string, SchemaItemChanges> = new Map();\n private _enumerationChanges: Map<string, EnumerationChanges> = new Map();\n private _kindOfQuantityChanges: Map<string, KindOfQuantityChanges> = new Map();\n private _formatChanges: Map<string, FormatChanges> = new Map();\n\n /**\n * Initializes a new SchemaChanges instance.\n * @param schema The schema containing the changes.\n */\n constructor(schema: Schema) {\n super(schema, schema.name);\n }\n\n /** Gets the MissingSchemaReferences collection. */\n public get missingSchemaReferences(): SchemaReferenceMissing[] { return this._missingSchemaReferences; }\n\n /** Gets the SchemaReferenceChange collection. */\n public get schemaReferenceDeltas(): SchemaReferenceDelta[] { return this._schemaReferenceDeltas; }\n\n /** Gets the CustomAttributeContainerChanges Map. */\n public get customAttributeChanges(): Map<string, CustomAttributeContainerChanges> { return this._customAttributeChanges; }\n\n /** Gets the ClassChanges Map. */\n public get classChanges(): Map<string, ClassChanges> { return this._classChanges; }\n\n /** Gets the EntityClassChanges Map. */\n public get entityClassChanges(): Map<string, EntityClassChanges> { return this._entityClassChanges; }\n\n /** Gets the RelationshipClassChanges Map. */\n public get relationshipClassChanges(): Map<string, RelationshipClassChanges> { return this._relationshipClassChanges; }\n\n /** Gets the SchemaItemChanges Map. */\n public get schemaItemChanges(): Map<string, SchemaItemChanges> { return this._schemaItemChanges; }\n\n /** Gets the EnumerationChanges Map. */\n public get enumerationChanges(): Map<string, EnumerationChanges> { return this._enumerationChanges; }\n\n /** Gets the KindOfQuantityChanges Map. */\n public get kindOfQuantityChanges(): Map<string, KindOfQuantityChanges> { return this._kindOfQuantityChanges; }\n\n /** Gets the FormatChanges Map. */\n public get formatChanges(): Map<string, FormatChanges> { return this._formatChanges; }\n\n /** Gets all the change diagnostics that have been added to instance. */\n public get allDiagnostics(): AnyDiagnostic[] {\n return this._diagnostics;\n }\n\n /**\n * Adds a new change diagnostic for the schema.\n * @param diagnostic\n */\n public addDiagnostic(diagnostic: AnyDiagnostic) {\n this._diagnostics.push(diagnostic);\n\n const change = this.createChangeFromDiagnostic(diagnostic);\n this.addChange(change);\n }\n\n /**\n * Adds the change to the appropriate change collection at this level or adds the change\n * to a Map of child changes will which propagate the change to lower levels. Typically\n * any 'addChangeToMap' type method will then call addChange to add the ISchemaChange to\n * the ISchemaChanges instance at that level.\n * @param change The ISchemaChange to add.\n */\n public addChange(change: ISchemaChange) {\n const schemaName = this.getSchemaNameFromChange(change);\n\n // If change is at the schema level, record change and return\n if (schemaName) {\n if (change.diagnostic.code === SchemaCompareCodes.SchemaReferenceMissing) {\n this.missingSchemaReferences.push(change as SchemaReferenceMissing);\n return;\n }\n\n if (change.diagnostic.code === SchemaCompareCodes.SchemaReferenceDelta) {\n this.schemaReferenceDeltas.push(change as SchemaReferenceDelta);\n return;\n }\n\n if (this.isCAContainerChangeForThis(change.diagnostic, schemaName)) {\n this.addChangeToMap(this.customAttributeChanges, CustomAttributeContainerChanges, change, (change as CustomAttributeContainerChange).changeKey);\n return;\n }\n\n if (this.isPropertyValueChangeForThis(change.diagnostic, schemaName)) {\n this.propertyValueChanges.push(change as PropertyValueChange);\n return;\n }\n }\n\n // Start by adding the change for the top-level SchemaItem which will\n // start a recursion to add the change at each appropriate level.\n const schemaItem = change.topLevelSchemaItem;\n const schemaItemType = (schemaItem as SchemaItem).schemaItemType;\n\n switch (schemaItemType) {\n case SchemaItemType.Mixin:\n case SchemaItemType.StructClass:\n case SchemaItemType.CustomAttributeClass:\n this.addChangeToClassMap(change, schemaItem as AnyClass);\n return;\n case SchemaItemType.EntityClass:\n this.addChangeToEntityClassMap(change, schemaItem as EntityClass);\n return;\n case SchemaItemType.RelationshipClass:\n this.addChangeToRelationshipClassMap(change, schemaItem as RelationshipClass);\n return;\n case SchemaItemType.PropertyCategory:\n case SchemaItemType.Unit:\n case SchemaItemType.InvertedUnit:\n case SchemaItemType.UnitSystem:\n case SchemaItemType.Phenomenon:\n case SchemaItemType.Constant:\n this.addChangeToSchemaItemMap(change, schemaItem as SchemaItem);\n return;\n case SchemaItemType.Enumeration:\n this.addChangeToEnumerationMap(change, schemaItem as Enumeration);\n return;\n case SchemaItemType.KindOfQuantity:\n this.addChangeToKOQMap(change, schemaItem as KindOfQuantity);\n return;\n case SchemaItemType.Format:\n this.addChangeToFormatMap(change, schemaItem as Format);\n return;\n }\n }\n\n private getSchemaNameFromChange(change: ISchemaChange): string | undefined {\n const type = change.diagnostic.ecDefinition;\n\n return (Schema.isSchema(type)) ? type.name : undefined;\n }\n\n /** This creates ISchemaChange instances based on the change diagnostic specified. */\n private createChangeFromDiagnostic(diagnostic: AnyDiagnostic): ISchemaChange {\n switch (diagnostic.code) {\n case SchemaCompareCodes.SchemaReferenceMissing:\n return new SchemaReferenceMissing(diagnostic);\n case SchemaCompareCodes.SchemaReferenceDelta:\n return new SchemaReferenceDelta(diagnostic);\n case SchemaCompareCodes.SchemaDelta:\n case SchemaCompareCodes.SchemaItemDelta:\n case SchemaCompareCodes.ClassDelta:\n case SchemaCompareCodes.MixinDelta:\n case SchemaCompareCodes.RelationshipDelta:\n case SchemaCompareCodes.CustomAttributeClassDelta:\n case SchemaCompareCodes.EnumerationDelta:\n case SchemaCompareCodes.KoqDelta:\n case SchemaCompareCodes.PropertyCategoryDelta:\n case SchemaCompareCodes.FormatDelta:\n case SchemaCompareCodes.UnitDelta:\n case SchemaCompareCodes.InvertedUnitDelta:\n case SchemaCompareCodes.PhenomenonDelta:\n case SchemaCompareCodes.ConstantDelta:\n case SchemaCompareCodes.PropertyDelta:\n case SchemaCompareCodes.RelationshipConstraintDelta:\n return new PropertyValueChange(diagnostic);\n case SchemaCompareCodes.SchemaItemMissing:\n return new SchemaItemMissing(diagnostic);\n case SchemaCompareCodes.BaseClassDelta:\n return new BaseClassDelta(diagnostic);\n case SchemaCompareCodes.PropertyMissing:\n return new PropertyMissing(diagnostic);\n case SchemaCompareCodes.EntityMixinMissing:\n return new EntityMixinChange(diagnostic);\n case SchemaCompareCodes.RelationshipConstraintClassMissing:\n return new RelationshipConstraintClassChange(diagnostic);\n case SchemaCompareCodes.CustomAttributeInstanceClassMissing:\n return new CustomAttributeContainerChange(diagnostic);\n case SchemaCompareCodes.EnumeratorMissing:\n return new EnumeratorMissing(diagnostic);\n case SchemaCompareCodes.EnumeratorDelta:\n return new EnumeratorDelta(diagnostic);\n case SchemaCompareCodes.PresentationUnitMissing:\n return new PresentationUnitChange(diagnostic);\n case SchemaCompareCodes.FormatUnitMissing:\n return new FormatUnitChange(diagnostic);\n case SchemaCompareCodes.UnitLabelOverrideDelta:\n return new UnitLabelOverrideDelta(diagnostic);\n default:\n throw new Error();\n }\n }\n\n private addChangeToSchemaItemMap(change: ISchemaChange, schemaItem: SchemaItem) {\n if (this.schemaItemChanges.has(schemaItem.name)) {\n const existingChanges = this.schemaItemChanges.get(schemaItem.name);\n existingChanges!.addChange(change);\n } else {\n const newChanges = new SchemaItemChanges(this.schema, schemaItem.name, schemaItem.schemaItemType);\n newChanges.addChange(change);\n this.schemaItemChanges.set(schemaItem.name, newChanges);\n }\n }\n\n private addChangeToClassMap(change: ISchemaChange, ecClass: AnyClass) {\n if (this.classChanges.has(ecClass.name)) {\n const existingChanges = this.classChanges.get(ecClass.name);\n existingChanges!.addChange(change);\n } else {\n const newChanges = new ClassChanges(this.schema, ecClass.name, ecClass.schemaItemType);\n newChanges.addChange(change);\n this.classChanges.set(ecClass.name, newChanges);\n }\n }\n\n private addChangeToEntityClassMap(change: ISchemaChange, ecClass: EntityClass) {\n if (this.entityClassChanges.has(ecClass.name)) {\n const existingChanges = this.entityClassChanges.get(ecClass.name);\n existingChanges!.addChange(change);\n } else {\n const newChanges = new EntityClassChanges(this.schema, ecClass.name, ecClass.schemaItemType);\n newChanges.addChange(change);\n this.entityClassChanges.set(ecClass.name, newChanges);\n }\n }\n\n private addChangeToRelationshipClassMap(change: ISchemaChange, ecClass: RelationshipClass) {\n if (this.relationshipClassChanges.has(ecClass.name)) {\n const existingChanges = this.relationshipClassChanges.get(ecClass.name);\n existingChanges!.addChange(change);\n } else {\n const newChanges = new RelationshipClassChanges(this.schema, ecClass.name, ecClass.schemaItemType);\n newChanges.addChange(change);\n this.relationshipClassChanges.set(ecClass.name, newChanges);\n }\n }\n\n private addChangeToEnumerationMap(change: ISchemaChange, enumeration: Enumeration) {\n if (this.enumerationChanges.has(enumeration.name)) {\n const existingChanges = this.enumerationChanges.get(enumeration.name);\n existingChanges!.addChange(change);\n } else {\n const newChanges = new EnumerationChanges(this.schema, enumeration.name, enumeration.schemaItemType);\n newChanges.addChange(change);\n this.enumerationChanges.set(enumeration.name, newChanges);\n }\n }\n\n private addChangeToKOQMap(change: ISchemaChange, koq: KindOfQuantity) {\n if (this.kindOfQuantityChanges.has(koq.name)) {\n const existingChanges = this.kindOfQuantityChanges.get(koq.name);\n existingChanges!.addChange(change);\n } else {\n const newChanges = new KindOfQuantityChanges(this.schema, koq.name, koq.schemaItemType);\n newChanges.addChange(change);\n this.kindOfQuantityChanges.set(koq.name, newChanges);\n }\n }\n\n private addChangeToFormatMap(change: ISchemaChange, format: Format) {\n if (this.formatChanges.has(format.name)) {\n const existingChanges = this.formatChanges.get(format.name);\n existingChanges!.addChange(change);\n } else {\n const newChanges = new FormatChanges(this.schema, format.name, format.schemaItemType);\n newChanges.addChange(change);\n this.formatChanges.set(format.name, newChanges);\n }\n }\n}\n\n/**\n * An ISchemaChanges implementation for managing schema comparison diagnostics at the SchemaItem level.\n * @alpha\n */\nexport class SchemaItemChanges extends BaseSchemaChanges {\n private _schemaItemType: SchemaItemType;\n private _schemaItemMissing?: SchemaItemMissing;\n\n /**\n * Initializes a new SchemaItemChanges instance.\n * @param schema The Schema containing the change.\n * @param schemaItemName The name of the EC type associated with the change.\n * @param schemaItemType The SchemaItemType of the EC type.\n */\n constructor(schema: Schema, schemaItemName: string, schemaItemType: SchemaItemType) {\n super(schema, schemaItemName);\n this._schemaItemType = schemaItemType;\n }\n\n /** Gets the SchemaItemType of the SchemaItem associated with the changes. */\n public get schemaItemType(): SchemaItemType {\n return this._schemaItemType;\n }\n\n /** Gets the SchemaItemMissing change. Maybe undefined. */\n public get schemaItemMissing(): SchemaItemMissing | undefined {\n return this._schemaItemMissing;\n }\n\n /**\n * Adds the change to the appropriate change collection at this level or adds the change\n * to a Map of child changes will which propagate the change to lower levels.\n * @param change The ISchemaChange to add.\n */\n public addChange(change: ISchemaChange): void {\n if (change.diagnostic.code === SchemaCompareCodes.SchemaItemMissing) {\n this._schemaItemMissing = change as SchemaItemMissing;\n return;\n }\n\n const name = this.getSchemaItemNameFromChange(change);\n if (!name)\n return;\n\n if (this.isPropertyValueChangeForThis(change.diagnostic, name)) {\n this.propertyValueChanges.push(change as PropertyValueChange);\n return;\n }\n }\n\n protected getSchemaItemNameFromChange(change: ISchemaChange): string | undefined {\n const type = change.diagnostic.ecDefinition;\n return (SchemaItem.isSchemaItem(type)) ? type.name : undefined;\n }\n}\n\n/**\n * An ISchemaChanges implementation for managing schema comparison diagnostics at the Class level.\n * @alpha\n */\nexport class ClassChanges extends SchemaItemChanges {\n private _baseClassDelta?: BaseClassDelta;\n private _propertyChanges: Map<string, PropertyChanges> = new Map();\n private _customAttributeChanges: Map<string, CustomAttributeContainerChanges> = new Map();\n\n /** Gets the BaseClassDelta change. Maybe undefined. */\n public get baseClassDelta(): BaseClassDelta | undefined {\n return this._baseClassDelta;\n }\n\n /** Gets the PropertyChanges Map. */\n public get propertyChanges(): Map<string, PropertyChanges> {\n return this._propertyChanges;\n }\n\n /** Gets the Map of CustomAttributeContainerChanges. */\n public get customAttributeChanges(): Map<string, CustomAttributeContainerChanges> {\n return this._customAttributeChanges;\n }\n\n /**\n * Adds the change to the appropriate change collection at this level or adds the change\n * to a Map of child changes will which propagate the change to lower levels.\n * @param change The ISchemaChange to add.\n */\n public override addChange(change: ISchemaChange): void {\n super.addChange(change);\n\n if (change.diagnostic.code === SchemaCompareCodes.BaseClassDelta) {\n this._baseClassDelta = change as BaseClassDelta;\n return;\n }\n\n if (Property.isProperty(change.diagnostic.ecDefinition)) {\n this.addChangeToMap(this.propertyChanges, PropertyChanges, change, change.diagnostic.ecDefinition.name);\n return;\n }\n\n if (this.isCAContainerChangeForThis(change.diagnostic, this.getSchemaItemNameFromChange(change))) {\n this.addChangeToMap(this.customAttributeChanges, CustomAttributeContainerChanges, change, (change as CustomAttributeContainerChange).changeKey);\n return;\n }\n }\n}\n\n/**\n * An ISchemaChanges implementation for managing schema comparison diagnostics at the Class level.\n * @alpha\n */\nexport class EntityClassChanges extends ClassChanges {\n private _entityMixinChanges: Map<string, EntityMixinChanges> = new Map();\n\n /** Gets the EntityMixinChanges Map. */\n public get entityMixinChanges(): Map<string, EntityMixinChanges> {\n return this._entityMixinChanges;\n }\n\n /**\n * Adds the change to the appropriate change collection at this level or adds the change\n * to a Map of child changes will which propagate the change to lower levels.\n * @param change The ISchemaChange to add.\n */\n public override addChange(change: ISchemaChange): void {\n super.addChange(change);\n\n if (change.diagnostic.code === SchemaCompareCodes.EntityMixinMissing) {\n this.addChangeToMap(this.entityMixinChanges, EntityMixinChanges, change, (change as EntityMixinChange).changeKey);\n return;\n }\n }\n}\n\n/**\n * An ISchemaChanges implementation for managing schema comparison diagnostics for RelationshipClasses.\n * @alpha\n */\nexport class RelationshipClassChanges extends ClassChanges {\n private _sourceConstraintChanges: Map<string, RelationshipConstraintChanges> = new Map();\n private _targetConstraintChanges: Map<string, RelationshipConstraintChanges> = new Map();\n\n /** Gets the source RelationshipConstraintChanges Map. */\n public get sourceConstraintChanges(): Map<string, RelationshipConstraintChanges> {\n return this._sourceConstraintChanges;\n }\n\n /** Gets the target RelationshipConstraintChanges Map. */\n public get targetConstraintChanges(): Map<string, RelationshipConstraintChanges> {\n return this._targetConstraintChanges;\n }\n\n /**\n * Adds the change to the appropriate change collection at this level or adds the change\n * to a Map of child changes will which propagate the change to lower levels.\n * @param change The ISchemaChange to add.\n */\n public override addChange(change: ISchemaChange): void {\n super.addChange(change);\n\n if (RelationshipConstraint.isRelationshipConstraint(change.diagnostic.ecDefinition)) {\n if (change.diagnostic.ecDefinition.isSource)\n this.addChangeToMap(this.sourceConstraintChanges, RelationshipConstraintChanges, change, change.diagnostic.ecDefinition.fullName);\n else\n this.addChangeToMap(this.targetConstraintChanges, RelationshipConstraintChanges, change, change.diagnostic.ecDefinition.fullName);\n }\n }\n}\n\n/**\n * An ISchemaChanges implementation for managing schema comparison diagnostics at the Property level.\n * @alpha\n */\nexport class PropertyChanges extends BaseSchemaChanges {\n private _propertyMissing?: PropertyMissing;\n private _customAttributeChanges: Map<string, CustomAttributeContainerChanges> = new Map();\n\n /** Gets the PropertyMissing change. Maybe undefined. */\n public get propertyMissing(): PropertyMissing | undefined {\n return this._propertyMissing;\n }\n\n /** Gets the CustomAttributeContainerChanges Map. */\n public get customAttributeChanges(): Map<string, CustomAttributeContainerChanges> {\n return this._customAttributeChanges;\n }\n\n /**\n * Adds the change to the appropriate change collection at this level or adds the change\n * to a Map of child changes will which propagate the change to lower levels.\n * @param change The ISchemaChange to add.\n */\n public addChange(change: ISchemaChange): void {\n const propertyName = this.getPropertyNameFromChange(change);\n if (!propertyName)\n return;\n\n if (change.diagnostic.code === SchemaCompareCodes.PropertyMissing) {\n this._propertyMissing = change as PropertyMissing;\n return;\n }\n\n if (this.isPropertyValueChangeForThis(change.diagnostic, propertyName)) {\n this.propertyValueChanges.push(change as PropertyValueChange);\n return;\n }\n\n if (this.isCAContainerChangeForThis(change.diagnostic, propertyName))\n this.addChangeToMap(this.customAttributeChanges, CustomAttributeContainerChanges, change, (change as CustomAttributeContainerChange).changeKey);\n }\n\n private getPropertyNameFromChange(change: ISchemaChange): string | undefined {\n const type = change.diagnostic.ecDefinition;\n return (Property.isProperty(type)) ? type.name : undefined;\n }\n}\n\n/**\n * An ISchemaChanges implementation for managing schema comparison diagnostics for Enumerations.\n * @alpha\n */\nexport class EnumerationChanges extends SchemaItemChanges {\n private _enumeratorChanges: Map<string, EnumeratorChanges> = new Map();\n\n /** Gets the EnumeratorChanges map. */\n public get enumeratorChanges(): Map<string, EnumeratorChanges> {\n return this._enumeratorChanges;\n }\n\n /**\n * Adds the change to the appropriate change collection at this level or adds the change\n * to a Map of child changes will which propagate the change to lower levels.\n * @param change The ISchemaChange to add.\n */\n public override addChange(change: ISchemaChange): void {\n super.addChange(change);\n\n if (change.diagnostic.code === SchemaCompareCodes.EnumeratorDelta) {\n this.addChangeToMap(this.enumeratorChanges, EnumeratorChanges, change, (change as EnumeratorDelta).changeKey);\n return;\n }\n\n if (change.diagnostic.code === SchemaCompareCodes.EnumeratorMissing) {\n this.addChangeToMap(this.enumeratorChanges, EnumeratorChanges, change, (change as EnumeratorMissing).changeKey);\n }\n }\n}\n\n/**\n * An ISchemaChanges implementation for managing schema comparison diagnostics for CustomAttributeContainers.\n * @alpha\n */\nexport class CustomAttributeContainerChanges extends BaseSchemaChanges {\n private _customAttributeChanges: CustomAttributeContainerChange[] = [];\n\n /** Gets the CustomAttributeContainerChange collection. */\n public get customAttributeChanges(): CustomAttributeContainerChange[] {\n return this._customAttributeChanges;\n }\n\n /**\n * Adds the change to the appropriate change collection at this level.\n * @param change The ISchemaChange to add.\n */\n public addChange(change: ISchemaChange): void {\n if (change.diagnostic.code === SchemaCompareCodes.CustomAttributeInstanceClassMissing)\n this.customAttributeChanges.push(change as CustomAttributeContainerChange);\n }\n}\n\n/**\n * An ISchemaChanges implementation for managing schema comparison diagnostics for RelationshipConstraints.\n * @alpha\n */\nexport class RelationshipConstraintChanges extends BaseSchemaChanges {\n private _constraintClassChanges: RelationshipConstraintClassChange[] = [];\n private _customAttributeChanges: Map<string, CustomAttributeContainerChanges> = new Map();\n\n /** Gets the RelationshipConstraintClassChange collection. */\n public get constraintClassChanges(): RelationshipConstraintClassChange[] {\n return this._constraintClassChanges;\n }\n\n /** Gets the CustomAttributeContainerChanges Map. */\n public get customAttributeChanges(): Map<string, CustomAttributeContainerChanges> {\n return this._customAttributeChanges;\n }\n\n /**\n * Adds the change to the appropriate change collection at this level or adds the change\n * to a Map of child changes will which propagate the change to lower levels.\n * @param change The ISchemaChange to add.\n */\n public addChange(change: ISchemaChange): void {\n const constraintName = this.getConstraintNameFromChange(change);\n if (!constraintName)\n return;\n\n if (this.isPropertyValueChangeForThis(change.diagnostic, constraintName)) {\n this.propertyValueChanges.push(change as PropertyValueChange);\n return;\n }\n\n if (change.diagnostic.code === SchemaCompareCodes.RelationshipConstraintClassMissing) {\n this.constraintClassChanges.push(change as RelationshipConstraintClassChange);\n return;\n }\n\n if (this.isCAContainerChangeForThis(change.diagnostic, constraintName))\n this.addChangeToMap(this.customAttributeChanges, CustomAttributeContainerChanges, change, (change as CustomAttributeContainerChange).changeKey);\n }\n\n private getConstraintNameFromChange(change: ISchemaChange): string | undefined {\n const type = change.diagnostic.ecDefinition;\n if (RelationshipConstraint.isRelationshipConstraint(type))\n return type.fullName;\n return undefined;\n }\n}\n\n/**\n * An ISchemaChanges implementation for managing schema comparison diagnostics for Enumerators.\n * @alpha\n */\nexport class EnumeratorChanges extends BaseSchemaChanges {\n private _enumeratorDeltas: EnumeratorDelta[] = [];\n private _enumeratorMissing?: EnumeratorMissing;\n\n /** Gets the EnumeratorDelta collection. */\n public get enumeratorDeltas(): EnumeratorDelta[] {\n return this._enumeratorDeltas;\n }\n\n /** Gets the EnumeratorMissing change. Maybe undefined. */\n public get enumeratorMissing(): EnumeratorMissing | undefined {\n return this._enumeratorMissing;\n }\n\n /**\n * Adds the change to the appropriate change collection.\n * @param change The ISchemaChange to add.\n */\n public addChange(change: ISchemaChange): void {\n if (change.diagnostic.code === SchemaCompareCodes.EnumeratorDelta) {\n this.enumeratorDeltas.push(change as EnumeratorDelta);\n return;\n }\n\n if (change.diagnostic.code === SchemaCompareCodes.EnumeratorMissing)\n this._enumeratorMissing = change as EnumeratorMissing;\n }\n}\n\n/**\n * An ISchemaChanges implementation for managing schema comparison diagnostics for EntityClass mixin changes.\n * @alpha\n */\nexport class EntityMixinChanges extends BaseSchemaChanges {\n private _entityMixinChange: EntityMixinChange[] = [];\n\n /** Gets the EntityMixinChange collection. */\n public get entityMixinChange(): EntityMixinChange[] {\n return this._entityMixinChange;\n }\n\n /**\n * Adds the change to the appropriate change collection.\n * @param change The ISchemaChange to add.\n */\n public addChange(change: ISchemaChange): void {\n if (change.diagnostic.code === SchemaCompareCodes.EntityMixinMissing)\n this.entityMixinChange.push(change as EntityMixinChange);\n }\n}\n\n/**\n * An ISchemaChanges implementation for managing schema comparison diagnostics for KindOfQuantities.\n * @alpha\n */\nexport class KindOfQuantityChanges extends SchemaItemChanges {\n private _presentationUnitChanges: Map<string, PresentationUnitChanges> = new Map();\n\n /** Gets the EntityMixinChange Map. */\n public get presentationUnitChanges(): Map<string, PresentationUnitChanges> {\n return this._presentationUnitChanges;\n }\n\n /**\n * Adds the change to the appropriate change collection.\n * @param change The ISchemaChange to add.\n */\n public override addChange(change: ISchemaChange): void {\n super.addChange(change);\n\n if (change.diagnostic.code === SchemaCompareCodes.PresentationUnitMissing)\n this.addChangeToMap(this.presentationUnitChanges, PresentationUnitChanges, change, (change as PresentationUnitChange).changeKey);\n }\n}\n\n/**\n * An ISchemaChanges implementation for managing schema comparison diagnostics for KindOfQuantity presentation units.\n * @alpha\n */\nexport class PresentationUnitChanges extends BaseSchemaChanges {\n private _presentationUnitChange: PresentationUnitChange[] = [];\n\n /** Gets the PresentationUnitChange collection. */\n public get presentationUnitChange(): PresentationUnitChange[] {\n return this._presentationUnitChange;\n }\n\n /**\n * Adds the change to the appropriate change collection.\n * @param change The ISchemaChange to add.\n */\n public addChange(change: ISchemaChange): void {\n if (change.diagnostic.code === SchemaCompareCodes.PresentationUnitMissing)\n this.presentationUnitChange.push(change as PresentationUnitChange);\n }\n}\n\n/**\n * An ISchemaChanges implementation for managing schema comparison diagnostics for Formats.\n * @alpha\n */\nexport class FormatChanges extends SchemaItemChanges {\n private _formatUnitChanges: Map<string, FormatUnitChanges> = new Map();\n\n /** Gets the FormatUnitChanges collection. */\n public get formatUnitChanges(): Map<string, FormatUnitChanges> {\n return this._formatUnitChanges;\n }\n\n /**\n * Adds the change to the appropriate change collection.\n * @param change The ISchemaChange to add.\n */\n public override addChange(change: ISchemaChange): void {\n super.addChange(change);\n\n if (change.diagnostic.code === SchemaCompareCodes.UnitLabelOverrideDelta) {\n this.addChangeToMap(this.formatUnitChanges, FormatUnitChanges, change, (change as UnitLabelOverrideDelta).changeKey);\n return;\n }\n\n if (change.diagnostic.code === SchemaCompareCodes.FormatUnitMissing)\n this.addChangeToMap(this.formatUnitChanges, FormatUnitChanges, change, (change as FormatUnitChange).changeKey);\n }\n}\n\n/**\n * An ISchemaChanges implementation for managing schema comparison diagnostics for Format units.\n * @alpha\n */\nexport class FormatUnitChanges extends BaseSchemaChanges {\n private _unitLabelOverrideDeltas: UnitLabelOverrideDelta[] = [];\n private _formatUnitChanges: FormatUnitChange[] = [];\n\n /** Gets the UnitLabelOverrideDelta collection. */\n public get unitLabelOverrideDeltas(): UnitLabelOverrideDelta[] {\n return this._unitLabelOverrideDeltas;\n }\n\n /** Gets the FormatUnitChange collection. */\n public get formatUnitChanges(): FormatUnitChange[] {\n return this._formatUnitChanges;\n }\n\n /**\n * Adds the change to the appropriate change collection.\n * @param change The ISchemaChange to add.\n */\n public addChange(change: ISchemaChange): void {\n if (change.diagnostic.code === SchemaCompareCodes.UnitLabelOverrideDelta) {\n this.unitLabelOverrideDeltas.push(change as UnitLabelOverrideDelta);\n return;\n }\n\n if (change.diagnostic.code === SchemaCompareCodes.FormatUnitMissing)\n this.formatUnitChanges.push(change as FormatUnitChange);\n }\n}\n\n/** ISchemaChange Implementations */\n\n/**\n * An ISchemaChange implementation to act as the base class for all changes\n * associated with SchemaItem instances.\n * @alpha\n */\nexport abstract class SchemaItemChange extends BaseSchemaChange {\n public get topLevelSchemaItem(): Schema | SchemaItem { return this.diagnostic.ecDefinition as SchemaItem; }\n}\n\n/**\n * An ISchemaChange implementation for Schema reference changes.\n * @alpha\n */\nexport class SchemaReferenceMissing extends BaseSchemaChange {\n /** Gets the default ChangeType (Delta or Missing) for this change */\n public get defaultChangeType(): ChangeType { return ChangeType.Missing; }\n\n /** Gets the SchemaItem or Schema (if a schema change) that this change ultimately belongs to. */\n public get topLevelSchemaItem(): Schema | SchemaItem { return this.diagnostic.ecDefinition as Schema; }\n\n /** Gets a string representation of the change. */\n public toString(): string {\n const refSchema = this.getNameFromArgument(0, false, true);\n return `Schema(${refSchema})`;\n }\n}\n\n/**\n * An ISchemaChange implementation differences of baseClasses between two ECClasses.\n * @alpha\n */\nexport class SchemaReferenceDelta extends BaseSchemaChange {\n /** Gets the default ChangeType (Delta or Missing) for this change */\n public get defaultChangeType(): ChangeType { return ChangeType.Delta; }\n\n /** Gets the SchemaItem or Schema (if a schema change) that this change ultimately belongs to. */\n public get topLevelSchemaItem(): Schema | SchemaItem { return this.diagnostic.ecDefinition as Schema; }\n\n /** Gets a string representation of the change. */\n public toString(): string {\n const refSchema = this.getNameFromArgument(0, false, true);\n const versionA = this.getStringFromArgument(1);\n const versionB = this.getStringFromArgument(2);\n return `Schema(${refSchema}): ${versionA} -> ${versionB}`;\n }\n}\n\n/**\n * An ISchemaChange implementation for missing SchemaItems.\n * @alpha\n */\nexport class SchemaItemMissing extends SchemaItemChange {\n /** Gets the default ChangeType (Delta or Missing) for this change */\n public get defaultChangeType(): ChangeType { return ChangeType.Missing; }\n\n /** Gets a string representation of the change. */\n public toString(): string {\n const item = this.diagnostic.ecDefinition as SchemaItem;\n const typeName = ECClass.isECClass(item) ? \"Class\" : item.schemaItemType;\n return `${typeName}(${item.name})`;\n }\n}\n\n/**\n * An ISchemaChange implementation for changes in property values of any EC type.\n * @alpha\n */\nexport class PropertyValueChange extends BaseSchemaChange {\n\n /** Gets the SchemaItem that this change ultimately belongs to. */\n public get topLevelSchemaItem(): Schema | SchemaItem {\n if (SchemaItem.isSchemaItem(this.diagnostic.ecDefinition))\n return this.diagnostic.ecDefinition;\n\n if (Schema.isSchema(this.diagnostic.ecDefinition))\n return this.diagnostic.ecDefinition;\n\n if (Property.isProperty(this.diagnostic.ecDefinition))\n return this.diagnostic.ecDefinition.class;\n\n if (RelationshipConstraint.isRelationshipConstraint(this.diagnostic.ecDefinition))\n return this.diagnostic.ecDefinition.relationshipClass;\n\n throw new Error();\n }\n\n /** Gets the default ChangeType (Delta or Missing) for this change */\n public get defaultChangeType(): ChangeType { return ChangeType.Delta; }\n\n /** Gets a string representation of the change. */\n public toString(): string {\n let property = this.getStringFromArgument(0);\n // Capitalize property name\n property = property.charAt(0).toUpperCase() + property.slice(1);\n const valueA = this.getStringFromArgument(1);\n const valueB = this.getStringFromArgument(2);\n return `${property}: ${valueA} -> ${valueB}`;\n }\n}\n\n/**\n * An ISchemaChange implementation for missing CustomAttribute instances\n * for a given container.\n * @alpha\n */\nexport class CustomAttributeContainerChange extends BaseSchemaChange {\n /** Gets the default ChangeType (Delta or Missing) for this change */\n public get defaultChangeType(): ChangeType { return ChangeType.Missing; }\n\n /** Gets the SchemaItem that this change ultimately belongs to. */\n public get topLevelSchemaItem(): Schema | SchemaItem {\n if (SchemaItem.isSchemaItem(this.diagnostic.ecDefinition))\n return this.diagnostic.ecDefinition;\n\n if (Property.isProperty(this.diagnostic.ecDefinition))\n return this.diagnostic.ecDefinition.class;\n\n if (Schema.isSchema(this.diagnostic.ecDefinition))\n return this.diagnostic.ecDefinition;\n\n if (RelationshipConstraint.isRelationshipConstraint(this.diagnostic.ecDefinition))\n return this.diagnostic.ecDefinition.relationshipClass;\n\n throw new Error();\n }\n\n /** Gets the key to use in a Map of this type of ISchemaChange. */\n public get changeKey(): string {\n return (this.getValueFromArgument(0) as CustomAttribute).className;\n }\n\n /** Gets a string representation of the change. */\n public toString(): string {\n return `CustomAttribute: ${this.changeKey}`;\n }\n}\n\n/**\n * An ISchemaChange implementation differences of baseClasses between two ECClasses.\n * @alpha\n */\nexport class BaseClassDelta extends SchemaItemChange {\n /** Gets the default ChangeType (Delta or Missing) for this change */\n public get defaultChangeType(): ChangeType { return ChangeType.Delta; }\n\n /** Gets a string representation of the change. */\n public toString(): string {\n const classA = this.getNameFromArgument(0, true, true);\n const classB = this.getNameFromArgument(1, true, true);\n return `BaseClass: ${classA} -> ${classB}`;\n }\n}\n\n/**\n * An ISchemaChange implementation for missing properties.\n * @alpha\n */\nexport class PropertyMissing extends BaseSchemaChange {\n /** Gets the SchemaItem that this change ultimately belongs to. */\n public get topLevelSchemaItem(): Schema | SchemaItem {\n return (this.diagnostic.ecDefinition as Property).class;\n }\n\n /** Gets the default ChangeType (Delta or Missing) for this change */\n public get defaultChangeType(): ChangeType { return ChangeType.Missing; }\n\n /** Gets a string representation of the change. */\n public toString(): string {\n return `Property(${(this.diagnostic.ecDefinition as Property).name})`;\n }\n}\n\n/**\n * An ISchemaChange implementation for missing RelationshipConstraint classes.\n * @alpha\n */\nexport class RelationshipConstraintClassChange extends BaseSchemaChange {\n /** Gets the default ChangeType (Delta or Missing) for this change */\n public get defaultChangeType(): ChangeType { return ChangeType.Missing; }\n\n /** Gets the SchemaItem that this change ultimately belongs to. */\n public get topLevelSchemaItem(): Schema | SchemaItem {\n return (this.diagnostic.ecDefinition as RelationshipConstraint).relationshipClass;\n }\n\n /** Gets a string representation of the change. */\n public toString(): string {\n const constraintClass = this.getNameFromArgument(0, false, true);\n return `ConstraintClass: ${constraintClass}`;\n }\n}\n\n/**\n * An ISchemaChange implementation for differences of Enumerator properties.\n * @alpha\n */\nexport class EnumeratorDelta extends BaseSchemaChange {\n /** Gets the default ChangeType (Delta or Missing) for this change */\n public get defaultChangeType(): ChangeType { return ChangeType.Delta; }\n\n /** Gets the SchemaItem that this change ultimately belongs to. */\n public get topLevelSchemaItem(): Schema | SchemaItem {\n return this.diagnostic.ecDefinition as Enumeration;\n }\n\n /** Gets the key to use in a Map of this type of ISchemaChange. */\n public get changeKey(): string {\n const enumerator = this.getValueFromArgument(0) as AnyEnumerator;\n return enumerator.name;\n }\n\n /** Gets a string representation of the change. */\n public toString(): string {\n let propertyName = this.getStringFromArgument(1);\n // Capitalize property name\n propertyName = propertyName.charAt(0).toUpperCase() + propertyName.slice(1);\n const valueA = this.getStringFromArgument(2);\n const valueB = this.getStringFromArgument(3);\n return `${propertyName}: ${valueA} -> ${valueB}`;\n }\n}\n\n/**\n * An ISchemaChange implementation for missing Enumerators within an Enumeration.\n * @alpha\n */\nexport class EnumeratorMissing extends BaseSchemaChange {\n /** Gets the default ChangeType (Delta or Missing) for this change */\n public get defaultChangeType(): ChangeType { return ChangeType.Missing; }\n\n /** Gets the SchemaItem that this change ultimately belongs to. */\n public get topLevelSchemaItem(): Schema | SchemaItem {\n return this.diagnostic.ecDefinition as Enumeration;\n }\n\n /** Gets the key to use in a Map of this type of ISchemaChange. */\n public get changeKey(): string {\n return (this.getValueFromArgument(0) as AnyEnumerator).name;\n }\n\n /** Gets a string representation of the change. */\n public toString(): string {\n return `Enumerator(${this.changeKey})`;\n }\n}\n\n/**\n * An ISchemaChange implementation for missing mixins within an EntityClass.\n * @alpha\n */\nexport class EntityMixinChange extends BaseSchemaChange {\n /** Gets the default ChangeType (Delta or Missing) for this change */\n public get defaultChangeType(): ChangeType { return ChangeType.Missing; }\n\n /** Gets the SchemaItem that this change ultimately belongs to. */\n public get topLevelSchemaItem(): Schema | SchemaItem {\n return this.diagnostic.ecDefinition as EntityClass;\n }\n\n /** Gets the key to use in a Map of this type of ISchemaChange. */\n public get changeKey(): string {\n return this.getNameFromArgument(0, false, true);\n }\n\n /** Gets a string representation of the change. */\n public toString(): string {\n return `Mixin: ${this.changeKey}`;\n }\n}\n\n/**\n * An ISchemaChange implementation for missing presentation Units within a KindOfQuantity.\n * @alpha\n */\nexport class PresentationUnitChange extends BaseSchemaChange {\n /** Gets the default ChangeType (Delta or Missing) for this change */\n public get defaultChangeType(): ChangeType { return ChangeType.Missing; }\n\n /** Gets the SchemaItem that this change ultimately belongs to. */\n public get topLevelSchemaItem(): Schema | SchemaItem {\n return this.diagnostic.ecDefinition as KindOfQuantity;\n }\n\n /** Gets the key to use in a Map of this type of ISchemaChange. */\n public get changeKey(): string {\n return this.getNameFromArgument(0, false, true);\n }\n\n /** Gets a string representation of the change. */\n public toString(): string {\n return `Unit: ${this.changeKey}`;\n }\n\n private get _isOverrideFormat(): boolean {\n if (!this.diagnostic.messageArgs)\n return false;\n\n return OverrideFormat.isOverrideFormat(this.diagnostic.messageArgs[0]);\n }\n}\n\n/**\n * An ISchemaChange implementation for missing Units within a Format.\n * @alpha\n */\nexport class FormatUnitChange extends BaseSchemaChange {\n /** Gets the default ChangeType (Delta or Missing) for this change */\n public get defaultChangeType(): ChangeType { return ChangeType.Missing; }\n\n /** Gets the SchemaItem that this change ultimately belongs to. */\n public get topLevelSchemaItem(): Schema | SchemaItem {\n return this.diagnostic.ecDefinition as Format;\n }\n\n /** Gets the key to use in a Map of this type of ISchemaChange. */\n public get changeKey(): string {\n return this.getNameFromArgument(0, false, true);\n }\n\n /** Gets a string representation of the change. */\n public toString(): string {\n return `Unit: ${this.changeKey}, label: ${this.getStringFromArgument(1)}`;\n }\n\n private get _isInvertedUnit(): boolean {\n if (!this.diagnostic.messageArgs)\n return false;\n\n return this.diagnostic.messageArgs[0].schemaItemType === SchemaItemType.InvertedUnit;\n }\n}\n\n/**\n * An ISchemaChange implementation for differences of Unit label overrides within a given Format.\n * @alpha\n */\nexport class UnitLabelOverrideDelta extends BaseSchemaChange {\n /** Gets the default ChangeType (Delta or Missing) for this change */\n public get defaultChangeType(): ChangeType { return ChangeType.Delta; }\n\n /** Gets the SchemaItem that this change ultimately belongs to. */\n public get topLevelSchemaItem(): Schema | SchemaItem {\n return this.diagnostic.ecDefinition as Format;\n }\n\n /** Gets the key to use in a Map of this type of ISchemaChange. */\n public get changeKey(): string {\n return this.getNameFromArgument(0, false, true);\n }\n\n /** Gets a string representation of the change. */\n public toString(): string {\n const valueA = this.getStringFromArgument(1);\n const valueB = this.getStringFromArgument(2);\n return `Label: ${valueA} -> ${valueB}`;\n }\n\n private get _isInvertedUnit(): boolean {\n if (!this.diagnostic.messageArgs)\n return false;\n\n return this.diagnostic.messageArgs[0].schemaItemType === SchemaItemType.InvertedUnit;\n }\n}\n"]}
1
+ {"version":3,"file":"SchemaChanges.js","sourceRoot":"","sources":["../../../src/Validation/SchemaChanges.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 Comparison\r\n */\r\n\r\nimport { AnyClass, AnyEnumerator, CustomAttribute, ECClass, ECSchemaError, ECSchemaStatus,\r\n EntityClass, Enumeration, Format, KindOfQuantity, OverrideFormat, Property, RelationshipClass, RelationshipConstraint,\r\n Schema, SchemaItem, SchemaItemType,\r\n} from \"@itwin/ecschema-metadata\";\r\nimport { AnyDiagnostic } from \"./Diagnostic\";\r\nimport { SchemaCompareCodes } from \"./SchemaCompareDiagnostics\";\r\n\r\n/**\r\n * Possible change types used to categorize ISchemaChange objects.\r\n * @alpha\r\n */\r\nexport enum ChangeType {\r\n Delta = 0,\r\n Missing = 1,\r\n}\r\n\r\n/**\r\n * Interface that represents any change reported\r\n * between two schemas.\r\n * @alpha\r\n */\r\nexport interface ISchemaChange {\r\n /** The diagnostic containing the data related to the change. */\r\n diagnostic: AnyDiagnostic;\r\n /** The highest level SchemaItem that this change ultimately belong to. */\r\n topLevelSchemaItem: SchemaItem | Schema;\r\n /** The ChangeType (Delta or Missing) for this change. */\r\n changeType: ChangeType;\r\n /** Returns a string representation of the change. */\r\n toString(): string;\r\n}\r\n\r\n/**\r\n * Interface that represents an object that manages\r\n * a related set of ISchemaChange objects.\r\n * @alpha\r\n */\r\nexport interface ISchemaChanges {\r\n schema: Schema;\r\n ecTypeName: string;\r\n addChange(change: ISchemaChange): void;\r\n}\r\n\r\n/**\r\n * Allows an ISchemaChanges implementation to be dynamically constructed in addChangeToMap.\r\n */\r\ninterface SchemaChangesConstructor { new(schema: Schema, ecTypeName: string): ISchemaChanges } // eslint-disable-line @typescript-eslint/prefer-function-type\r\n\r\n/**\r\n * An ISchemaChange implementation meant to be used as the base class\r\n * for all other ISchemaChange implementations.\r\n * @alpha\r\n */\r\nexport abstract class BaseSchemaChange implements ISchemaChange {\r\n private _diagnostic: AnyDiagnostic;\r\n private _changeType!: ChangeType;\r\n\r\n /**\r\n * Initializes a new BaseSchemaChange instance.\r\n * @param diagnostic The diagnostic holding the change data.\r\n */\r\n constructor(diagnostic: AnyDiagnostic) {\r\n this._diagnostic = diagnostic;\r\n }\r\n\r\n /** Gets the diagnostic holding the information about the schema change. */\r\n public get diagnostic(): AnyDiagnostic { return this._diagnostic; }\r\n\r\n /**\r\n * Returns the SchemaItem that this change ultimately belongs to. For example,\r\n * for a CustomAttributeInstanceClassMissing diagnostic reported on a RelationshipConstraint,\r\n * the top-level SchemaItem would be the Relationship.\r\n */\r\n public abstract get topLevelSchemaItem(): SchemaItem | Schema;\r\n\r\n /**\r\n * Gets the change type (Delta or Missing) for the change. If not previously\r\n * set, the defaultChangeType value will be returned.\r\n */\r\n public get changeType() {\r\n if (!this._changeType)\r\n this._changeType = this.defaultChangeType;\r\n return this._changeType;\r\n }\r\n public set changeType(changeType: ChangeType) { this._changeType = changeType; }\r\n\r\n /** The default ChangeType (Delta or Missing). */\r\n public abstract get defaultChangeType(): ChangeType;\r\n\r\n /** Gets a string representation of the schema change. */\r\n public abstract toString(): string;\r\n\r\n /**\r\n * Gets the name or fullName from an EC type that is in the args array at\r\n * the specified index. Performs validation based on the given parameters.\r\n * @param index The index in the args array to find the EC type.\r\n * @param args The collection of arguments received in the diagnostics.\r\n * @param allowUndefined Specifies that undefined values are allowed.\r\n * @param fullName Flag indicating that the fullName should be returned rather than the name.\r\n */\r\n protected getNameFromArgument(index: number, allowUndefined: boolean = false, fullName: boolean = false): string {\r\n if (!this.diagnostic.messageArgs || this.diagnostic.messageArgs.length <= index)\r\n throw new ECSchemaError(ECSchemaStatus.InvalidSchemaComparisonArgument, `Schema comparison diagnostic '${this.diagnostic.code}' for SchemaItem '${this.topLevelSchemaItem.fullName}' has invalid arguments`);\r\n\r\n const schemaItem = this.getValueFromArgument(index);\r\n if (Schema.isSchema(schemaItem) || SchemaItem.isSchemaItem(schemaItem) || OverrideFormat.isOverrideFormat(schemaItem))\r\n return fullName ? schemaItem.fullName : schemaItem.name;\r\n\r\n if (!allowUndefined)\r\n throw new ECSchemaError(ECSchemaStatus.InvalidSchemaComparisonArgument, `Schema comparison diagnostic '${this.diagnostic.code}' for SchemaItem '${this.topLevelSchemaItem.fullName}' has invalid arguments`);\r\n\r\n return \"undefined\";\r\n }\r\n\r\n /**\r\n * Gets a string from the diagnostics arguments at the given index. If the value is undefined,\r\n * the string 'undefined' will be returned.\r\n * @param index The index in the args array to find the property value.\r\n */\r\n protected getStringFromArgument(index: number): string {\r\n const value = this.getValueFromArgument(index);\r\n if (value === undefined)\r\n return \"undefined\";\r\n\r\n if (typeof value === \"number\")\r\n return value.toString();\r\n\r\n if (typeof value === \"boolean\")\r\n return value ? \"true\" : \"false\";\r\n\r\n if (typeof value !== \"string\")\r\n throw new Error();\r\n\r\n return value;\r\n }\r\n\r\n /**\r\n * Helper method to retrieve a value from the diagnostic arguments, performing validation.\r\n * @param index THe index in the diagnostic arguments array.\r\n */\r\n protected getValueFromArgument(index: number): any {\r\n if (!this.diagnostic.messageArgs || this.diagnostic.messageArgs.length <= index)\r\n throw new Error();\r\n\r\n return this.diagnostic.messageArgs[index];\r\n }\r\n}\r\n\r\n/**\r\n * Base class for all ISchemaChanges implementations.\r\n * @alpha\r\n */\r\nexport abstract class BaseSchemaChanges implements ISchemaChanges {\r\n private _ecTypeName: string;\r\n private _schema: Schema;\r\n private _propertyValueChanges: PropertyValueChange[] = [];\r\n\r\n /**\r\n * Initializes a new BaseSchemaChanges instance.\r\n * @param schema The schema containing the changes.\r\n * @param anyECTypeName The name of the EC type.\r\n */\r\n constructor(schema: Schema, anyECTypeName: string) {\r\n this._schema = schema;\r\n this._ecTypeName = anyECTypeName;\r\n }\r\n\r\n /** Gets the array of PropertyValueChange instances. */\r\n public get propertyValueChanges(): PropertyValueChange[] {\r\n return this._propertyValueChanges;\r\n }\r\n\r\n /** Gets the name of the EC type associated with these schema changes. */\r\n public get ecTypeName(): string {\r\n return this._ecTypeName;\r\n }\r\n\r\n /** Gets the schema to which these changes are associated. */\r\n public get schema(): Schema {\r\n return this._schema;\r\n }\r\n\r\n /**\r\n * Adds a new ISchemaChange to a collection determined by the implementation.\r\n * @param change\r\n */\r\n public abstract addChange(change: ISchemaChange): void;\r\n\r\n /**\r\n * Helper method that adds a new ISchemaChange to a Map whose values are ISchemaChanges. The changesType will\r\n * be used to create a new ISchemaChanges instance if the changes collection does not exist in the Map.\r\n * @param changes The ISchemaChanges Map to which to add the ISchemaChange.\r\n * @param changesType The constructor of the ISchemaChanges. Called if the ISchemaChanges instance does not exist in the Map.\r\n * @param change The ISchemaChange to add.\r\n * @param changeKey The key used to identify the ISchemaChanges in the Map (typically the name of the EC type, ie. SchemaItem.name).\r\n */\r\n protected addChangeToMap<V extends ISchemaChanges>(changes: Map<string, V>, changesType: SchemaChangesConstructor, change: ISchemaChange, changeKey: string) {\r\n if (changes.has(changeKey)) {\r\n const existingChanges = changes.get(changeKey);\r\n existingChanges!.addChange(change);\r\n } else {\r\n const newChanges = new changesType(this._schema, changeKey);\r\n newChanges.addChange(change);\r\n changes.set(changeKey, newChanges as V);\r\n }\r\n }\r\n\r\n /**\r\n * Helper method to determine if the diagnostic is a property value change delta for this ISchemaChanges instance.\r\n * @param diagnostic The change diagnostic.\r\n * @param ecTypeName The name of the EC type as determined by the implementation.\r\n */\r\n protected isPropertyValueChangeForThis(diagnostic: AnyDiagnostic, ecTypeName: string): boolean {\r\n if (this.ecTypeName !== ecTypeName)\r\n return false;\r\n\r\n switch (diagnostic.code) {\r\n case SchemaCompareCodes.SchemaDelta:\r\n case SchemaCompareCodes.SchemaItemDelta:\r\n case SchemaCompareCodes.ClassDelta:\r\n case SchemaCompareCodes.MixinDelta:\r\n case SchemaCompareCodes.RelationshipDelta:\r\n case SchemaCompareCodes.CustomAttributeClassDelta:\r\n case SchemaCompareCodes.EnumerationDelta:\r\n case SchemaCompareCodes.KoqDelta:\r\n case SchemaCompareCodes.PropertyCategoryDelta:\r\n case SchemaCompareCodes.FormatDelta:\r\n case SchemaCompareCodes.UnitDelta:\r\n case SchemaCompareCodes.InvertedUnitDelta:\r\n case SchemaCompareCodes.PhenomenonDelta:\r\n case SchemaCompareCodes.ConstantDelta:\r\n case SchemaCompareCodes.PropertyDelta:\r\n case SchemaCompareCodes.RelationshipConstraintDelta:\r\n return true;\r\n default:\r\n return false;\r\n }\r\n }\r\n\r\n /**\r\n * Helper method to determine if the diagnostic is a CustomAttributeInstance class change for this ISchemaChanges instance.\r\n * @param diagnostic The change diagnostic.\r\n * @param ecTypeName The name of the EC type as determined by the implementation.\r\n */\r\n protected isCAContainerChangeForThis(diagnostic: AnyDiagnostic, ecTypeName: string | undefined): boolean {\r\n if (this.ecTypeName !== ecTypeName)\r\n return false;\r\n\r\n return diagnostic.code === SchemaCompareCodes.CustomAttributeInstanceClassMissing;\r\n }\r\n}\r\n\r\n/**\r\n * An ISchemaChanges implementation for managing schema comparison diagnostics at the Schema level.\r\n * @alpha\r\n */\r\nexport class SchemaChanges extends BaseSchemaChanges {\r\n private _diagnostics: AnyDiagnostic[] = [];\r\n private _missingSchemaReferences: SchemaReferenceMissing[] = [];\r\n private _schemaReferenceDeltas: SchemaReferenceDelta[] = [];\r\n private _customAttributeChanges: Map<string, CustomAttributeContainerChanges> = new Map();\r\n private _classChanges: Map<string, ClassChanges> = new Map();\r\n private _entityClassChanges: Map<string, EntityClassChanges> = new Map();\r\n private _relationshipClassChanges: Map<string, RelationshipClassChanges> = new Map();\r\n private _schemaItemChanges: Map<string, SchemaItemChanges> = new Map();\r\n private _enumerationChanges: Map<string, EnumerationChanges> = new Map();\r\n private _kindOfQuantityChanges: Map<string, KindOfQuantityChanges> = new Map();\r\n private _formatChanges: Map<string, FormatChanges> = new Map();\r\n\r\n /**\r\n * Initializes a new SchemaChanges instance.\r\n * @param schema The schema containing the changes.\r\n */\r\n constructor(schema: Schema) {\r\n super(schema, schema.name);\r\n }\r\n\r\n /** Gets the MissingSchemaReferences collection. */\r\n public get missingSchemaReferences(): SchemaReferenceMissing[] { return this._missingSchemaReferences; }\r\n\r\n /** Gets the SchemaReferenceChange collection. */\r\n public get schemaReferenceDeltas(): SchemaReferenceDelta[] { return this._schemaReferenceDeltas; }\r\n\r\n /** Gets the CustomAttributeContainerChanges Map. */\r\n public get customAttributeChanges(): Map<string, CustomAttributeContainerChanges> { return this._customAttributeChanges; }\r\n\r\n /** Gets the ClassChanges Map. */\r\n public get classChanges(): Map<string, ClassChanges> { return this._classChanges; }\r\n\r\n /** Gets the EntityClassChanges Map. */\r\n public get entityClassChanges(): Map<string, EntityClassChanges> { return this._entityClassChanges; }\r\n\r\n /** Gets the RelationshipClassChanges Map. */\r\n public get relationshipClassChanges(): Map<string, RelationshipClassChanges> { return this._relationshipClassChanges; }\r\n\r\n /** Gets the SchemaItemChanges Map. */\r\n public get schemaItemChanges(): Map<string, SchemaItemChanges> { return this._schemaItemChanges; }\r\n\r\n /** Gets the EnumerationChanges Map. */\r\n public get enumerationChanges(): Map<string, EnumerationChanges> { return this._enumerationChanges; }\r\n\r\n /** Gets the KindOfQuantityChanges Map. */\r\n public get kindOfQuantityChanges(): Map<string, KindOfQuantityChanges> { return this._kindOfQuantityChanges; }\r\n\r\n /** Gets the FormatChanges Map. */\r\n public get formatChanges(): Map<string, FormatChanges> { return this._formatChanges; }\r\n\r\n /** Gets all the change diagnostics that have been added to instance. */\r\n public get allDiagnostics(): AnyDiagnostic[] {\r\n return this._diagnostics;\r\n }\r\n\r\n /**\r\n * Adds a new change diagnostic for the schema.\r\n * @param diagnostic\r\n */\r\n public addDiagnostic(diagnostic: AnyDiagnostic) {\r\n this._diagnostics.push(diagnostic);\r\n\r\n const change = this.createChangeFromDiagnostic(diagnostic);\r\n this.addChange(change);\r\n }\r\n\r\n /**\r\n * Adds the change to the appropriate change collection at this level or adds the change\r\n * to a Map of child changes will which propagate the change to lower levels. Typically\r\n * any 'addChangeToMap' type method will then call addChange to add the ISchemaChange to\r\n * the ISchemaChanges instance at that level.\r\n * @param change The ISchemaChange to add.\r\n */\r\n public addChange(change: ISchemaChange) {\r\n const schemaName = this.getSchemaNameFromChange(change);\r\n\r\n // If change is at the schema level, record change and return\r\n if (schemaName) {\r\n if (change.diagnostic.code === SchemaCompareCodes.SchemaReferenceMissing) {\r\n this.missingSchemaReferences.push(change as SchemaReferenceMissing);\r\n return;\r\n }\r\n\r\n if (change.diagnostic.code === SchemaCompareCodes.SchemaReferenceDelta) {\r\n this.schemaReferenceDeltas.push(change as SchemaReferenceDelta);\r\n return;\r\n }\r\n\r\n if (this.isCAContainerChangeForThis(change.diagnostic, schemaName)) {\r\n this.addChangeToMap(this.customAttributeChanges, CustomAttributeContainerChanges, change, (change as CustomAttributeContainerChange).changeKey);\r\n return;\r\n }\r\n\r\n if (this.isPropertyValueChangeForThis(change.diagnostic, schemaName)) {\r\n this.propertyValueChanges.push(change as PropertyValueChange);\r\n return;\r\n }\r\n }\r\n\r\n // Start by adding the change for the top-level SchemaItem which will\r\n // start a recursion to add the change at each appropriate level.\r\n const schemaItem = change.topLevelSchemaItem;\r\n const schemaItemType = (schemaItem as SchemaItem).schemaItemType;\r\n\r\n switch (schemaItemType) {\r\n case SchemaItemType.Mixin:\r\n case SchemaItemType.StructClass:\r\n case SchemaItemType.CustomAttributeClass:\r\n this.addChangeToClassMap(change, schemaItem as AnyClass);\r\n return;\r\n case SchemaItemType.EntityClass:\r\n this.addChangeToEntityClassMap(change, schemaItem as EntityClass);\r\n return;\r\n case SchemaItemType.RelationshipClass:\r\n this.addChangeToRelationshipClassMap(change, schemaItem as RelationshipClass);\r\n return;\r\n case SchemaItemType.PropertyCategory:\r\n case SchemaItemType.Unit:\r\n case SchemaItemType.InvertedUnit:\r\n case SchemaItemType.UnitSystem:\r\n case SchemaItemType.Phenomenon:\r\n case SchemaItemType.Constant:\r\n this.addChangeToSchemaItemMap(change, schemaItem as SchemaItem);\r\n return;\r\n case SchemaItemType.Enumeration:\r\n this.addChangeToEnumerationMap(change, schemaItem as Enumeration);\r\n return;\r\n case SchemaItemType.KindOfQuantity:\r\n this.addChangeToKOQMap(change, schemaItem as KindOfQuantity);\r\n return;\r\n case SchemaItemType.Format:\r\n this.addChangeToFormatMap(change, schemaItem as Format);\r\n return;\r\n }\r\n }\r\n\r\n private getSchemaNameFromChange(change: ISchemaChange): string | undefined {\r\n const type = change.diagnostic.ecDefinition;\r\n\r\n return (Schema.isSchema(type)) ? type.name : undefined;\r\n }\r\n\r\n /** This creates ISchemaChange instances based on the change diagnostic specified. */\r\n private createChangeFromDiagnostic(diagnostic: AnyDiagnostic): ISchemaChange {\r\n switch (diagnostic.code) {\r\n case SchemaCompareCodes.SchemaReferenceMissing:\r\n return new SchemaReferenceMissing(diagnostic);\r\n case SchemaCompareCodes.SchemaReferenceDelta:\r\n return new SchemaReferenceDelta(diagnostic);\r\n case SchemaCompareCodes.SchemaDelta:\r\n case SchemaCompareCodes.SchemaItemDelta:\r\n case SchemaCompareCodes.ClassDelta:\r\n case SchemaCompareCodes.MixinDelta:\r\n case SchemaCompareCodes.RelationshipDelta:\r\n case SchemaCompareCodes.CustomAttributeClassDelta:\r\n case SchemaCompareCodes.EnumerationDelta:\r\n case SchemaCompareCodes.KoqDelta:\r\n case SchemaCompareCodes.PropertyCategoryDelta:\r\n case SchemaCompareCodes.FormatDelta:\r\n case SchemaCompareCodes.UnitDelta:\r\n case SchemaCompareCodes.InvertedUnitDelta:\r\n case SchemaCompareCodes.PhenomenonDelta:\r\n case SchemaCompareCodes.ConstantDelta:\r\n case SchemaCompareCodes.PropertyDelta:\r\n case SchemaCompareCodes.RelationshipConstraintDelta:\r\n return new PropertyValueChange(diagnostic);\r\n case SchemaCompareCodes.SchemaItemMissing:\r\n return new SchemaItemMissing(diagnostic);\r\n case SchemaCompareCodes.BaseClassDelta:\r\n return new BaseClassDelta(diagnostic);\r\n case SchemaCompareCodes.PropertyMissing:\r\n return new PropertyMissing(diagnostic);\r\n case SchemaCompareCodes.EntityMixinMissing:\r\n return new EntityMixinChange(diagnostic);\r\n case SchemaCompareCodes.RelationshipConstraintClassMissing:\r\n return new RelationshipConstraintClassChange(diagnostic);\r\n case SchemaCompareCodes.CustomAttributeInstanceClassMissing:\r\n return new CustomAttributeContainerChange(diagnostic);\r\n case SchemaCompareCodes.EnumeratorMissing:\r\n return new EnumeratorMissing(diagnostic);\r\n case SchemaCompareCodes.EnumeratorDelta:\r\n return new EnumeratorDelta(diagnostic);\r\n case SchemaCompareCodes.PresentationUnitMissing:\r\n return new PresentationUnitChange(diagnostic);\r\n case SchemaCompareCodes.FormatUnitMissing:\r\n return new FormatUnitChange(diagnostic);\r\n case SchemaCompareCodes.UnitLabelOverrideDelta:\r\n return new UnitLabelOverrideDelta(diagnostic);\r\n default:\r\n throw new Error();\r\n }\r\n }\r\n\r\n private addChangeToSchemaItemMap(change: ISchemaChange, schemaItem: SchemaItem) {\r\n if (this.schemaItemChanges.has(schemaItem.name)) {\r\n const existingChanges = this.schemaItemChanges.get(schemaItem.name);\r\n existingChanges!.addChange(change);\r\n } else {\r\n const newChanges = new SchemaItemChanges(this.schema, schemaItem.name, schemaItem.schemaItemType);\r\n newChanges.addChange(change);\r\n this.schemaItemChanges.set(schemaItem.name, newChanges);\r\n }\r\n }\r\n\r\n private addChangeToClassMap(change: ISchemaChange, ecClass: AnyClass) {\r\n if (this.classChanges.has(ecClass.name)) {\r\n const existingChanges = this.classChanges.get(ecClass.name);\r\n existingChanges!.addChange(change);\r\n } else {\r\n const newChanges = new ClassChanges(this.schema, ecClass.name, ecClass.schemaItemType);\r\n newChanges.addChange(change);\r\n this.classChanges.set(ecClass.name, newChanges);\r\n }\r\n }\r\n\r\n private addChangeToEntityClassMap(change: ISchemaChange, ecClass: EntityClass) {\r\n if (this.entityClassChanges.has(ecClass.name)) {\r\n const existingChanges = this.entityClassChanges.get(ecClass.name);\r\n existingChanges!.addChange(change);\r\n } else {\r\n const newChanges = new EntityClassChanges(this.schema, ecClass.name, ecClass.schemaItemType);\r\n newChanges.addChange(change);\r\n this.entityClassChanges.set(ecClass.name, newChanges);\r\n }\r\n }\r\n\r\n private addChangeToRelationshipClassMap(change: ISchemaChange, ecClass: RelationshipClass) {\r\n if (this.relationshipClassChanges.has(ecClass.name)) {\r\n const existingChanges = this.relationshipClassChanges.get(ecClass.name);\r\n existingChanges!.addChange(change);\r\n } else {\r\n const newChanges = new RelationshipClassChanges(this.schema, ecClass.name, ecClass.schemaItemType);\r\n newChanges.addChange(change);\r\n this.relationshipClassChanges.set(ecClass.name, newChanges);\r\n }\r\n }\r\n\r\n private addChangeToEnumerationMap(change: ISchemaChange, enumeration: Enumeration) {\r\n if (this.enumerationChanges.has(enumeration.name)) {\r\n const existingChanges = this.enumerationChanges.get(enumeration.name);\r\n existingChanges!.addChange(change);\r\n } else {\r\n const newChanges = new EnumerationChanges(this.schema, enumeration.name, enumeration.schemaItemType);\r\n newChanges.addChange(change);\r\n this.enumerationChanges.set(enumeration.name, newChanges);\r\n }\r\n }\r\n\r\n private addChangeToKOQMap(change: ISchemaChange, koq: KindOfQuantity) {\r\n if (this.kindOfQuantityChanges.has(koq.name)) {\r\n const existingChanges = this.kindOfQuantityChanges.get(koq.name);\r\n existingChanges!.addChange(change);\r\n } else {\r\n const newChanges = new KindOfQuantityChanges(this.schema, koq.name, koq.schemaItemType);\r\n newChanges.addChange(change);\r\n this.kindOfQuantityChanges.set(koq.name, newChanges);\r\n }\r\n }\r\n\r\n private addChangeToFormatMap(change: ISchemaChange, format: Format) {\r\n if (this.formatChanges.has(format.name)) {\r\n const existingChanges = this.formatChanges.get(format.name);\r\n existingChanges!.addChange(change);\r\n } else {\r\n const newChanges = new FormatChanges(this.schema, format.name, format.schemaItemType);\r\n newChanges.addChange(change);\r\n this.formatChanges.set(format.name, newChanges);\r\n }\r\n }\r\n}\r\n\r\n/**\r\n * An ISchemaChanges implementation for managing schema comparison diagnostics at the SchemaItem level.\r\n * @alpha\r\n */\r\nexport class SchemaItemChanges extends BaseSchemaChanges {\r\n private _schemaItemType: SchemaItemType;\r\n private _schemaItemMissing?: SchemaItemMissing;\r\n\r\n /**\r\n * Initializes a new SchemaItemChanges instance.\r\n * @param schema The Schema containing the change.\r\n * @param schemaItemName The name of the EC type associated with the change.\r\n * @param schemaItemType The SchemaItemType of the EC type.\r\n */\r\n constructor(schema: Schema, schemaItemName: string, schemaItemType: SchemaItemType) {\r\n super(schema, schemaItemName);\r\n this._schemaItemType = schemaItemType;\r\n }\r\n\r\n /** Gets the SchemaItemType of the SchemaItem associated with the changes. */\r\n public get schemaItemType(): SchemaItemType {\r\n return this._schemaItemType;\r\n }\r\n\r\n /** Gets the SchemaItemMissing change. Maybe undefined. */\r\n public get schemaItemMissing(): SchemaItemMissing | undefined {\r\n return this._schemaItemMissing;\r\n }\r\n\r\n /**\r\n * Adds the change to the appropriate change collection at this level or adds the change\r\n * to a Map of child changes will which propagate the change to lower levels.\r\n * @param change The ISchemaChange to add.\r\n */\r\n public addChange(change: ISchemaChange): void {\r\n if (change.diagnostic.code === SchemaCompareCodes.SchemaItemMissing) {\r\n this._schemaItemMissing = change as SchemaItemMissing;\r\n return;\r\n }\r\n\r\n const name = this.getSchemaItemNameFromChange(change);\r\n if (!name)\r\n return;\r\n\r\n if (this.isPropertyValueChangeForThis(change.diagnostic, name)) {\r\n this.propertyValueChanges.push(change as PropertyValueChange);\r\n return;\r\n }\r\n }\r\n\r\n protected getSchemaItemNameFromChange(change: ISchemaChange): string | undefined {\r\n const type = change.diagnostic.ecDefinition;\r\n return (SchemaItem.isSchemaItem(type)) ? type.name : undefined;\r\n }\r\n}\r\n\r\n/**\r\n * An ISchemaChanges implementation for managing schema comparison diagnostics at the Class level.\r\n * @alpha\r\n */\r\nexport class ClassChanges extends SchemaItemChanges {\r\n private _baseClassDelta?: BaseClassDelta;\r\n private _propertyChanges: Map<string, PropertyChanges> = new Map();\r\n private _customAttributeChanges: Map<string, CustomAttributeContainerChanges> = new Map();\r\n\r\n /** Gets the BaseClassDelta change. Maybe undefined. */\r\n public get baseClassDelta(): BaseClassDelta | undefined {\r\n return this._baseClassDelta;\r\n }\r\n\r\n /** Gets the PropertyChanges Map. */\r\n public get propertyChanges(): Map<string, PropertyChanges> {\r\n return this._propertyChanges;\r\n }\r\n\r\n /** Gets the Map of CustomAttributeContainerChanges. */\r\n public get customAttributeChanges(): Map<string, CustomAttributeContainerChanges> {\r\n return this._customAttributeChanges;\r\n }\r\n\r\n /**\r\n * Adds the change to the appropriate change collection at this level or adds the change\r\n * to a Map of child changes will which propagate the change to lower levels.\r\n * @param change The ISchemaChange to add.\r\n */\r\n public override addChange(change: ISchemaChange): void {\r\n super.addChange(change);\r\n\r\n if (change.diagnostic.code === SchemaCompareCodes.BaseClassDelta) {\r\n this._baseClassDelta = change as BaseClassDelta;\r\n return;\r\n }\r\n\r\n if (Property.isProperty(change.diagnostic.ecDefinition)) {\r\n this.addChangeToMap(this.propertyChanges, PropertyChanges, change, change.diagnostic.ecDefinition.name);\r\n return;\r\n }\r\n\r\n if (this.isCAContainerChangeForThis(change.diagnostic, this.getSchemaItemNameFromChange(change))) {\r\n this.addChangeToMap(this.customAttributeChanges, CustomAttributeContainerChanges, change, (change as CustomAttributeContainerChange).changeKey);\r\n return;\r\n }\r\n }\r\n}\r\n\r\n/**\r\n * An ISchemaChanges implementation for managing schema comparison diagnostics at the Class level.\r\n * @alpha\r\n */\r\nexport class EntityClassChanges extends ClassChanges {\r\n private _entityMixinChanges: Map<string, EntityMixinChanges> = new Map();\r\n\r\n /** Gets the EntityMixinChanges Map. */\r\n public get entityMixinChanges(): Map<string, EntityMixinChanges> {\r\n return this._entityMixinChanges;\r\n }\r\n\r\n /**\r\n * Adds the change to the appropriate change collection at this level or adds the change\r\n * to a Map of child changes will which propagate the change to lower levels.\r\n * @param change The ISchemaChange to add.\r\n */\r\n public override addChange(change: ISchemaChange): void {\r\n super.addChange(change);\r\n\r\n if (change.diagnostic.code === SchemaCompareCodes.EntityMixinMissing) {\r\n this.addChangeToMap(this.entityMixinChanges, EntityMixinChanges, change, (change as EntityMixinChange).changeKey);\r\n return;\r\n }\r\n }\r\n}\r\n\r\n/**\r\n * An ISchemaChanges implementation for managing schema comparison diagnostics for RelationshipClasses.\r\n * @alpha\r\n */\r\nexport class RelationshipClassChanges extends ClassChanges {\r\n private _sourceConstraintChanges: Map<string, RelationshipConstraintChanges> = new Map();\r\n private _targetConstraintChanges: Map<string, RelationshipConstraintChanges> = new Map();\r\n\r\n /** Gets the source RelationshipConstraintChanges Map. */\r\n public get sourceConstraintChanges(): Map<string, RelationshipConstraintChanges> {\r\n return this._sourceConstraintChanges;\r\n }\r\n\r\n /** Gets the target RelationshipConstraintChanges Map. */\r\n public get targetConstraintChanges(): Map<string, RelationshipConstraintChanges> {\r\n return this._targetConstraintChanges;\r\n }\r\n\r\n /**\r\n * Adds the change to the appropriate change collection at this level or adds the change\r\n * to a Map of child changes will which propagate the change to lower levels.\r\n * @param change The ISchemaChange to add.\r\n */\r\n public override addChange(change: ISchemaChange): void {\r\n super.addChange(change);\r\n\r\n if (RelationshipConstraint.isRelationshipConstraint(change.diagnostic.ecDefinition)) {\r\n if (change.diagnostic.ecDefinition.isSource)\r\n this.addChangeToMap(this.sourceConstraintChanges, RelationshipConstraintChanges, change, change.diagnostic.ecDefinition.fullName);\r\n else\r\n this.addChangeToMap(this.targetConstraintChanges, RelationshipConstraintChanges, change, change.diagnostic.ecDefinition.fullName);\r\n }\r\n }\r\n}\r\n\r\n/**\r\n * An ISchemaChanges implementation for managing schema comparison diagnostics at the Property level.\r\n * @alpha\r\n */\r\nexport class PropertyChanges extends BaseSchemaChanges {\r\n private _propertyMissing?: PropertyMissing;\r\n private _customAttributeChanges: Map<string, CustomAttributeContainerChanges> = new Map();\r\n\r\n /** Gets the PropertyMissing change. Maybe undefined. */\r\n public get propertyMissing(): PropertyMissing | undefined {\r\n return this._propertyMissing;\r\n }\r\n\r\n /** Gets the CustomAttributeContainerChanges Map. */\r\n public get customAttributeChanges(): Map<string, CustomAttributeContainerChanges> {\r\n return this._customAttributeChanges;\r\n }\r\n\r\n /**\r\n * Adds the change to the appropriate change collection at this level or adds the change\r\n * to a Map of child changes will which propagate the change to lower levels.\r\n * @param change The ISchemaChange to add.\r\n */\r\n public addChange(change: ISchemaChange): void {\r\n const propertyName = this.getPropertyNameFromChange(change);\r\n if (!propertyName)\r\n return;\r\n\r\n if (change.diagnostic.code === SchemaCompareCodes.PropertyMissing) {\r\n this._propertyMissing = change as PropertyMissing;\r\n return;\r\n }\r\n\r\n if (this.isPropertyValueChangeForThis(change.diagnostic, propertyName)) {\r\n this.propertyValueChanges.push(change as PropertyValueChange);\r\n return;\r\n }\r\n\r\n if (this.isCAContainerChangeForThis(change.diagnostic, propertyName))\r\n this.addChangeToMap(this.customAttributeChanges, CustomAttributeContainerChanges, change, (change as CustomAttributeContainerChange).changeKey);\r\n }\r\n\r\n private getPropertyNameFromChange(change: ISchemaChange): string | undefined {\r\n const type = change.diagnostic.ecDefinition;\r\n return (Property.isProperty(type)) ? type.name : undefined;\r\n }\r\n}\r\n\r\n/**\r\n * An ISchemaChanges implementation for managing schema comparison diagnostics for Enumerations.\r\n * @alpha\r\n */\r\nexport class EnumerationChanges extends SchemaItemChanges {\r\n private _enumeratorChanges: Map<string, EnumeratorChanges> = new Map();\r\n\r\n /** Gets the EnumeratorChanges map. */\r\n public get enumeratorChanges(): Map<string, EnumeratorChanges> {\r\n return this._enumeratorChanges;\r\n }\r\n\r\n /**\r\n * Adds the change to the appropriate change collection at this level or adds the change\r\n * to a Map of child changes will which propagate the change to lower levels.\r\n * @param change The ISchemaChange to add.\r\n */\r\n public override addChange(change: ISchemaChange): void {\r\n super.addChange(change);\r\n\r\n if (change.diagnostic.code === SchemaCompareCodes.EnumeratorDelta) {\r\n this.addChangeToMap(this.enumeratorChanges, EnumeratorChanges, change, (change as EnumeratorDelta).changeKey);\r\n return;\r\n }\r\n\r\n if (change.diagnostic.code === SchemaCompareCodes.EnumeratorMissing) {\r\n this.addChangeToMap(this.enumeratorChanges, EnumeratorChanges, change, (change as EnumeratorMissing).changeKey);\r\n }\r\n }\r\n}\r\n\r\n/**\r\n * An ISchemaChanges implementation for managing schema comparison diagnostics for CustomAttributeContainers.\r\n * @alpha\r\n */\r\nexport class CustomAttributeContainerChanges extends BaseSchemaChanges {\r\n private _customAttributeChanges: CustomAttributeContainerChange[] = [];\r\n\r\n /** Gets the CustomAttributeContainerChange collection. */\r\n public get customAttributeChanges(): CustomAttributeContainerChange[] {\r\n return this._customAttributeChanges;\r\n }\r\n\r\n /**\r\n * Adds the change to the appropriate change collection at this level.\r\n * @param change The ISchemaChange to add.\r\n */\r\n public addChange(change: ISchemaChange): void {\r\n if (change.diagnostic.code === SchemaCompareCodes.CustomAttributeInstanceClassMissing)\r\n this.customAttributeChanges.push(change as CustomAttributeContainerChange);\r\n }\r\n}\r\n\r\n/**\r\n * An ISchemaChanges implementation for managing schema comparison diagnostics for RelationshipConstraints.\r\n * @alpha\r\n */\r\nexport class RelationshipConstraintChanges extends BaseSchemaChanges {\r\n private _constraintClassChanges: RelationshipConstraintClassChange[] = [];\r\n private _customAttributeChanges: Map<string, CustomAttributeContainerChanges> = new Map();\r\n\r\n /** Gets the RelationshipConstraintClassChange collection. */\r\n public get constraintClassChanges(): RelationshipConstraintClassChange[] {\r\n return this._constraintClassChanges;\r\n }\r\n\r\n /** Gets the CustomAttributeContainerChanges Map. */\r\n public get customAttributeChanges(): Map<string, CustomAttributeContainerChanges> {\r\n return this._customAttributeChanges;\r\n }\r\n\r\n /**\r\n * Adds the change to the appropriate change collection at this level or adds the change\r\n * to a Map of child changes will which propagate the change to lower levels.\r\n * @param change The ISchemaChange to add.\r\n */\r\n public addChange(change: ISchemaChange): void {\r\n const constraintName = this.getConstraintNameFromChange(change);\r\n if (!constraintName)\r\n return;\r\n\r\n if (this.isPropertyValueChangeForThis(change.diagnostic, constraintName)) {\r\n this.propertyValueChanges.push(change as PropertyValueChange);\r\n return;\r\n }\r\n\r\n if (change.diagnostic.code === SchemaCompareCodes.RelationshipConstraintClassMissing) {\r\n this.constraintClassChanges.push(change as RelationshipConstraintClassChange);\r\n return;\r\n }\r\n\r\n if (this.isCAContainerChangeForThis(change.diagnostic, constraintName))\r\n this.addChangeToMap(this.customAttributeChanges, CustomAttributeContainerChanges, change, (change as CustomAttributeContainerChange).changeKey);\r\n }\r\n\r\n private getConstraintNameFromChange(change: ISchemaChange): string | undefined {\r\n const type = change.diagnostic.ecDefinition;\r\n if (RelationshipConstraint.isRelationshipConstraint(type))\r\n return type.fullName;\r\n return undefined;\r\n }\r\n}\r\n\r\n/**\r\n * An ISchemaChanges implementation for managing schema comparison diagnostics for Enumerators.\r\n * @alpha\r\n */\r\nexport class EnumeratorChanges extends BaseSchemaChanges {\r\n private _enumeratorDeltas: EnumeratorDelta[] = [];\r\n private _enumeratorMissing?: EnumeratorMissing;\r\n\r\n /** Gets the EnumeratorDelta collection. */\r\n public get enumeratorDeltas(): EnumeratorDelta[] {\r\n return this._enumeratorDeltas;\r\n }\r\n\r\n /** Gets the EnumeratorMissing change. Maybe undefined. */\r\n public get enumeratorMissing(): EnumeratorMissing | undefined {\r\n return this._enumeratorMissing;\r\n }\r\n\r\n /**\r\n * Adds the change to the appropriate change collection.\r\n * @param change The ISchemaChange to add.\r\n */\r\n public addChange(change: ISchemaChange): void {\r\n if (change.diagnostic.code === SchemaCompareCodes.EnumeratorDelta) {\r\n this.enumeratorDeltas.push(change as EnumeratorDelta);\r\n return;\r\n }\r\n\r\n if (change.diagnostic.code === SchemaCompareCodes.EnumeratorMissing)\r\n this._enumeratorMissing = change as EnumeratorMissing;\r\n }\r\n}\r\n\r\n/**\r\n * An ISchemaChanges implementation for managing schema comparison diagnostics for EntityClass mixin changes.\r\n * @alpha\r\n */\r\nexport class EntityMixinChanges extends BaseSchemaChanges {\r\n private _entityMixinChange: EntityMixinChange[] = [];\r\n\r\n /** Gets the EntityMixinChange collection. */\r\n public get entityMixinChange(): EntityMixinChange[] {\r\n return this._entityMixinChange;\r\n }\r\n\r\n /**\r\n * Adds the change to the appropriate change collection.\r\n * @param change The ISchemaChange to add.\r\n */\r\n public addChange(change: ISchemaChange): void {\r\n if (change.diagnostic.code === SchemaCompareCodes.EntityMixinMissing)\r\n this.entityMixinChange.push(change as EntityMixinChange);\r\n }\r\n}\r\n\r\n/**\r\n * An ISchemaChanges implementation for managing schema comparison diagnostics for KindOfQuantities.\r\n * @alpha\r\n */\r\nexport class KindOfQuantityChanges extends SchemaItemChanges {\r\n private _presentationUnitChanges: Map<string, PresentationUnitChanges> = new Map();\r\n\r\n /** Gets the EntityMixinChange Map. */\r\n public get presentationUnitChanges(): Map<string, PresentationUnitChanges> {\r\n return this._presentationUnitChanges;\r\n }\r\n\r\n /**\r\n * Adds the change to the appropriate change collection.\r\n * @param change The ISchemaChange to add.\r\n */\r\n public override addChange(change: ISchemaChange): void {\r\n super.addChange(change);\r\n\r\n if (change.diagnostic.code === SchemaCompareCodes.PresentationUnitMissing)\r\n this.addChangeToMap(this.presentationUnitChanges, PresentationUnitChanges, change, (change as PresentationUnitChange).changeKey);\r\n }\r\n}\r\n\r\n/**\r\n * An ISchemaChanges implementation for managing schema comparison diagnostics for KindOfQuantity presentation units.\r\n * @alpha\r\n */\r\nexport class PresentationUnitChanges extends BaseSchemaChanges {\r\n private _presentationUnitChange: PresentationUnitChange[] = [];\r\n\r\n /** Gets the PresentationUnitChange collection. */\r\n public get presentationUnitChange(): PresentationUnitChange[] {\r\n return this._presentationUnitChange;\r\n }\r\n\r\n /**\r\n * Adds the change to the appropriate change collection.\r\n * @param change The ISchemaChange to add.\r\n */\r\n public addChange(change: ISchemaChange): void {\r\n if (change.diagnostic.code === SchemaCompareCodes.PresentationUnitMissing)\r\n this.presentationUnitChange.push(change as PresentationUnitChange);\r\n }\r\n}\r\n\r\n/**\r\n * An ISchemaChanges implementation for managing schema comparison diagnostics for Formats.\r\n * @alpha\r\n */\r\nexport class FormatChanges extends SchemaItemChanges {\r\n private _formatUnitChanges: Map<string, FormatUnitChanges> = new Map();\r\n\r\n /** Gets the FormatUnitChanges collection. */\r\n public get formatUnitChanges(): Map<string, FormatUnitChanges> {\r\n return this._formatUnitChanges;\r\n }\r\n\r\n /**\r\n * Adds the change to the appropriate change collection.\r\n * @param change The ISchemaChange to add.\r\n */\r\n public override addChange(change: ISchemaChange): void {\r\n super.addChange(change);\r\n\r\n if (change.diagnostic.code === SchemaCompareCodes.UnitLabelOverrideDelta) {\r\n this.addChangeToMap(this.formatUnitChanges, FormatUnitChanges, change, (change as UnitLabelOverrideDelta).changeKey);\r\n return;\r\n }\r\n\r\n if (change.diagnostic.code === SchemaCompareCodes.FormatUnitMissing)\r\n this.addChangeToMap(this.formatUnitChanges, FormatUnitChanges, change, (change as FormatUnitChange).changeKey);\r\n }\r\n}\r\n\r\n/**\r\n * An ISchemaChanges implementation for managing schema comparison diagnostics for Format units.\r\n * @alpha\r\n */\r\nexport class FormatUnitChanges extends BaseSchemaChanges {\r\n private _unitLabelOverrideDeltas: UnitLabelOverrideDelta[] = [];\r\n private _formatUnitChanges: FormatUnitChange[] = [];\r\n\r\n /** Gets the UnitLabelOverrideDelta collection. */\r\n public get unitLabelOverrideDeltas(): UnitLabelOverrideDelta[] {\r\n return this._unitLabelOverrideDeltas;\r\n }\r\n\r\n /** Gets the FormatUnitChange collection. */\r\n public get formatUnitChanges(): FormatUnitChange[] {\r\n return this._formatUnitChanges;\r\n }\r\n\r\n /**\r\n * Adds the change to the appropriate change collection.\r\n * @param change The ISchemaChange to add.\r\n */\r\n public addChange(change: ISchemaChange): void {\r\n if (change.diagnostic.code === SchemaCompareCodes.UnitLabelOverrideDelta) {\r\n this.unitLabelOverrideDeltas.push(change as UnitLabelOverrideDelta);\r\n return;\r\n }\r\n\r\n if (change.diagnostic.code === SchemaCompareCodes.FormatUnitMissing)\r\n this.formatUnitChanges.push(change as FormatUnitChange);\r\n }\r\n}\r\n\r\n/** ISchemaChange Implementations */\r\n\r\n/**\r\n * An ISchemaChange implementation to act as the base class for all changes\r\n * associated with SchemaItem instances.\r\n * @alpha\r\n */\r\nexport abstract class SchemaItemChange extends BaseSchemaChange {\r\n public get topLevelSchemaItem(): Schema | SchemaItem { return this.diagnostic.ecDefinition as SchemaItem; }\r\n}\r\n\r\n/**\r\n * An ISchemaChange implementation for Schema reference changes.\r\n * @alpha\r\n */\r\nexport class SchemaReferenceMissing extends BaseSchemaChange {\r\n /** Gets the default ChangeType (Delta or Missing) for this change */\r\n public get defaultChangeType(): ChangeType { return ChangeType.Missing; }\r\n\r\n /** Gets the SchemaItem or Schema (if a schema change) that this change ultimately belongs to. */\r\n public get topLevelSchemaItem(): Schema | SchemaItem { return this.diagnostic.ecDefinition as Schema; }\r\n\r\n /** Gets a string representation of the change. */\r\n public toString(): string {\r\n const refSchema = this.getNameFromArgument(0, false, true);\r\n return `Schema(${refSchema})`;\r\n }\r\n}\r\n\r\n/**\r\n * An ISchemaChange implementation differences of baseClasses between two ECClasses.\r\n * @alpha\r\n */\r\nexport class SchemaReferenceDelta extends BaseSchemaChange {\r\n /** Gets the default ChangeType (Delta or Missing) for this change */\r\n public get defaultChangeType(): ChangeType { return ChangeType.Delta; }\r\n\r\n /** Gets the SchemaItem or Schema (if a schema change) that this change ultimately belongs to. */\r\n public get topLevelSchemaItem(): Schema | SchemaItem { return this.diagnostic.ecDefinition as Schema; }\r\n\r\n /** Gets a string representation of the change. */\r\n public toString(): string {\r\n const refSchema = this.getNameFromArgument(0, false, true);\r\n const versionA = this.getStringFromArgument(1);\r\n const versionB = this.getStringFromArgument(2);\r\n return `Schema(${refSchema}): ${versionA} -> ${versionB}`;\r\n }\r\n}\r\n\r\n/**\r\n * An ISchemaChange implementation for missing SchemaItems.\r\n * @alpha\r\n */\r\nexport class SchemaItemMissing extends SchemaItemChange {\r\n /** Gets the default ChangeType (Delta or Missing) for this change */\r\n public get defaultChangeType(): ChangeType { return ChangeType.Missing; }\r\n\r\n /** Gets a string representation of the change. */\r\n public toString(): string {\r\n const item = this.diagnostic.ecDefinition as SchemaItem;\r\n const typeName = ECClass.isECClass(item) ? \"Class\" : item.schemaItemType;\r\n return `${typeName}(${item.name})`;\r\n }\r\n}\r\n\r\n/**\r\n * An ISchemaChange implementation for changes in property values of any EC type.\r\n * @alpha\r\n */\r\nexport class PropertyValueChange extends BaseSchemaChange {\r\n\r\n /** Gets the SchemaItem that this change ultimately belongs to. */\r\n public get topLevelSchemaItem(): Schema | SchemaItem {\r\n if (SchemaItem.isSchemaItem(this.diagnostic.ecDefinition))\r\n return this.diagnostic.ecDefinition;\r\n\r\n if (Schema.isSchema(this.diagnostic.ecDefinition))\r\n return this.diagnostic.ecDefinition;\r\n\r\n if (Property.isProperty(this.diagnostic.ecDefinition))\r\n return this.diagnostic.ecDefinition.class;\r\n\r\n if (RelationshipConstraint.isRelationshipConstraint(this.diagnostic.ecDefinition))\r\n return this.diagnostic.ecDefinition.relationshipClass;\r\n\r\n throw new Error();\r\n }\r\n\r\n /** Gets the default ChangeType (Delta or Missing) for this change */\r\n public get defaultChangeType(): ChangeType { return ChangeType.Delta; }\r\n\r\n /** Gets a string representation of the change. */\r\n public toString(): string {\r\n let property = this.getStringFromArgument(0);\r\n // Capitalize property name\r\n property = property.charAt(0).toUpperCase() + property.slice(1);\r\n const valueA = this.getStringFromArgument(1);\r\n const valueB = this.getStringFromArgument(2);\r\n return `${property}: ${valueA} -> ${valueB}`;\r\n }\r\n}\r\n\r\n/**\r\n * An ISchemaChange implementation for missing CustomAttribute instances\r\n * for a given container.\r\n * @alpha\r\n */\r\nexport class CustomAttributeContainerChange extends BaseSchemaChange {\r\n /** Gets the default ChangeType (Delta or Missing) for this change */\r\n public get defaultChangeType(): ChangeType { return ChangeType.Missing; }\r\n\r\n /** Gets the SchemaItem that this change ultimately belongs to. */\r\n public get topLevelSchemaItem(): Schema | SchemaItem {\r\n if (SchemaItem.isSchemaItem(this.diagnostic.ecDefinition))\r\n return this.diagnostic.ecDefinition;\r\n\r\n if (Property.isProperty(this.diagnostic.ecDefinition))\r\n return this.diagnostic.ecDefinition.class;\r\n\r\n if (Schema.isSchema(this.diagnostic.ecDefinition))\r\n return this.diagnostic.ecDefinition;\r\n\r\n if (RelationshipConstraint.isRelationshipConstraint(this.diagnostic.ecDefinition))\r\n return this.diagnostic.ecDefinition.relationshipClass;\r\n\r\n throw new Error();\r\n }\r\n\r\n /** Gets the key to use in a Map of this type of ISchemaChange. */\r\n public get changeKey(): string {\r\n return (this.getValueFromArgument(0) as CustomAttribute).className;\r\n }\r\n\r\n /** Gets a string representation of the change. */\r\n public toString(): string {\r\n return `CustomAttribute: ${this.changeKey}`;\r\n }\r\n}\r\n\r\n/**\r\n * An ISchemaChange implementation differences of baseClasses between two ECClasses.\r\n * @alpha\r\n */\r\nexport class BaseClassDelta extends SchemaItemChange {\r\n /** Gets the default ChangeType (Delta or Missing) for this change */\r\n public get defaultChangeType(): ChangeType { return ChangeType.Delta; }\r\n\r\n /** Gets a string representation of the change. */\r\n public toString(): string {\r\n const classA = this.getNameFromArgument(0, true, true);\r\n const classB = this.getNameFromArgument(1, true, true);\r\n return `BaseClass: ${classA} -> ${classB}`;\r\n }\r\n}\r\n\r\n/**\r\n * An ISchemaChange implementation for missing properties.\r\n * @alpha\r\n */\r\nexport class PropertyMissing extends BaseSchemaChange {\r\n /** Gets the SchemaItem that this change ultimately belongs to. */\r\n public get topLevelSchemaItem(): Schema | SchemaItem {\r\n return (this.diagnostic.ecDefinition as Property).class;\r\n }\r\n\r\n /** Gets the default ChangeType (Delta or Missing) for this change */\r\n public get defaultChangeType(): ChangeType { return ChangeType.Missing; }\r\n\r\n /** Gets a string representation of the change. */\r\n public toString(): string {\r\n return `Property(${(this.diagnostic.ecDefinition as Property).name})`;\r\n }\r\n}\r\n\r\n/**\r\n * An ISchemaChange implementation for missing RelationshipConstraint classes.\r\n * @alpha\r\n */\r\nexport class RelationshipConstraintClassChange extends BaseSchemaChange {\r\n /** Gets the default ChangeType (Delta or Missing) for this change */\r\n public get defaultChangeType(): ChangeType { return ChangeType.Missing; }\r\n\r\n /** Gets the SchemaItem that this change ultimately belongs to. */\r\n public get topLevelSchemaItem(): Schema | SchemaItem {\r\n return (this.diagnostic.ecDefinition as RelationshipConstraint).relationshipClass;\r\n }\r\n\r\n /** Gets a string representation of the change. */\r\n public toString(): string {\r\n const constraintClass = this.getNameFromArgument(0, false, true);\r\n return `ConstraintClass: ${constraintClass}`;\r\n }\r\n}\r\n\r\n/**\r\n * An ISchemaChange implementation for differences of Enumerator properties.\r\n * @alpha\r\n */\r\nexport class EnumeratorDelta extends BaseSchemaChange {\r\n /** Gets the default ChangeType (Delta or Missing) for this change */\r\n public get defaultChangeType(): ChangeType { return ChangeType.Delta; }\r\n\r\n /** Gets the SchemaItem that this change ultimately belongs to. */\r\n public get topLevelSchemaItem(): Schema | SchemaItem {\r\n return this.diagnostic.ecDefinition as Enumeration;\r\n }\r\n\r\n /** Gets the key to use in a Map of this type of ISchemaChange. */\r\n public get changeKey(): string {\r\n const enumerator = this.getValueFromArgument(0) as AnyEnumerator;\r\n return enumerator.name;\r\n }\r\n\r\n /** Gets a string representation of the change. */\r\n public toString(): string {\r\n let propertyName = this.getStringFromArgument(1);\r\n // Capitalize property name\r\n propertyName = propertyName.charAt(0).toUpperCase() + propertyName.slice(1);\r\n const valueA = this.getStringFromArgument(2);\r\n const valueB = this.getStringFromArgument(3);\r\n return `${propertyName}: ${valueA} -> ${valueB}`;\r\n }\r\n}\r\n\r\n/**\r\n * An ISchemaChange implementation for missing Enumerators within an Enumeration.\r\n * @alpha\r\n */\r\nexport class EnumeratorMissing extends BaseSchemaChange {\r\n /** Gets the default ChangeType (Delta or Missing) for this change */\r\n public get defaultChangeType(): ChangeType { return ChangeType.Missing; }\r\n\r\n /** Gets the SchemaItem that this change ultimately belongs to. */\r\n public get topLevelSchemaItem(): Schema | SchemaItem {\r\n return this.diagnostic.ecDefinition as Enumeration;\r\n }\r\n\r\n /** Gets the key to use in a Map of this type of ISchemaChange. */\r\n public get changeKey(): string {\r\n return (this.getValueFromArgument(0) as AnyEnumerator).name;\r\n }\r\n\r\n /** Gets a string representation of the change. */\r\n public toString(): string {\r\n return `Enumerator(${this.changeKey})`;\r\n }\r\n}\r\n\r\n/**\r\n * An ISchemaChange implementation for missing mixins within an EntityClass.\r\n * @alpha\r\n */\r\nexport class EntityMixinChange extends BaseSchemaChange {\r\n /** Gets the default ChangeType (Delta or Missing) for this change */\r\n public get defaultChangeType(): ChangeType { return ChangeType.Missing; }\r\n\r\n /** Gets the SchemaItem that this change ultimately belongs to. */\r\n public get topLevelSchemaItem(): Schema | SchemaItem {\r\n return this.diagnostic.ecDefinition as EntityClass;\r\n }\r\n\r\n /** Gets the key to use in a Map of this type of ISchemaChange. */\r\n public get changeKey(): string {\r\n return this.getNameFromArgument(0, false, true);\r\n }\r\n\r\n /** Gets a string representation of the change. */\r\n public toString(): string {\r\n return `Mixin: ${this.changeKey}`;\r\n }\r\n}\r\n\r\n/**\r\n * An ISchemaChange implementation for missing presentation Units within a KindOfQuantity.\r\n * @alpha\r\n */\r\nexport class PresentationUnitChange extends BaseSchemaChange {\r\n /** Gets the default ChangeType (Delta or Missing) for this change */\r\n public get defaultChangeType(): ChangeType { return ChangeType.Missing; }\r\n\r\n /** Gets the SchemaItem that this change ultimately belongs to. */\r\n public get topLevelSchemaItem(): Schema | SchemaItem {\r\n return this.diagnostic.ecDefinition as KindOfQuantity;\r\n }\r\n\r\n /** Gets the key to use in a Map of this type of ISchemaChange. */\r\n public get changeKey(): string {\r\n return this.getNameFromArgument(0, false, true);\r\n }\r\n\r\n /** Gets a string representation of the change. */\r\n public toString(): string {\r\n return `Unit: ${this.changeKey}`;\r\n }\r\n\r\n private get _isOverrideFormat(): boolean {\r\n if (!this.diagnostic.messageArgs)\r\n return false;\r\n\r\n return OverrideFormat.isOverrideFormat(this.diagnostic.messageArgs[0]);\r\n }\r\n}\r\n\r\n/**\r\n * An ISchemaChange implementation for missing Units within a Format.\r\n * @alpha\r\n */\r\nexport class FormatUnitChange extends BaseSchemaChange {\r\n /** Gets the default ChangeType (Delta or Missing) for this change */\r\n public get defaultChangeType(): ChangeType { return ChangeType.Missing; }\r\n\r\n /** Gets the SchemaItem that this change ultimately belongs to. */\r\n public get topLevelSchemaItem(): Schema | SchemaItem {\r\n return this.diagnostic.ecDefinition as Format;\r\n }\r\n\r\n /** Gets the key to use in a Map of this type of ISchemaChange. */\r\n public get changeKey(): string {\r\n return this.getNameFromArgument(0, false, true);\r\n }\r\n\r\n /** Gets a string representation of the change. */\r\n public toString(): string {\r\n return `Unit: ${this.changeKey}, label: ${this.getStringFromArgument(1)}`;\r\n }\r\n\r\n private get _isInvertedUnit(): boolean {\r\n if (!this.diagnostic.messageArgs)\r\n return false;\r\n\r\n return this.diagnostic.messageArgs[0].schemaItemType === SchemaItemType.InvertedUnit;\r\n }\r\n}\r\n\r\n/**\r\n * An ISchemaChange implementation for differences of Unit label overrides within a given Format.\r\n * @alpha\r\n */\r\nexport class UnitLabelOverrideDelta extends BaseSchemaChange {\r\n /** Gets the default ChangeType (Delta or Missing) for this change */\r\n public get defaultChangeType(): ChangeType { return ChangeType.Delta; }\r\n\r\n /** Gets the SchemaItem that this change ultimately belongs to. */\r\n public get topLevelSchemaItem(): Schema | SchemaItem {\r\n return this.diagnostic.ecDefinition as Format;\r\n }\r\n\r\n /** Gets the key to use in a Map of this type of ISchemaChange. */\r\n public get changeKey(): string {\r\n return this.getNameFromArgument(0, false, true);\r\n }\r\n\r\n /** Gets a string representation of the change. */\r\n public toString(): string {\r\n const valueA = this.getStringFromArgument(1);\r\n const valueB = this.getStringFromArgument(2);\r\n return `Label: ${valueA} -> ${valueB}`;\r\n }\r\n\r\n private get _isInvertedUnit(): boolean {\r\n if (!this.diagnostic.messageArgs)\r\n return false;\r\n\r\n return this.diagnostic.messageArgs[0].schemaItemType === SchemaItemType.InvertedUnit;\r\n }\r\n}\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"SchemaCompareDiagnostics.js","sourceRoot":"","sources":["../../../src/Validation/SchemaCompareDiagnostics.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 Comparison\n */\n\nimport { AnyClass, AnyEnumerator, Constant, CustomAttribute, CustomAttributeClass, EntityClass,\n Enumeration, Format, InvertedUnit, KindOfQuantity, Mixin, OverrideFormat, PropertyCategory,\n RelationshipClass, Schema, SchemaItem, Unit,\n} from \"@itwin/ecschema-metadata\";\nimport {\n createClassDiagnosticClass, createCustomAttributeContainerDiagnosticClass, createPropertyDiagnosticClass,\n createRelationshipConstraintDiagnosticClass, createSchemaDiagnosticClass, createSchemaItemDiagnosticClass,\n} from \"./Diagnostic\";\n\n/* eslint-disable @typescript-eslint/naming-convention */\n\n/**\n * The unique diagnostic codes for Schema comparison.\n * @beta\n */\nexport const SchemaCompareCodes = {\n SchemaDelta: \"SC-100\",\n SchemaReferenceMissing: \"SC-101\",\n SchemaItemDelta: \"SC-102\",\n SchemaItemMissing: \"SC-103\",\n ClassDelta: \"SC-104\",\n BaseClassDelta: \"SC-105\",\n PropertyDelta: \"SC-106\",\n PropertyMissing: \"SC-107\",\n EntityMixinMissing: \"SC-108\",\n MixinDelta: \"SC-109\",\n RelationshipDelta: \"SC-110\",\n RelationshipConstraintDelta: \"SC-111\",\n RelationshipConstraintClassMissing: \"SC-112\",\n CustomAttributeClassDelta: \"SC-113\",\n CustomAttributeInstanceClassMissing: \"SC-114\",\n EnumerationDelta: \"SC-115\",\n EnumeratorMissing: \"SC-116\",\n EnumeratorDelta: \"SC-117\",\n KoqDelta: \"SC-118\",\n PresentationUnitMissing: \"SC-119\",\n PropertyCategoryDelta: \"SC-120\",\n FormatDelta: \"SC-121\",\n FormatUnitMissing: \"SC-122\",\n UnitLabelOverrideDelta: \"SC-123\",\n UnitDelta: \"SC-124\",\n InvertedUnitDelta: \"SC-125\",\n PhenomenonDelta: \"SC-126\",\n ConstantDelta: \"SC-127\",\n SchemaReferenceDelta: \"SC-128\",\n};\n\n/**\n * The list of [[IDiagnostic]] implementation classes used by the Schema comparison framework.\n * @beta\n */\nexport const SchemaCompareDiagnostics = {\n /** Required message parameters: property name, property A value, property B value */\n SchemaDelta: createSchemaDiagnosticClass<[string, any, any]>(SchemaCompareCodes.SchemaDelta, \"\"),\n\n /** Required message parameters: reference schema name */\n SchemaReferenceMissing: createSchemaDiagnosticClass<[Schema]>(SchemaCompareCodes.SchemaReferenceMissing, \"\"),\n\n /** Required message parameters: schema name, version A, version B */\n SchemaReferenceDelta: createSchemaDiagnosticClass<[Schema, string, string]>(SchemaCompareCodes.SchemaReferenceDelta, \"\"),\n\n /** Required message parameters: property name, property A value, property B value */\n SchemaItemDelta: createSchemaItemDiagnosticClass<SchemaItem, [string, any, any]>(SchemaCompareCodes.SchemaItemDelta, \"\"),\n\n /** Required message parameters: none */\n SchemaItemMissing: createSchemaItemDiagnosticClass<SchemaItem, []>(SchemaCompareCodes.SchemaItemMissing, \"\"),\n\n /** Required message parameters: property name, property A value, property B value */\n ClassDelta: createClassDiagnosticClass<[string, any, any]>(SchemaCompareCodes.ClassDelta, \"\"),\n\n /** Required message parameters: Class A base class, Class B base class */\n BaseClassDelta: createClassDiagnosticClass<[AnyClass | undefined, AnyClass | undefined]>(SchemaCompareCodes.BaseClassDelta, \"\"),\n\n /** Required message parameters: property name, property A value, property B value */\n PropertyDelta: createPropertyDiagnosticClass<[string, any, any]>(SchemaCompareCodes.PropertyDelta, \"\"),\n\n /** Required message parameters: none */\n PropertyMissing: createPropertyDiagnosticClass<[]>(SchemaCompareCodes.PropertyMissing, \"\"),\n\n /** Required message parameters: Mixin */\n EntityMixinMissing: createSchemaItemDiagnosticClass<EntityClass, [Mixin]>(SchemaCompareCodes.EntityMixinMissing, \"\"),\n\n /** Required message parameters: property name, property A value, property B value */\n MixinDelta: createSchemaItemDiagnosticClass<Mixin, [string, any, any]>(SchemaCompareCodes.MixinDelta, \"\"),\n\n /** Required message parameters: property name, property A value, property B value */\n RelationshipDelta: createSchemaItemDiagnosticClass<RelationshipClass, [string, any, any]>(SchemaCompareCodes.RelationshipDelta, \"\"),\n\n /** Required message parameters: property name, property A value, property B value */\n RelationshipConstraintDelta: createRelationshipConstraintDiagnosticClass<[string, any, any]>(SchemaCompareCodes.RelationshipConstraintDelta, \"\"),\n\n /** Required message parameters: constraint class */\n RelationshipConstraintClassMissing: createRelationshipConstraintDiagnosticClass<[AnyClass]>(SchemaCompareCodes.RelationshipConstraintClassMissing, \"\"),\n\n /** Required message parameters: property name, property A value, property B value */\n CustomAttributeClassDelta: createSchemaItemDiagnosticClass<CustomAttributeClass, [string, any, any]>(SchemaCompareCodes.CustomAttributeClassDelta, \"\"),\n\n /** Required message parameters: CustomAttributeClass name */\n CustomAttributeInstanceClassMissing: createCustomAttributeContainerDiagnosticClass<[CustomAttribute]>(SchemaCompareCodes.CustomAttributeInstanceClassMissing, \"\"),\n\n /** Required message parameters: property name, property A value, property B value */\n EnumerationDelta: createSchemaItemDiagnosticClass<Enumeration, [string, string, string]>(SchemaCompareCodes.EnumerationDelta, \"\"),\n\n /** Required message parameters: Enumerator */\n EnumeratorMissing: createSchemaItemDiagnosticClass<Enumeration, [AnyEnumerator]>(SchemaCompareCodes.EnumeratorMissing, \"\"),\n\n /** Required message parameters: Enumerator property name, property A value, property B value */\n EnumeratorDelta: createSchemaItemDiagnosticClass<Enumeration, [AnyEnumerator, string, any, any]>(SchemaCompareCodes.EnumeratorDelta, \"\"),\n\n /** Required message parameters: property name, property A value, property B value */\n KoqDelta: createSchemaItemDiagnosticClass<KindOfQuantity, [string, any, any]>(SchemaCompareCodes.KoqDelta, \"\"),\n\n /** Required message parameters: PresentationUnit (Format | OverrideFormat) */\n PresentationUnitMissing: createSchemaItemDiagnosticClass<KindOfQuantity, [Format | OverrideFormat]>(SchemaCompareCodes.PresentationUnitMissing, \"\"),\n\n /** Required message parameters: property name, property A value, property B value */\n PropertyCategoryDelta: createSchemaItemDiagnosticClass<PropertyCategory, [string, any, any]>(SchemaCompareCodes.PropertyCategoryDelta, \"\"),\n\n /** Required message parameters: property name, property A value, property B value */\n FormatDelta: createSchemaItemDiagnosticClass<Format, [string, any, any]>(SchemaCompareCodes.FormatDelta, \"\"),\n\n /** Required message parameters: Unit or InvertedUnit */\n FormatUnitMissing: createSchemaItemDiagnosticClass<Format, [Unit | InvertedUnit, string | undefined]>(SchemaCompareCodes.FormatUnitMissing, \"\"),\n\n /** Required message parameters: Unit or InvertedUnit, label A, label B */\n UnitLabelOverrideDelta: createSchemaItemDiagnosticClass<Format, [Unit | InvertedUnit, string | undefined, string | undefined]>(SchemaCompareCodes.UnitLabelOverrideDelta, \"\"),\n\n /** Required message parameters: property name, property A value, property B value */\n UnitDelta: createSchemaItemDiagnosticClass<Format, [string, string, string]>(SchemaCompareCodes.UnitDelta, \"\"),\n\n /** Required message parameters: property name, property A value, property B value */\n InvertedUnitDelta: createSchemaItemDiagnosticClass<InvertedUnit, [string, string, string]>(SchemaCompareCodes.InvertedUnitDelta, \"\"),\n\n /** Required message parameters: property name, property A value, property B value */\n PhenomenonDelta: createSchemaItemDiagnosticClass<InvertedUnit, [string, string, string]>(SchemaCompareCodes.PhenomenonDelta, \"\"),\n\n /** Required message parameters: property name, property A value, property B value */\n ConstantDelta: createSchemaItemDiagnosticClass<Constant, [string, string, string]>(SchemaCompareCodes.ConstantDelta, \"\"),\n};\n"]}
1
+ {"version":3,"file":"SchemaCompareDiagnostics.js","sourceRoot":"","sources":["../../../src/Validation/SchemaCompareDiagnostics.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAMH,6CAGsB;AAEtB,yDAAyD;AAEzD;;;GAGG;AACU,QAAA,kBAAkB,GAAG;IAChC,WAAW,EAAE,QAAQ;IACrB,sBAAsB,EAAE,QAAQ;IAChC,eAAe,EAAE,QAAQ;IACzB,iBAAiB,EAAE,QAAQ;IAC3B,UAAU,EAAE,QAAQ;IACpB,cAAc,EAAE,QAAQ;IACxB,aAAa,EAAE,QAAQ;IACvB,eAAe,EAAE,QAAQ;IACzB,kBAAkB,EAAE,QAAQ;IAC5B,UAAU,EAAE,QAAQ;IACpB,iBAAiB,EAAE,QAAQ;IAC3B,2BAA2B,EAAE,QAAQ;IACrC,kCAAkC,EAAE,QAAQ;IAC5C,yBAAyB,EAAE,QAAQ;IACnC,mCAAmC,EAAE,QAAQ;IAC7C,gBAAgB,EAAE,QAAQ;IAC1B,iBAAiB,EAAE,QAAQ;IAC3B,eAAe,EAAE,QAAQ;IACzB,QAAQ,EAAE,QAAQ;IAClB,uBAAuB,EAAE,QAAQ;IACjC,qBAAqB,EAAE,QAAQ;IAC/B,WAAW,EAAE,QAAQ;IACrB,iBAAiB,EAAE,QAAQ;IAC3B,sBAAsB,EAAE,QAAQ;IAChC,SAAS,EAAE,QAAQ;IACnB,iBAAiB,EAAE,QAAQ;IAC3B,eAAe,EAAE,QAAQ;IACzB,aAAa,EAAE,QAAQ;IACvB,oBAAoB,EAAE,QAAQ;CAC/B,CAAC;AAEF;;;GAGG;AACU,QAAA,wBAAwB,GAAG;IACtC,qFAAqF;IACrF,WAAW,EAAE,IAAA,wCAA2B,EAAqB,0BAAkB,CAAC,WAAW,EAAE,EAAE,CAAC;IAEhG,yDAAyD;IACzD,sBAAsB,EAAE,IAAA,wCAA2B,EAAW,0BAAkB,CAAC,sBAAsB,EAAE,EAAE,CAAC;IAE5G,qEAAqE;IACrE,oBAAoB,EAAE,IAAA,wCAA2B,EAA2B,0BAAkB,CAAC,oBAAoB,EAAE,EAAE,CAAC;IAExH,qFAAqF;IACrF,eAAe,EAAE,IAAA,4CAA+B,EAAiC,0BAAkB,CAAC,eAAe,EAAE,EAAE,CAAC;IAExH,wCAAwC;IACxC,iBAAiB,EAAE,IAAA,4CAA+B,EAAiB,0BAAkB,CAAC,iBAAiB,EAAE,EAAE,CAAC;IAE5G,qFAAqF;IACrF,UAAU,EAAE,IAAA,uCAA0B,EAAqB,0BAAkB,CAAC,UAAU,EAAE,EAAE,CAAC;IAE7F,0EAA0E;IAC1E,cAAc,EAAE,IAAA,uCAA0B,EAA+C,0BAAkB,CAAC,cAAc,EAAE,EAAE,CAAC;IAE/H,qFAAqF;IACrF,aAAa,EAAE,IAAA,0CAA6B,EAAqB,0BAAkB,CAAC,aAAa,EAAE,EAAE,CAAC;IAEtG,wCAAwC;IACxC,eAAe,EAAE,IAAA,0CAA6B,EAAK,0BAAkB,CAAC,eAAe,EAAE,EAAE,CAAC;IAE1F,yCAAyC;IACzC,kBAAkB,EAAE,IAAA,4CAA+B,EAAuB,0BAAkB,CAAC,kBAAkB,EAAE,EAAE,CAAC;IAEpH,qFAAqF;IACrF,UAAU,EAAE,IAAA,4CAA+B,EAA4B,0BAAkB,CAAC,UAAU,EAAE,EAAE,CAAC;IAEzG,qFAAqF;IACrF,iBAAiB,EAAE,IAAA,4CAA+B,EAAwC,0BAAkB,CAAC,iBAAiB,EAAE,EAAE,CAAC;IAEnI,qFAAqF;IACrF,2BAA2B,EAAE,IAAA,wDAA2C,EAAqB,0BAAkB,CAAC,2BAA2B,EAAE,EAAE,CAAC;IAEhJ,oDAAoD;IACpD,kCAAkC,EAAE,IAAA,wDAA2C,EAAa,0BAAkB,CAAC,kCAAkC,EAAE,EAAE,CAAC;IAEtJ,sFAAsF;IACtF,yBAAyB,EAAE,IAAA,4CAA+B,EAA2C,0BAAkB,CAAC,yBAAyB,EAAE,EAAE,CAAC;IAEtJ,6DAA6D;IAC7D,mCAAmC,EAAE,IAAA,0DAA6C,EAAoB,0BAAkB,CAAC,mCAAmC,EAAE,EAAE,CAAC;IAEjK,sFAAsF;IACtF,gBAAgB,EAAE,IAAA,4CAA+B,EAAwC,0BAAkB,CAAC,gBAAgB,EAAE,EAAE,CAAC;IAEjI,8CAA8C;IAC9C,iBAAiB,EAAE,IAAA,4CAA+B,EAA+B,0BAAkB,CAAC,iBAAiB,EAAE,EAAE,CAAC;IAE1H,iGAAiG;IACjG,eAAe,EAAE,IAAA,4CAA+B,EAAiD,0BAAkB,CAAC,eAAe,EAAE,EAAE,CAAC;IAExI,sFAAsF;IACtF,QAAQ,EAAE,IAAA,4CAA+B,EAAqC,0BAAkB,CAAC,QAAQ,EAAE,EAAE,CAAC;IAE9G,8EAA8E;IAC9E,uBAAuB,EAAE,IAAA,4CAA+B,EAA4C,0BAAkB,CAAC,uBAAuB,EAAE,EAAE,CAAC;IAEnJ,sFAAsF;IACtF,qBAAqB,EAAE,IAAA,4CAA+B,EAAuC,0BAAkB,CAAC,qBAAqB,EAAE,EAAE,CAAC;IAE1I,sFAAsF;IACtF,WAAW,EAAE,IAAA,4CAA+B,EAA6B,0BAAkB,CAAC,WAAW,EAAE,EAAE,CAAC;IAE5G,wDAAwD;IACxD,iBAAiB,EAAE,IAAA,4CAA+B,EAAoD,0BAAkB,CAAC,iBAAiB,EAAE,EAAE,CAAC;IAE/I,0EAA0E;IAC1E,sBAAsB,EAAE,IAAA,4CAA+B,EAAwE,0BAAkB,CAAC,sBAAsB,EAAE,EAAE,CAAC;IAE7K,sFAAsF;IACtF,SAAS,EAAE,IAAA,4CAA+B,EAAmC,0BAAkB,CAAC,SAAS,EAAE,EAAE,CAAC;IAE9G,sFAAsF;IACtF,iBAAiB,EAAE,IAAA,4CAA+B,EAAyC,0BAAkB,CAAC,iBAAiB,EAAE,EAAE,CAAC;IAEpI,sFAAsF;IACtF,eAAe,EAAE,IAAA,4CAA+B,EAAyC,0BAAkB,CAAC,eAAe,EAAE,EAAE,CAAC;IAEhI,sFAAsF;IACtF,aAAa,EAAE,IAAA,4CAA+B,EAAqC,0BAAkB,CAAC,aAAa,EAAE,EAAE,CAAC;CACzH,CAAC","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 Comparison\r\n */\r\n\r\nimport { AnyClass, AnyEnumerator, Constant, CustomAttribute, CustomAttributeClass, EntityClass,\r\n Enumeration, Format, InvertedUnit, KindOfQuantity, Mixin, OverrideFormat, PropertyCategory,\r\n RelationshipClass, Schema, SchemaItem, Unit,\r\n} from \"@itwin/ecschema-metadata\";\r\nimport {\r\n createClassDiagnosticClass, createCustomAttributeContainerDiagnosticClass, createPropertyDiagnosticClass,\r\n createRelationshipConstraintDiagnosticClass, createSchemaDiagnosticClass, createSchemaItemDiagnosticClass,\r\n} from \"./Diagnostic\";\r\n\r\n/* eslint-disable @typescript-eslint/naming-convention */\r\n\r\n/**\r\n * The unique diagnostic codes for Schema comparison.\r\n * @beta\r\n */\r\nexport const SchemaCompareCodes = {\r\n SchemaDelta: \"SC-100\",\r\n SchemaReferenceMissing: \"SC-101\",\r\n SchemaItemDelta: \"SC-102\",\r\n SchemaItemMissing: \"SC-103\",\r\n ClassDelta: \"SC-104\",\r\n BaseClassDelta: \"SC-105\",\r\n PropertyDelta: \"SC-106\",\r\n PropertyMissing: \"SC-107\",\r\n EntityMixinMissing: \"SC-108\",\r\n MixinDelta: \"SC-109\",\r\n RelationshipDelta: \"SC-110\",\r\n RelationshipConstraintDelta: \"SC-111\",\r\n RelationshipConstraintClassMissing: \"SC-112\",\r\n CustomAttributeClassDelta: \"SC-113\",\r\n CustomAttributeInstanceClassMissing: \"SC-114\",\r\n EnumerationDelta: \"SC-115\",\r\n EnumeratorMissing: \"SC-116\",\r\n EnumeratorDelta: \"SC-117\",\r\n KoqDelta: \"SC-118\",\r\n PresentationUnitMissing: \"SC-119\",\r\n PropertyCategoryDelta: \"SC-120\",\r\n FormatDelta: \"SC-121\",\r\n FormatUnitMissing: \"SC-122\",\r\n UnitLabelOverrideDelta: \"SC-123\",\r\n UnitDelta: \"SC-124\",\r\n InvertedUnitDelta: \"SC-125\",\r\n PhenomenonDelta: \"SC-126\",\r\n ConstantDelta: \"SC-127\",\r\n SchemaReferenceDelta: \"SC-128\",\r\n};\r\n\r\n/**\r\n * The list of [[IDiagnostic]] implementation classes used by the Schema comparison framework.\r\n * @beta\r\n */\r\nexport const SchemaCompareDiagnostics = {\r\n /** Required message parameters: property name, property A value, property B value */\r\n SchemaDelta: createSchemaDiagnosticClass<[string, any, any]>(SchemaCompareCodes.SchemaDelta, \"\"),\r\n\r\n /** Required message parameters: reference schema name */\r\n SchemaReferenceMissing: createSchemaDiagnosticClass<[Schema]>(SchemaCompareCodes.SchemaReferenceMissing, \"\"),\r\n\r\n /** Required message parameters: schema name, version A, version B */\r\n SchemaReferenceDelta: createSchemaDiagnosticClass<[Schema, string, string]>(SchemaCompareCodes.SchemaReferenceDelta, \"\"),\r\n\r\n /** Required message parameters: property name, property A value, property B value */\r\n SchemaItemDelta: createSchemaItemDiagnosticClass<SchemaItem, [string, any, any]>(SchemaCompareCodes.SchemaItemDelta, \"\"),\r\n\r\n /** Required message parameters: none */\r\n SchemaItemMissing: createSchemaItemDiagnosticClass<SchemaItem, []>(SchemaCompareCodes.SchemaItemMissing, \"\"),\r\n\r\n /** Required message parameters: property name, property A value, property B value */\r\n ClassDelta: createClassDiagnosticClass<[string, any, any]>(SchemaCompareCodes.ClassDelta, \"\"),\r\n\r\n /** Required message parameters: Class A base class, Class B base class */\r\n BaseClassDelta: createClassDiagnosticClass<[AnyClass | undefined, AnyClass | undefined]>(SchemaCompareCodes.BaseClassDelta, \"\"),\r\n\r\n /** Required message parameters: property name, property A value, property B value */\r\n PropertyDelta: createPropertyDiagnosticClass<[string, any, any]>(SchemaCompareCodes.PropertyDelta, \"\"),\r\n\r\n /** Required message parameters: none */\r\n PropertyMissing: createPropertyDiagnosticClass<[]>(SchemaCompareCodes.PropertyMissing, \"\"),\r\n\r\n /** Required message parameters: Mixin */\r\n EntityMixinMissing: createSchemaItemDiagnosticClass<EntityClass, [Mixin]>(SchemaCompareCodes.EntityMixinMissing, \"\"),\r\n\r\n /** Required message parameters: property name, property A value, property B value */\r\n MixinDelta: createSchemaItemDiagnosticClass<Mixin, [string, any, any]>(SchemaCompareCodes.MixinDelta, \"\"),\r\n\r\n /** Required message parameters: property name, property A value, property B value */\r\n RelationshipDelta: createSchemaItemDiagnosticClass<RelationshipClass, [string, any, any]>(SchemaCompareCodes.RelationshipDelta, \"\"),\r\n\r\n /** Required message parameters: property name, property A value, property B value */\r\n RelationshipConstraintDelta: createRelationshipConstraintDiagnosticClass<[string, any, any]>(SchemaCompareCodes.RelationshipConstraintDelta, \"\"),\r\n\r\n /** Required message parameters: constraint class */\r\n RelationshipConstraintClassMissing: createRelationshipConstraintDiagnosticClass<[AnyClass]>(SchemaCompareCodes.RelationshipConstraintClassMissing, \"\"),\r\n\r\n /** Required message parameters: property name, property A value, property B value */\r\n CustomAttributeClassDelta: createSchemaItemDiagnosticClass<CustomAttributeClass, [string, any, any]>(SchemaCompareCodes.CustomAttributeClassDelta, \"\"),\r\n\r\n /** Required message parameters: CustomAttributeClass name */\r\n CustomAttributeInstanceClassMissing: createCustomAttributeContainerDiagnosticClass<[CustomAttribute]>(SchemaCompareCodes.CustomAttributeInstanceClassMissing, \"\"),\r\n\r\n /** Required message parameters: property name, property A value, property B value */\r\n EnumerationDelta: createSchemaItemDiagnosticClass<Enumeration, [string, string, string]>(SchemaCompareCodes.EnumerationDelta, \"\"),\r\n\r\n /** Required message parameters: Enumerator */\r\n EnumeratorMissing: createSchemaItemDiagnosticClass<Enumeration, [AnyEnumerator]>(SchemaCompareCodes.EnumeratorMissing, \"\"),\r\n\r\n /** Required message parameters: Enumerator property name, property A value, property B value */\r\n EnumeratorDelta: createSchemaItemDiagnosticClass<Enumeration, [AnyEnumerator, string, any, any]>(SchemaCompareCodes.EnumeratorDelta, \"\"),\r\n\r\n /** Required message parameters: property name, property A value, property B value */\r\n KoqDelta: createSchemaItemDiagnosticClass<KindOfQuantity, [string, any, any]>(SchemaCompareCodes.KoqDelta, \"\"),\r\n\r\n /** Required message parameters: PresentationUnit (Format | OverrideFormat) */\r\n PresentationUnitMissing: createSchemaItemDiagnosticClass<KindOfQuantity, [Format | OverrideFormat]>(SchemaCompareCodes.PresentationUnitMissing, \"\"),\r\n\r\n /** Required message parameters: property name, property A value, property B value */\r\n PropertyCategoryDelta: createSchemaItemDiagnosticClass<PropertyCategory, [string, any, any]>(SchemaCompareCodes.PropertyCategoryDelta, \"\"),\r\n\r\n /** Required message parameters: property name, property A value, property B value */\r\n FormatDelta: createSchemaItemDiagnosticClass<Format, [string, any, any]>(SchemaCompareCodes.FormatDelta, \"\"),\r\n\r\n /** Required message parameters: Unit or InvertedUnit */\r\n FormatUnitMissing: createSchemaItemDiagnosticClass<Format, [Unit | InvertedUnit, string | undefined]>(SchemaCompareCodes.FormatUnitMissing, \"\"),\r\n\r\n /** Required message parameters: Unit or InvertedUnit, label A, label B */\r\n UnitLabelOverrideDelta: createSchemaItemDiagnosticClass<Format, [Unit | InvertedUnit, string | undefined, string | undefined]>(SchemaCompareCodes.UnitLabelOverrideDelta, \"\"),\r\n\r\n /** Required message parameters: property name, property A value, property B value */\r\n UnitDelta: createSchemaItemDiagnosticClass<Format, [string, string, string]>(SchemaCompareCodes.UnitDelta, \"\"),\r\n\r\n /** Required message parameters: property name, property A value, property B value */\r\n InvertedUnitDelta: createSchemaItemDiagnosticClass<InvertedUnit, [string, string, string]>(SchemaCompareCodes.InvertedUnitDelta, \"\"),\r\n\r\n /** Required message parameters: property name, property A value, property B value */\r\n PhenomenonDelta: createSchemaItemDiagnosticClass<InvertedUnit, [string, string, string]>(SchemaCompareCodes.PhenomenonDelta, \"\"),\r\n\r\n /** Required message parameters: property name, property A value, property B value */\r\n ConstantDelta: createSchemaItemDiagnosticClass<Constant, [string, string, string]>(SchemaCompareCodes.ConstantDelta, \"\"),\r\n};\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"SchemaCompareReporter.js","sourceRoot":"","sources":["../../../src/Validation/SchemaCompareReporter.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG","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 Comparison\n */\n\nimport { ISchemaChanges } from \"./SchemaChanges\";\n\n/**\n * Interface for reporting ISchemaChanges objects.\n * @alpha\n */\nexport interface ISchemaCompareReporter {\n report(schemaChanges: ISchemaChanges): void;\n}\n"]}
1
+ {"version":3,"file":"SchemaCompareReporter.js","sourceRoot":"","sources":["../../../src/Validation/SchemaCompareReporter.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG","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 Comparison\r\n */\r\n\r\nimport { ISchemaChanges } from \"./SchemaChanges\";\r\n\r\n/**\r\n * Interface for reporting ISchemaChanges objects.\r\n * @alpha\r\n */\r\nexport interface ISchemaCompareReporter {\r\n report(schemaChanges: ISchemaChanges): void;\r\n}\r\n"]}