53 lines
3.2 KiB
Markdown
53 lines
3.2 KiB
Markdown
---
|
|
source_files:
|
|
- Common/DTS.Common/Enums/Channels/ChannelCodeType.cs
|
|
generated_at: "2026-04-16T03:21:26.344972+00:00"
|
|
model: "Qwen/Qwen3-Coder-Next-FP8"
|
|
schema_version: 1
|
|
sha256: "bc6b8c24b93cadcb"
|
|
---
|
|
|
|
# Channels
|
|
|
|
## 1. Purpose
|
|
This module defines shared enumerations and constants related to channel code types within the DTS system. It serves as a centralized source of truth for identifying and validating channel codes—specifically distinguishing between standardized ISO 13499 codes and custom user-defined codes—ensuring consistency across modules that handle channel identification, serialization, or validation.
|
|
|
|
## 2. Public Interface
|
|
The module exposes a single nested `enum` and four `public const` fields within the `ChannelEnumsAndConstants` class:
|
|
|
|
- **`ChannelCodeType`** (`enum`)
|
|
A two-valued enumeration indicating the type of channel code:
|
|
- `ISO` — Represents a channel code conforming to the ISO 13499 standard.
|
|
- `User` — Represents a user-defined (non-standardized) channel code.
|
|
|
|
- **`IsoCodeTypeString`** (`public const string`)
|
|
Value: `"ISO 13499"`
|
|
Used as a human-readable identifier for the ISO channel code type.
|
|
|
|
- **`UserCodeTypeString`** (`public const string`)
|
|
Value: `"User"`
|
|
Used as a human-readable identifier for the user-defined channel code type.
|
|
|
|
- **`ISO_CODE_LENGTH`** (`public const int`)
|
|
Value: `16`
|
|
Specifies the expected fixed length (in characters) of an ISO channel code.
|
|
|
|
- **`USER_CODE_LENGTH`** (`public const int`)
|
|
Value: `50`
|
|
Specifies the maximum allowed length (in characters) of a user-defined channel code.
|
|
|
|
## 3. Invariants
|
|
- Any channel code of type `ChannelCodeType.ISO` must be exactly `ISO_CODE_LENGTH` (16) characters long.
|
|
- Any channel code of type `ChannelCodeType.User` must be no longer than `USER_CODE_LENGTH` (50) characters.
|
|
- The string values of `IsoCodeTypeString` and `UserCodeTypeString` are immutable and intended for display or serialization purposes only.
|
|
- The `ChannelCodeType` enum values (`ISO`, `User`) are exhaustive and mutually exclusive; no other code types are defined in this module.
|
|
|
|
## 4. Dependencies
|
|
- **No external dependencies**: The file contains no `using` directives and defines all its members inline.
|
|
- **Used by**: Based on naming and structure, this module is likely referenced by higher-level components handling channel configuration, data import/export, or validation logic (e.g., in `DTS.Common` or downstream projects), though no explicit consumers are visible in the provided source.
|
|
|
|
## 5. Gotchas
|
|
- The `ChannelCodeType` enum is defined *inside* the `ChannelEnumsAndConstants` class (not as a top-level type), so consumers must reference it as `ChannelEnumsAndConstants.ChannelCodeType`.
|
|
- `USER_CODE_LENGTH` defines a *maximum* length (≤50), whereas `ISO_CODE_LENGTH` defines an *exact* length (=16); validation logic must respect this distinction.
|
|
- The constants `IsoCodeTypeString` and `UserCodeTypeString` are string literals—not enum-based—so string comparisons (e.g., `codeTypeString == ChannelEnumsAndConstants.IsoCodeTypeString`) may be error-prone; prefer using the `ChannelCodeType` enum where possible.
|
|
- None identified from source alone. |