Repository navigation
Audit HasIdentifier usage and complete Identifiers.java #433
Description
Summary
PR #432 introduced Identifiers.java with 20 static constants covering the configuration finder columns and items. This issue tracks a comprehensive audit of all HasIdentifier usage across the halOP codebase to ensure Identifiers.java is complete.
Background
halOP has two element identification mechanisms for the dave test suite:
| Mechanism | Source | Dave sync | Selector | Use case |
|---|---|---|---|---|
| OUIA IDs | OuiaIds.java |
pnpm sync:ouia → ids.ts |
[data-ouia-component-id="..."] |
Buttons, badges, modals, form items, toolbars |
| Identifiers | Identifiers.java |
pnpm sync:identifiers → identifiers.ts |
[data-identifier="..."] |
FinderColumns, FinderItems, Breadcrumbs, Tabs, TreeViewItems, DataListItems |
Identifiers.java currently has constants for configuration finder columns/items, breadcrumb root, and tasks. But many more PFJ components implement HasIdentifier and are used throughout halOP.
Tasks
1. Audit PFJ HasIdentifier components used in halOP
Using Serena's code intelligence, trace all instantiations of PFJ components that implement HasIdentifier:
BreadcrumbItem— used in ResourceBreadcrumb, TasksPageDataListItem— used in ResourceListFinderColumn,FinderItem— used in configuration finderFormGroup— used in DefaultFormItemMenuItem— used in filter dropdowns, resource menusNavigationItem— used in sidebar navigationTab— used in ResourceTabsTreeViewItem— used in ModelBrowserEngineTr(table row) — used in attribute/operations tables- Others:
Label,Alert,ToolbarItem,AccordionItem, etc.
2. Classify identifier values
For each usage, determine:
- Static — identifier known at compile time → add constant to
Identifiers.java - Dynamic — derived from runtime data → covered by
buildIdentifier()orfromTemplate() - Not needed — internal component, not a test target
3. Add missing constants to Identifiers.java
Add static constants for all identifiers that dave tests would need to target. Keep the flat sorted format matching OuiaIds.java.
4. Verify AddressTemplate.identifier() delegation
PR #432 changed AddressTemplate.identifier() to delegate to Identifiers.fromTemplate(). Verify this doesn't break any existing behavior (same logic, just centralized).
Acceptance Criteria
- All PFJ
HasIdentifierusages in halOP are audited - All static identifiers are centralized in
Identifiers.java - Dynamic identifier conventions are documented in
Identifiers.javaJavadoc -
AddressTemplate.identifier()delegates toIdentifiers.fromTemplate() - dave's
pnpm sync:identifierssuccessfully picks up all constants
Related
- Enhance testability with comprehensive OUIA support #428 — Enhance testability with comprehensive OUIA support
- PR feat: add and complete Identifiers.java for HasIdentifier contract with dave #432 — Initial
Identifiers.javawith configuration finder constants
Activity
hpehl commentedon Oct 20, 2026
Resolved in commit 0bbee72 on the
identifiersbranch.All acceptance criteria completed:
feat: complete Identifiers.java with all static HasIdentifier constan…