6.0 KiB
6.0 KiB
source_files, generated_at, model, schema_version, sha256
| source_files | generated_at | model | schema_version | sha256 | |
|---|---|---|---|---|---|
|
2026-04-16T04:41:58.215647+00:00 | Qwen/Qwen3-Coder-Next-FP8 | 1 | 673c2c087dd23a72 |
Classes
Purpose
This module defines the data model for system-level ISO-related configuration settings, specifically governing how ISO codes, user codes, and channel names are displayed and validated within the test setup UI. It enables runtime control over view modes (e.g., ISO-only, user-code-only, combined), enforces uniqueness constraints on ISO codes, and optionally validates test object and position fields during test setup validation—behavior that is configurable per site via system settings.
Public Interface
Properties
All properties implement INotifyPropertyChanged via inheritance from BasePropertyChanged, raising PropertyChanged events on change.
| Property | Type | Description |
|---|---|---|
ValidateTestObjectAndPosition |
bool |
Controls whether validation of TestObject and position ISO fields is performed during test setup validation. Enabled via site-specific system settings (see comment referencing issue #15457). |
UniqueISOCodesRequired |
bool |
If true, enforces that all ISO codes in the system must be unique. |
UniqueISOCodesRequiredAndShowISOCodes |
bool |
Computed property: true iff both UniqueISOCodesRequired and ShowISOCodes are true. |
ShowISOCodes |
bool |
Controls visibility of ISO codes in the UI. Setting to true adjusts ISOViewMode to include ISO codes (e.g., ISOAndUserCode or ISOOnly); setting to false removes ISO codes (e.g., UserCodeOnly or ChannelNameOnly). Raises PropertyChanged for multiple dependent properties (ShowISOStringBuilder, UniqueISOCodesRequired, UseISOCodeFilterMapping, UniqueISOCodesRequiredAndShowISOCodes). |
ShowUserCodes |
bool |
Controls visibility of user codes in the UI. Setting to true adjusts ISOViewMode to include user codes (e.g., ISOAndUserCode or UserCodeOnly); setting to false removes user codes. |
ShowISOStringBuilder |
bool |
Toggles visibility of the ISO string builder UI component. |
ShowChannelCodeLookupHelper |
bool |
Toggles visibility of the channel code lookup helper UI component. |
UseISOCodeFilterMapping |
bool |
Controls whether ISO code filter mapping logic is applied. |
ChannelNamesOnly |
bool |
If true, forces ISOViewMode to IsoViewMode.ChannelNameOnly. Setting to false has no effect (must be toggled via ShowISOCodes/ShowUserCodes). |
ISOViewMode |
IsoViewMode |
Enumerated view mode controlling which identifiers (ISO, user code, channel name) are displayed. Valid values inferred from usage: ChannelNameOnly, UserCodeOnly, ISOOnly, ISOAndUserCode. Changing this property raises PropertyChanged for ShowISOCodes, ShowUserCodes, and ChannelNamesOnly. |
Invariants
ISOViewModeis the canonical source of truth for UI display mode; all boolean view flags (ShowISOCodes,ShowUserCodes,ChannelNamesOnly) are derived from it.ShowISOCodesandShowUserCodesare not independent:ShowISOCodes == true⇒ISOViewMode ∈ {IsoViewMode.ISOOnly, IsoViewMode.ISOAndUserCode}ShowUserCodes == true⇒ISOViewMode ∈ {IsoViewMode.UserCodeOnly, IsoViewMode.ISOAndUserCode}
UniqueISOCodesRequiredAndShowISOCodesis logically consistent:trueonly when both operands aretrue.- Setting
ShowISOCodesorShowUserCodesmay mutateISOViewModeto maintain consistency; the reverse is not true—settingISOViewModedoes not mutateShowISOCodes/ShowUserCodes(they remain independent setters). ChannelNamesOnly = trueunconditionally setsISOViewMode = ChannelNameOnly;ChannelNamesOnly = falsehas no side effect.
Dependencies
- Imports/Usings:
DTS.Common.Enums→ ProvidesIsoViewModeenum.DTS.Common.Interface→ ProvidesIISOSettingsDatainterface (implementation contract).DTS.Common.Base.BasePropertyChanged→ Base class enabling property change notifications.
- Implied Consumers:
- UI components that bind to
ISOSettingsData(e.g., settings panels, test setup forms). - Validation logic that checks
ValidateTestObjectAndPositionduring test setup validation. - Code that enforces
UniqueISOCodesRequired(e.g., ISO code generation or persistence layers).
- UI components that bind to
- No internal dependencies on other modules beyond
DTS.Common.*.
Gotchas
- Asymmetric mutability: Setting
ChannelNamesOnly = falsehas no effect; the only way to exitChannelNameOnlymode is viaShowISOCodesorShowUserCodes. This may confuse developers expecting bidirectional control. - Side effects in setters:
ShowISOCodesandShowUserCodessetters mutateISOViewModeand raisePropertyChangedfor multiple dependent properties. This could cause cascading UI updates or unexpected re-evaluation of computed properties (e.g.,UniqueISOCodesRequiredAndShowISOCodes). UniqueISOCodesRequireddependency: The propertyUniqueISOCodesRequiredAndShowISOCodesis recomputed onShowISOCodeschanges, butUniqueISOCodesRequireditself has no validation logic in this class—enforcement must occur elsewhere.- Enum assumptions:
IsoViewModeis assumed to have at least four values (ChannelNameOnly,UserCodeOnly,ISOOnly,ISOAndUserCode), but the enum definition is not included in the source. - No validation in setters: Properties like
UniqueISOCodesRequiredaccept arbitraryboolvalues without runtime checks; invalid combinations (e.g.,UniqueISOCodesRequired = truebutShowISOCodes = false) are allowed and must be handled by consumers. - Commented issue reference: The
ValidateTestObjectAndPositionproperty’s comment references “site bool in system settings” and issue #15457—suggesting external configuration, but no source-level linkage is visible here.