Files
DP44/enriched-qwen3-coder-next/Common/DTS.Common/Classes/ISO/ExtraProperties.md
2026-04-17 14:55:32 -04:00

3.4 KiB
Raw Blame History

source_files, generated_at, model, schema_version, sha256
source_files generated_at model schema_version sha256
Common/DTS.Common/Classes/ISO/ExtraProperties/TextPastedArgs.cs
2026-04-16T03:18:29.951703+00:00 Qwen/Qwen3-Coder-Next-FP8 1 958951d2772f6a16

ExtraProperties

1. Purpose

TextPastedArgs is an immutable event argument class used to carry contextual data when a text-paste operation occurs on an extra property control within the ISO (likely Intelligent System Operator or similar domain) UI layer. It encapsulates the pasted text content, the originating extra property instance, a unique identifier for the operation, and an optional user-defined tag—enabling event subscribers to handle paste events with full context.

2. Public Interface

  • TextPastedArgs(string text, IExtraProperty extraProperty, string id, object tag)
    Constructor initializing all properties. Validates none of the parameters are null-checked in the constructor body (per source), but text and id are non-nullable reference types (C# 8+), implying callers must provide non-null values.

    • text: The string content being pasted.
    • extraProperty: The IExtraProperty instance that triggered the event (assigned to Sender).
    • id: A string identifier for the paste operation (e.g., correlation ID, control ID).
    • tag: An arbitrary object for caller-defined metadata.
  • string Text { get; }
    Immutable property containing the pasted text.

  • object Sender { get; }
    Immutable property referencing the IExtraProperty instance passed into the constructor (i.e., the source control).

  • string Id { get; }
    Immutable property holding the operation identifier.

  • object Tag { get; }
    Immutable property for user-defined contextual data.

3. Invariants

  • All properties are read-only (no setters); instances are fully immutable after construction.
  • Text and Id are expected to be non-null (as declared with non-nullable reference types), though the constructor does not enforce this at runtime.
  • Sender is always the exact IExtraProperty instance passed as the second constructor parameter.
  • Tag may be null (no constraints specified).

4. Dependencies

  • Depends on:
    • System (core types: string, object)
    • DTS.Common.Events (namespace, likely contains event-related infrastructure)
    • DTS.Common.Interface.ISO.ExtraProperties (specifically IExtraProperty interface)
  • Used by: Event handlers subscribed to paste events (e.g., ITextPastedEventArgs consumers), likely in UI components managing extra property controls.

5. Gotchas

  • No null-safety in constructor: While Text and Id are non-nullable reference types, the constructor does not validate inputs—passing null to text or id will compile (with warnings suppressed or ignored) but may cause runtime failures downstream.
  • Sender is misnamed: The property is named Sender but stores extraProperty (not a generic UI sender like a control). This may confuse developers expecting sender to be the UI element.
  • No validation of id uniqueness: The Id fields purpose is unclear without context—consumers must assume it is unique per operation or handle collisions.
  • Tag semantics undefined: The meaning of Tag is entirely caller-defined; no standard usage pattern is evident from this class alone.

None identified beyond the above.