---
title: PolicyHeaderExtensions
summary: API reference for PolicyHeaderExtensions.
status: draft
owner: SAIF Documentation Generation
last_reviewed: 2026-07-31
library: SAIF.Application.Policy
reference_type: package
---

# PolicyHeaderExtensions

`PolicyHeaderExtensions` supplies the association-selection and filtering helpers that the policy-header subsystem uses to interpret raw association sequences. It centralizes the common extension methods for both `IPolicyAssociation` and `IPolicyHeaderAssociation` collections.

## Purpose
- Give header consumers concise operations for selecting association rows by type, category, or parent status.
- Mirror the same filtering vocabulary across both policy-association and header-association interfaces.

## Context
- Namespace: `SAIF.Application.Policy.PolicyHeader`
- Assembly/package: `SAIF.Application.Policy`

## Public members
| Member | Signature | Purpose |
| --- | --- | --- |
| `SelectedAssociations` | `Function SelectedAssociations(ByVal Target As IPolicyHeaderDataProvider, ByVal inSettings As IPolicyHeaderSettings) As IEnumerable(Of IPolicyHeaderAssociation)` | Returns the header associations that match the currently selected association type. |
| `DistinctPolicyAssociationTypes` | `Function DistinctPolicyAssociationTypes(ByVal Target As IPolicyHeaderDataProvider) As IEnumerable(Of IPolicyAssociationType)` | Returns the unique association types present in the header payload, ordered for display. |
| `HasAssociations` | `Function HasAssociations(ByVal Target As IEnumerable(Of IPolicyAssociation), ByVal inAssociationType As IPolicyAssociationType) As Boolean` | Reports whether any policy association exists for a specific type. |
| `HasAssociations` | `Function HasAssociations(ByVal Target As IEnumerable(Of IPolicyAssociation), ByVal inAssociationCategory As PolicyAssociationTypeCategories) As Boolean` | Reports whether any policy association exists in a specific category. |
| `GetAssociations` | `Function GetAssociations(ByVal Target As IEnumerable(Of IPolicyAssociation), ByVal inAssociationType As IPolicyAssociationType) As IEnumerable(Of IPolicyAssociation)` | Filters policy associations to a specific type. |
| `GetAssociations` | `Function GetAssociations(ByVal Target As IEnumerable(Of IPolicyAssociation), ByVal inAssociationCategory As PolicyAssociationTypeCategories) As IEnumerable(Of IPolicyAssociation)` | Filters policy associations to a specific category. |
| `Parents` | `Function Parents(ByVal Target As IEnumerable(Of IPolicyAssociation)) As IEnumerable(Of IPolicyAssociation)` | Returns only the policy-association rows marked as parents. |
| `GetAssociations` | `Function GetAssociations(ByVal Target As IEnumerable(Of IPolicyHeaderAssociation), ByVal inAssociationType As IPolicyAssociationType) As IEnumerable(Of IPolicyHeaderAssociation)` | Filters header associations to a specific type. |
| `GetAssociations` | `Function GetAssociations(ByVal Target As IEnumerable(Of IPolicyHeaderAssociation), ByVal inAssociationCategory As PolicyAssociationTypeCategories) As IEnumerable(Of IPolicyHeaderAssociation)` | Filters header associations to a specific category. |
| `HasAssociations` | `Function HasAssociations(ByVal Target As IEnumerable(Of IPolicyHeaderAssociation), ByVal inAssociationType As IPolicyAssociationType) As Boolean` | Reports whether any header association exists for a specific type. |
| `HasAssociations` | `Function HasAssociations(ByVal Target As IEnumerable(Of IPolicyHeaderAssociation), ByVal inAssociationCategory As PolicyAssociationTypeCategories) As Boolean` | Reports whether any header association exists in a specific category. |
| `Parents` | `Function Parents(ByVal Target As IEnumerable(Of IPolicyHeaderAssociation)) As IEnumerable(Of IPolicyHeaderAssociation)` | Returns only the header-association rows marked as parents. |

## Behavioral notes
- The header-association overloads mirror the policy-association overloads so callers can apply the same selection logic after projection.

## Constraints and usage notes
- The module assumes callers provide association sequences that already reflect the desired security and ownership filters.

## Sources
- `Application\SAIF.Application.Policy\PolicyAppManager.vb`
