Refactor class name notation from dot/colon to dot-only format - #1461
Conversation
|
There was a problem hiding this comment.
Pull request overview
This PR implements the repo-wide shift from mixed Schema:Class / Schema.Class handling to dot-only class names by adopting EC.FullClassNameDotNotation across APIs and internals, reducing the need for repeated normalizeFullClassName calls and making string formatting expectations type-safe.
Changes:
- Updated shared, hierarchies, and content types/APIs to use
EC.FullClassNameDotNotationwhere dot-only is now required. - Updated ECSQL snippet generation and query readers to emit/consume dot-notation class names directly.
- Updated unit/integration/performance tests and utilities to align with dot-only class-name inputs/outputs.
Reviewed changes
Copilot reviewed 89 out of 89 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| packages/test-utilities/src/test-utilities/IModelUtils.ts | Switch test iModel insert helpers to dot-only class/relationship names. |
| packages/shared/src/test/Values.test.ts | Update InstanceKey.compare test inputs to dot notation. |
| packages/shared/src/test/MetadataProviderStub.ts | Align stub is(...) typing/behavior with dot-only fullName. |
| packages/shared/src/test/ecsql-snippets/ECSqlValueSelectorSnippets.test.ts | Remove colon-notation selector expectations and tighten invalid-name cases. |
| packages/shared/src/shared/Values.ts | Make InstanceKey.className dot-notation and remove normalization in comparison. |
| packages/shared/src/shared/Metadata.ts | Change schema item and relationship path class-name fields to dot-notation types. |
| packages/shared/src/shared/InstanceLabelSelectClauseFactory.ts | Update className prop typing to dot notation. |
| packages/shared/src/shared/instance-label-factory-impls/IModelInstanceLabelSelectClauseFactory.ts | Convert visited/rule/step class-name tracking to dot-notation types. |
| packages/shared/src/shared/instance-label-factory-impls/ClassBasedInstanceLabelSelectClauseFactory.ts | Update class-based label clause lookups to dot-notation names. |
| packages/shared/src/shared/ecsql-snippets/ECSqlValueSelectorSnippets.ts | Restrict createClassSelector to dot-notation class names. |
| packages/shared/src/shared/ecsql-snippets/ECSqlJoinSnippets.ts | Update join snippet target/relationship class-name fields to dot-notation types. |
| packages/shared/api/presentation-shared.api.md | Reflect shared public API type changes to dot notation. |
| packages/models-tree/src/models-tree/ModelsTreeDefinition.ts | Update models-tree configuration and parsing types to dot notation. |
| packages/hierarchies/src/test/Utils.ts | Update test schema provider stubs and keys to dot notation. |
| packages/hierarchies/src/test/imodel/SearchHierarchyDefinition.test.ts | Update search-related class name test data to dot notation. |
| packages/hierarchies/src/test/imodel/operators/grouping/PropertiesGrouping.test.ts | Update property grouping test inputs to dot notation. |
| packages/hierarchies/src/test/imodel/operators/grouping/LabelGrouping.test.ts | Update label grouping test instance keys to dot notation. |
| packages/hierarchies/src/test/imodel/operators/grouping/GroupHiding.test.ts | Update group hiding test instance keys to dot notation. |
| packages/hierarchies/src/test/imodel/operators/grouping/BaseClassGrouping.test.ts | Update base-class grouping test class-name lists to dot notation. |
| packages/hierarchies/src/test/imodel/operators/grouping/AutoExpand.test.ts | Update auto-expand grouping keys and class-name params to dot notation. |
| packages/hierarchies/src/test/imodel/NodeSelectQueryFactory.test.ts | Expect dot-notation ec_ClassName(..., 's.c') output in select clauses. |
| packages/hierarchies/src/test/HierarchySearch.test.ts | Update hierarchy search identifiers to dot notation. |
| packages/hierarchies/src/test/HierarchyNodeKey.test.ts | Update key equality cases from colon to dot notation. |
| packages/hierarchies/src/hierarchies/imodel/TreeNodesReader.ts | Treat row class names as dot notation; drop normalization in parser. |
| packages/hierarchies/src/hierarchies/imodel/PredicateBasedHierarchyDefinition.ts | Use dot-notation keys when grouping instance IDs by class. |
| packages/hierarchies/src/hierarchies/imodel/operators/grouping/PropertiesGrouping.ts | Use dot-notation property class names in grouping map keys and predicates. |
| packages/hierarchies/src/hierarchies/imodel/operators/grouping/ClassGrouping.ts | Make grouped dictionary keys dot-notation class names. |
| packages/hierarchies/src/hierarchies/imodel/operators/grouping/BaseClassGrouping.ts | Use dot-notation types for sorted base class name tracking. |
| packages/hierarchies/src/hierarchies/imodel/NodeSelectQueryFactory.ts | Emit dot-notation class names via ec_ClassName(..., 's.c') and update filter typing. |
| packages/hierarchies/src/hierarchies/imodel/IModelHierarchyNode.ts | Update grouping param types to dot notation. |
| packages/hierarchies/src/hierarchies/imodel/IModelHierarchyDefinition.ts | Update InstanceNodesQueryDefinition.fullClassName typing to dot notation. |
| packages/hierarchies/src/hierarchies/HierarchyNodeKey.ts | Make key class-name fields dot-notation and remove normalization in comparisons. |
| packages/hierarchies/api/presentation-hierarchies.api.md | Reflect hierarchies public API type changes to dot notation. |
| packages/hierarchies-react/src/test/unit/UseTree.test.tsx | Update search paths and instance keys to dot notation. |
| packages/hierarchies-react/src/test/unit/TestUtils.ts | Update default grouping node key class name to dot notation. |
| packages/hierarchies-react/src/test/unit/internal/Utils.test.ts | Update node-id expectations to dot notation serialization. |
| packages/hierarchies-react/src/test/unit/internal/UseUnifiedSelection.test.tsx | Update unified selection test keys to dot notation. |
| packages/core-interop/src/core-interop/MetadataInternal.ts | Align custom attribute set map typing and access to dot-notation keys. |
| packages/content/src/test/model/Utils.test.ts | Update class-name normalization tests to dot-only inputs. |
| packages/content/src/test/model/PropertyValueDescriptor.test.ts | Update navigation constraint class-name typings to dot notation. |
| packages/content/src/test/model/Field.test.ts | Update field ID computation tests to dot notation. |
| packages/content/src/test/model/Category.test.ts | Update relationship path/category ID tests to dot notation. |
| packages/content/src/test/MetadataStubs.ts | Use parseFullClassName with dot-notation types in stubs. |
| packages/content/src/test/extensions/presentation-rules/FieldsProviderFactory.test.ts | Update content target primary class typing to dot notation. |
| packages/content/src/test/extensions/presentation-rules/DescriptorTransformerFactory.test.ts | Update descriptor transformer tests to dot-notation class-name lists. |
| packages/content/src/test/extensions/ecexpressions/ECExpressionToECSql.test.ts | Update expression test strings to dot notation. |
| packages/content/src/test/extensions/DescriptorTransformer.test.ts | Update transform/fork tests to dot-notation class names. |
| packages/content/src/test/descriptor-building/Selectors.test.ts | Update selector collection tests and inputs to dot notation. |
| packages/content/src/test/descriptor-building/RelatedFields.test.ts | Update resolved path typing to dot-notation target classes. |
| packages/content/src/test/descriptor-building/PropertyFieldMerge.test.ts | Update merge tests to dot-notation identity/target class sets. |
| packages/content/src/test/descriptor-building/DirectFields.test.ts | Update direct fields tests to dot-notation primary classes. |
| packages/content/src/test/descriptor-building/ClassPropertyFields.test.ts | Update helper typing for class property enumeration to dot notation. |
| packages/content/src/test/descriptor-building/BuildDescriptor.test.ts | Update content source creation typing to dot notation. |
| packages/content/src/test/Content.test.ts | Update content target inputs to dot notation. |
| packages/content/src/content/ResolveContentSources.ts | Return resolved class names as dot notation and drop normalization in primary-class resolution. |
| packages/content/src/content/model/ValueSelector.ts | Update selector ID computation typing to dot-notation class name. |
| packages/content/src/content/model/Utils.ts | Assume dot-notation relationship path/class lists; remove normalization during serialization/deduping. |
| packages/content/src/content/model/Field.ts | Make property/value class names dot-notation and remove normalization in ID computation. |
| packages/content/src/content/InternalUtils.ts | Update getClassLabel param typing to dot notation. |
| packages/content/src/content/extensions/presentation-rules/Utils.ts | Update classMatchesSpec class name typing to dot notation. |
| packages/content/src/content/extensions/presentation-rules/FieldsProviderFactory.ts | Use dot-notation class-name types when mapping/flattening related property paths. |
| packages/content/src/content/extensions/presentation-rules/DescriptorTransformerFactory.ts | Use dot-notation class-name subsets for matching/forking. |
| packages/content/src/content/extensions/ExternalFieldsProvider.ts | Update external input declaration typing to dot notation. |
| packages/content/src/content/extensions/ecexpressions/Emitter.ts | Update primary class name typing to dot notation. |
| packages/content/src/content/extensions/ecexpressions/ECExpressionToECSql.ts | Update primaryClassName typing to dot notation. |
| packages/content/src/content/extensions/DescriptorTransformer.ts | Fork by dot-notation subset and remove normalization when shrinking originals. |
| packages/content/src/content/descriptor-building/Selectors.ts | Update property selector typing to dot notation. |
| packages/content/src/content/descriptor-building/PropertyFieldMerge.ts | Remove normalization from comparable navigation descriptors (dot-only expectation). |
| packages/content/src/content/descriptor-building/ExternalFields.ts | Update external input typing to dot notation. |
| packages/content/src/content/descriptor-building/DirectFields.ts | Treat resolved/concrete class name lists as dot notation without normalization. |
| packages/content/src/content/descriptor-building/ClassPropertyFields.ts | Update class/value class typing to dot notation. |
| packages/content/src/content/descriptor-building/Categories.ts | Update category label resolution typing to dot notation. |
| packages/content/src/content/ContentTarget.ts | Update content target/source/resolved path typings to dot notation. |
| packages/content/api/presentation-content.api.md | Reflect content public API type changes to dot notation. |
| apps/performance-tests/src/util/Datasets.ts | Remove separator toggles; generate dot-notation class names for inserted data. |
| apps/performance-tests/src/unified-selection/HiliteSet.test.ts | Use dot-notation selectable class names when building hilite selections. |
| apps/performance-tests/src/hierarchies/RunHierarchyTest.ts | Update optional full class name typing to dot notation. |
| apps/performance-tests/src/hierarchies/ModelsTree.test.ts | Update instance key class names used in performance hierarchy tests to dot notation. |
| apps/performance-tests/src/hierarchies/Grouping.test.ts | Update base class / class list typing to dot notation. |
| apps/full-stack-tests/src/hierarchies/Utils.ts | Remove local class-selector helper in favor of shared ECSql helpers. |
| apps/full-stack-tests/src/hierarchies/Update.test.ts | Use ECSql.createClassSelector(...) with normalized dot class names in ECSQL strings. |
| apps/full-stack-tests/src/hierarchies/learning-snippets/MergedIModelHierarchies.test.ts | Update snippet helper typing to dot-notation class names. |
| apps/full-stack-tests/src/ECDbUtils.ts | Update helper insert signatures to dot-notation full class names. |
| apps/full-stack-tests/src/components/Utils.ts | Add helper to convert dot-notation instance keys to colon notation for unified-selection assertions. |
| apps/full-stack-tests/src/components/unified-selection/Viewport.test.tsx | Update iModel insert helpers to dot-only and remove separator config. |
| apps/full-stack-tests/src/components/unified-selection/Tree.test.tsx | Convert instance keys to colon notation before comparing with unified-selection results. |
| apps/full-stack-tests/src/components/properties/PropertyPaneDataProvider.test.ts | Update iModel insert helpers to dot-only and convert keys for unified-selection comparisons. |
| .changeset/shaggy-shoes-deny.md | Changeset documenting shared package breaking changes for dot-notation types. |
| .changeset/odd-lilies-sniff.md | Changeset documenting hierarchies package breaking changes for dot-notation types. |
Co-authored-by: JonasDov <100586436+JonasDov@users.noreply.github.com>
Closes #1453.