Files
DP44/docs/ai/Common/DTS.Common/Classes/ISO.md
2026-04-17 14:55:32 -04:00

3.5 KiB

source_files, generated_at, model, schema_version, sha256
source_files generated_at model schema_version sha256
Common/DTS.Common/Classes/ISO/IsoCode.cs
2026-04-17T16:27:17.170851+00:00 zai-org/GLM-5-FP8 1 38189089a59088e0

ISO

Purpose

The IsoCode class provides a structured representation of a 16-character ISO code, breaking it down into discrete fields: TestObject (1 char), Position (1 char), MainLocation (4 chars), FineLocation1 (2 chars), FineLocation2 (2 chars), FineLocation3 (2 chars), PhysicalDimension (2 chars), Direction (1 char), and FilterClass (1 char). This class exists to parse, store, and reconstruct ISO codes used for identifying test objects and their spatial/dimensional attributes within the system.

Public Interface

Constructor:

  • IsoCode(string isoCode) — Constructs an IsoCode from a string. If null, treats as empty string. Truncates to 16 characters if longer; pads right with '?' if shorter.

Properties:

  • string TestObject — Gets/sets the single-character test object identifier. Defaults to '?' if set to null/empty.
  • string Position — Gets/sets the single-character position. Defaults to '?' if set to null/empty.
  • string MainLocation — Gets/sets the 4-character main location. Pads right with '?' if under 4 chars; truncates to 4 if over.
  • string FineLocation1 — Gets/sets the 2-character fine location 1. Pads right with '?' if under 2 chars.
  • string FineLocation2 — Gets/sets the 2-character fine location 2. Pads right with '?' if under 2 chars.
  • string FineLocation3 — Gets/sets the 2-character fine location 3. Pads right with '?' if under 2 chars.
  • string PhysicalDimension — Gets/sets the 2-character physical dimension. Pads right with '?' if under 2 chars; truncates to 2 if over.
  • string Direction — Gets/sets the single-character direction. Defaults to '?' if set to null/empty.
  • string FilterClass — Gets/sets the single-character filter class. Defaults to '?' if set to null/empty.
  • string StringRepresentation — Gets the full 16-character ISO code string, or sets all 16 internal characters from a string (pads with '0' if shorter).

Invariants

  • The internal _isoCodeFull character array is always exactly 16 characters.
  • All public property setters normalize input: single-character properties default to '?' on null/empty; multi-character properties pad with '?' or truncate to their fixed widths.
  • The constructor always produces a fully-initialized 16-character code.

Dependencies

  • Depends on: System.Text (for StringBuilder in StringRepresentation getter).
  • Depended on by: Not determinable from source alone.

Gotchas

  • Inconsistent padding characters: The constructor and public property setters pad with '?', but the StringRepresentation setter pads with '0'. This could cause unexpected behavior when reconstructing an IsoCode via StringRepresentation.
  • Potential off-by-one bugs in private setters: The private setters for _fineLocation1, _fineLocation2, _fineLocation3, and _physicalDimension use the condition value.Length < i instead of value.Length <= i. Since i starts at 0, this condition is always false for the first iteration, meaning the first character may not be set correctly when the input is shorter than expected.
  • Silent truncation: MainLocation and PhysicalDimension silently truncate input exceeding their field width; other fields do not have this behavior documented in the same way.