---
title: PolicyAssociationExtensions
summary: API reference for PolicyAssociationExtensions.
status: draft
owner: SAIF Doc Gen
last_reviewed: 2026-07-31
library: SAIF.Business.View.Policy
reference_type: package
---

# PolicyAssociationExtensions

`PolicyAssociationExtensions` supplies the set operations consumers repeatedly need over associations: filter by type, project to policy numbers, test membership, pick out parents, and translate between the manual and non-manual forms of a type. Keeping these in one module means the parent-detection and manual-to-standard mapping rules are defined once rather than reimplemented per consumer.

## Purpose

- Filters an association sequence by association type and projects it to policy numbers.
- Identifies the parent side of a relationship and the parent association itself ([BR-015](../../business-rules.md#br-015-unrecognized-relationship-codes-are-classified-as-not-specified)).
- Maps a manual association type onto its non-manual equivalent ([BR-016](../../business-rules.md#br-016-manually-maintained-affiliations-are-distinguished-by-an-m-prefixed-code)).
- Converts an association type and parent flag into the equivalent affiliate type ([BR-016](../../business-rules.md#br-016-manually-maintained-affiliations-are-distinguished-by-an-m-prefixed-code)).

## Context

- Namespace: `SAIF.Business.View.Policy`
- Assembly/package: `SAIF.BOF.Business.View.Policy`
- Declared in: `Business/SAIF.Business.View.Policy/PolicyAssociations.vb`

## Public members

| Member | Signature | Purpose |
| --- | --- | --- |
| AssociationType | `Public Function AssociationType(ByVal Target As IEnumerable(Of PolicyAssociation), ByVal inAssociationType As AssociationTypes) As IEnumerable(Of PolicyAssociation)` | Filters an association sequence to one association type. |
| PolicyNumbers | `Public Function PolicyNumbers(ByVal Target As IEnumerable(Of PolicyAssociation)) As IEnumerable(Of Decimal)` | Projects an association sequence to the policy numbers it references. |
| Contains | `Public Function Contains(ByVal Target As IEnumerable(Of PolicyAssociation), ByVal inAssociationType As AssociationTypes) As Boolean` | Reports whether a sequence contains any association of a given type. |
| ToAffiliateType | `Public Function ToAffiliateType(ByRef Target As AssociationTypes, ByVal IsParent As Boolean) As clsPolicyData.AffiliateTypes` | Converts an association type and parent flag into the equivalent affiliate type ([BR-016](../../business-rules.md#br-016-manually-maintained-affiliations-are-distinguished-by-an-m-prefixed-code)). |
| IsParentPolicy | `Public Function IsParentPolicy(ByVal Target As IEnumerable(Of PolicyAssociation), ByVal inAssociationType As AssociationTypes, ByVal inPolicyNumber As Decimal) As Boolean` | Reports whether a given policy is the parent of a relationship of the supplied type ([BR-015](../../business-rules.md#br-015-unrecognized-relationship-codes-are-classified-as-not-specified)). |
| ParentPolicy | `Public Function ParentPolicy(ByVal Target As IEnumerable(Of PolicyAssociation), ByVal inAssociationType As AssociationTypes) As PolicyAssociation` | Returns the parent association of the supplied type, which is how the parent policy is located. |
| Parents | `Public Function Parents(ByVal Target As IEnumerable(Of PolicyAssociation)) As IEnumerable(Of PolicyAssociation)` | Returns only the parent-side associations in a sequence. |
| IsManual | `Public Function IsManual(ByVal target As AssociationTypes) As Boolean` | Reports whether an association type denotes a manually recorded relationship ([BR-016](../../business-rules.md#br-016-manually-maintained-affiliations-are-distinguished-by-an-m-prefixed-code)). |
| ToNonManual | `Public Function ToNonManual(ByVal target As AssociationTypes) As AssociationTypes` | Maps a manual association type onto its derived equivalent, so the two sources can be compared ([BR-016](../../business-rules.md#br-016-manually-maintained-affiliations-are-distinguished-by-an-m-prefixed-code)). |

> **Note:** Statements marked with `†` are derived from dependency library
> documentation via the Legends CLI. Statements marked with `*` were inferred
> from code structure or contextual evidence. Statements marked with `**` could
> not be confirmed; treat as unknown until verified.

## Sources

- `Business/SAIF.Business.View.Policy/PolicyAssociations.vb`
