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 orPreferenceDatapropagate uncaught to the caller.Save()wraps all persistence calls in aTry/Catchand rethrows any exception asApplicationException("Unable to save preferences.", ex); itsBooleanreturn value is alwaysFalseand 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 thanClear()*.
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.
Related documentation¶
Sources¶
- SAIF.Presentation\clsPreferences.vb