Skip to content

Retrieve claim application data

Retrieve() allows a caller to re-run subclass-specific data retrieval without changing the claim context — for example, refreshing a page after an external update. It only proceeds when the manager's context is valid; otherwise it takes no action.

Field Value
Operation ID OP-AC-03
Trigger Caller calls Retrieve() on an active ClaimAppManager subclass instance
Inputs Current manager state: ContextSet, SecurityRole, ClaimData
Outputs Refreshed subclass application data when the context is valid; no state change otherwise
Primary components ClaimAppManager.Retrieve, ClaimAppManager.OnValidContext, ClaimAppManager.OnRetrieve
Entry point Application\SAIF.Application.Claim\ClaimAppManager.vb

Steps

  1. Retrieve() reads the ValidContext accessor.
  2. Sub-step: ValidContext delegates to OnValidContext(), which this library overrides.

    Origin: The ValidContext accessor itself is defined by AppManagerBase in SAIF.Application. That library is documented in the previous format, so no per-operation page exists; see Context validity check in the SAIF.Application documentation set. 2. OnValidContext() returns true only when all three hold: ContextSet is true, SecurityRole is not AppSecurityRole.NoAccess, and ClaimData.IsValid is true (BR-005). 3. If ValidContext is true: Retrieve() calls OnRetrieve(), which is abstract in ClaimAppManager and implemented by the concrete subclass to reload its application-specific data. 4. If ValidContext is false: Retrieve()'s If block is skipped entirely; no retrieval occurs. 5. Retrieve() is declared as a Function returning Boolean, but neither branch assigns a value to the function's return variable or executes an explicit Return statement. As a result, Retrieve() always yields the CLR default value (False) regardless of whether OnRetrieve() ran and succeeded.*

Process flow

The following diagram visualizes the context-validity gate that controls whether retrieval executes.

flowchart TD
    Start([Caller invokes Retrieve]) --> Check{ValidContext?<br>ContextSet AND<br>SecurityRole not NoAccess AND<br>ClaimData.IsValid}
    Check -->|Yes| Run[OnRetrieve in subclass]
    Check -->|No| Skip([No retrieval performed])
    Run --> Return([Function returns False<br>regardless of outcome])
    Skip --> Return

Failure and edge-case behavior

  • When the context is not set, the claim data is invalid, or the security role is NoAccess, Retrieve() silently does nothing — it does not raise an error or change Message (BR-005).
  • Retrieve() never returns True, even on a successful retrieval, because no branch assigns its return value; callers cannot use the return value to detect whether OnRetrieve() executed or succeeded.*
  • OnRetrieve() has no base-class implementation to fall back on; a subclass that does not override it silently performs no retrieval work even when ValidContext is true.*

Note: Statements marked with * were inferred from code structure, naming conventions, or contextual evidence where direct confirmation was not available in source artifacts.

Sources

  • Application\SAIF.Application.Claim\ClaimAppManager.vb