---
title: clsInfoItemBase
summary: API reference for clsInfoItemBase.
status: draft
owner: SAIF
last_reviewed: 2026-07-24
library: SAIF.Business
reference_type: package
---

# clsInfoItemBase

`clsInfoItemBase` is a public base class in `SAIF.Business.ContactInfo` that stores active/primary flags, effective-dated lifecycle values, and note text for contact-related business objects.

## Purpose
- Supplies shared `IsActive` and `IsPrimary` flags for contact-related value objects.
- Stores effective date, expiration date, and note text through smart wrappers.
- Exposes null-check and null-set helpers for each lifecycle field.
- Provides `IDateRange` begin/end-date behavior for derived classes.

## Context
- Namespace: `SAIF.Business.ContactInfo`
- Assembly/package: `SAIF.Business`

## Public members
| Member | Signature | Purpose |
| --- | --- | --- |
| `IsActive` | `Public Property IsActive As Boolean` | Gets or sets whether the item is active. |
| `IsPrimary` | `Public Property IsPrimary As Boolean` | Gets or sets whether the item is the primary entry. |
| `EffectiveDate` | `Public Property EffectiveDate As Date Implements Framework.IDateRange.BeginDate` | Gets or sets the effective date. |
| `ExpirationDate` | `Public Property ExpirationDate As Date Implements Framework.IDateRange.EndDate` | Gets or sets the expiration date. |
| `NoteText` | `Public Property NoteText As String` | Gets or sets the note text. |
| `IsEffectiveDateNull` | `Public Function IsEffectiveDateNull() As Boolean Implements Framework.IDateRange.IsBeginDateNull` | Returns whether the effective date is stored as empty. |
| `IsExpirationDateNull` | `Public Function IsExpirationDateNull() As Boolean Implements Framework.IDateRange.IsEndDateNull` | Returns whether the expiration date is stored as empty. |
| `IsNoteTextNull` | `Public Function IsNoteTextNull() As Boolean` | Returns whether the note text is stored as empty. |
| `SetEffectiveDateNull` | `Public Sub SetEffectiveDateNull()` | Clears the effective date and marks the object dirty. |
| `SetExpirationDateNull` | `Public Sub SetExpirationDateNull()` | Clears the expiration date and marks the object dirty. |
| `SetNoteTextNull` | `Public Sub SetNoteTextNull()` | Clears the note text and marks the object dirty. |

## Behavioral notes
- `IsActive` and `IsPrimary` both default to `True` through their backing fields.
- Property setters call `MarkDirty()` only when the underlying smart value or Boolean flag actually changes.
- The null-set helpers call `SetEmpty()` on the underlying smart wrappers and then mark the object dirty.

## Constraints and usage notes
- Empty-state semantics come from `clsSmartDate` and `clsSmartString`, so callers should use the provided `Is...Null` and `Set...Null` helpers when they need to preserve that distinction.
- The source file does not add any public constructor overloads or validation rules; derived types are responsible for their own additional behavior.

## Sources
- `Business\SAIF.Business\ContactInfo\clsInfoItemBase.vb`
