Skip to content

SAIF.Presentation operations and processes

This page is the operation catalog and cross-operation hub for this library. Each operation's detailed, step-by-step logic lives in its own page under operations/.

Operation catalog

Operation Intent Trigger Inputs Outputs Rules Tables SQL
Load preferences for current user Populate the in-memory preference cache for the authenticated user Constructing a clsPreferences instance inUserID, inApplication (optional preferencesRootDirectory, ignored) Populated _Preferences list BR-PREF-005 N/A N/A
Read a preference value Retrieve a stored preference value by key/scope Consumer accesses the Item indexer Key, optional scope, optional explicit application/page Preference value (Object) or Nothing BR-PREF-001, BR-PREF-002 N/A N/A
Write or clear a preference value in memory Add, remove, or clear preference key-value pairs before saving Consumer calls Add, Remove, Clear, or Delete Key, value, optional scope Mutated in-memory _Preferences collection BR-PREF-001, BR-PREF-002 N/A N/A
Persist preferences Write accumulated in-memory preference changes to the Oracle-backed store Consumer calls Save() None (uses in-memory _Preferences and m_DPI) Boolean (always False); persisted rows in the Oracle preference store BR-PREF-003, BR-PREF-004 N/A N/A

Process flow diagram

The following diagram visualizes the primary operational flow across operations.

flowchart TD
    Start([Consumer constructs clsPreferences]) --> Load[Load preferences for current user]
    Load --> Read[Read a preference value]
    Load --> Write[Write or clear a preference value in memory]
    Write --> Save[Persist preferences via Save]
    Save --> Decision{Exception thrown?}
    Decision -->|Yes| EndErr([ApplicationException propagated])
    Decision -->|No| EndOk([Preferences persisted<br>return value always False])

Database interactions

The following table summarizes which operations read from or write to the database. Per-step SQL and table citations live in each operation's detail page under operations/.

Operation SQL Tables Type
Load preferences for current user N/A (delegated to PreferenceData, external library)** N/A Read
Persist preferences N/A (delegated to PreferenceData, external library)** N/A Write

Failure and edge-case behavior

  • Load() performs no error handling; exceptions from the Oracle data layer or PreferenceData propagate uncaught to the caller.
  • Save() wraps all persistence calls in a Try/Catch and rethrows any exception as ApplicationException("Unable to save preferences.", ex); its Boolean return value is always False and cannot be used to detect success (BR-PREF-004).
  • Delete() clears preference items across all loaded application groups for the user, not just the current application — broader in effect than Clear()*.

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.Presentation\clsPreferences.vb