Skip to content

Populate an imaging-import descriptor for distribution

Populates an imaging-import descriptor on demand: the caller-side clsPrint.ImportInfo property lazily constructs a clsImageImport instance, delegating construction into this library so that BR-IMG-008 construction-time defaults are applied before the descriptor is returned.

This is a cross-library operation. The trigger and caching originate in SAIF.Services.Printing (clsPrint.vb), while the descriptor's default-value initialization is owned by this library (clsImageImport.vb).

Field Value
Operation ID op-img-002-populate-import-descriptor
Trigger Caller (print/distribution flow) accesses the clsPrint.ImportInfo property getter
Inputs None (lazy instance creation)
Outputs Initialized clsImageImport instance held on clsPrint.m_ImportInfo, with BR-IMG-008 defaults applied
Primary components clsPrint.ImportInfo getter (SAIF.Services.Printing) → clsImageImport constructor/property initializers (SAIF.Services.Imaging.Import)
Entry point SAIF.Services.Printing/clsPrint.vb (ImportInfo property, lines ~76–85)

Steps

  1. [SAIF.Services.Printing — caller] Caller reads the ImportInfo property on a clsPrint instance.
  2. [SAIF.Services.Printing — caller] The getter checks If m_ImportInfo Is Nothing Then as a lazy-init guard; this check is plumbing local to clsPrint.vb and is not governed by an imaging business rule.
  3. [SAIF.Services.Printing — caller] → [SAIF.Services.Imaging.Import — descriptor, delegated] On first access, the getter executes m_ImportInfo = New clsImageImport, delegating construction into this library.
  4. [SAIF.Services.Imaging.Import — descriptor] clsImageImport property initializers apply construction-time defaults: ImageIndexFlag="Y", ImageFileCode="CLAIM", NPages=1, DocumentDateDays=7, TaskPriority="MED", SystemGeneratedFlag="Y", PolicySecuredFlag="N" — BR-IMG-008.
  5. [SAIF.Services.Printing — caller] The getter returns m_ImportInfo (newly constructed or cached) to the caller.
  6. [SAIF.Services.Printing — caller] Subsequent accesses on the same clsPrint instance return the cached descriptor directly — no re-construction and no re-application of the BR-IMG-008 defaults occurs.

Process flow

The following diagram visualizes this operation's control flow, with the two owning libraries separated into subgraphs to make the cross-library boundary explicit.

flowchart TD
    subgraph Caller["SAIF.Services.Printing"]
        Start(["Caller accesses<br>clsPrint.ImportInfo"]) --> A{"m_ImportInfo<br>Is Nothing?"}
        A -->|Yes| B["clsPrint: New<br>clsImageImport()"]
        D["clsPrint: cache result<br>in m_ImportInfo"] --> End(["Return clsImageImport<br>instance to caller"])
        A -->|No| End
    end
    subgraph Descriptor["SAIF.Services.Imaging.Import"]
        C["clsImageImport: apply<br>construction-time defaults<br>(BR-IMG-008)"]
    end
    B --> C
    C --> D

Failure and edge-case behavior

  • No exception handling exists in the ImportInfo getter; the lazy-construction path always succeeds.
  • The BR-IMG-008 defaults are applied exactly once per clsPrint instance lifetime; a reused instance that needs fresh defaults must have ImportInfo explicitly reset via the setter, since no built-in reset mechanism exists.*
  • The ImportInfo setter allows a caller to bypass BR-IMG-008 defaults entirely by assigning a pre-built or externally sourced clsImageImport instance — the rule is therefore not universally guaranteed for every value later read from ImportInfo.*

Note: Statements marked with * were inferred from code structure, naming conventions, or contextual evidence where direct confirmation was not available in source artifacts. Statements marked with ** could not be confirmed; treat as unknown until verified.

Sources

  • SAIF.Services.Printing/clsPrint.vb
  • SAIF.Services.Imaging.Import/clsImageImport.vb