Files

53 lines
3.2 KiB
Markdown
Raw Permalink Normal View History

2026-04-17 14:55:32 -04:00
---
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.