Table of Contents

Class S128ProductEntry

Namespace
EncDotNet.S100.Datasets.S128
Assembly
EncDotNet.S100.Datasets.S128.dll

A strongly-typed façade over a navigational-product S128Feature (one of ElectronicProduct, PhysicalProduct, S100Service).

public sealed class S128ProductEntry
Inheritance
S128ProductEntry
Inherited Members

Remarks

S-128 catalogues describe individual nautical products. This façade exposes the most commonly queried attributes — product number, edition, currency status, coverage geometry, and outgoing references — without forcing callers to traverse the underlying S128Feature directly.

Currency status is heuristic: S-128 2.0.0 has no single status enumeration on a product feature, so Status is derived from serviceStatus (S100Service), the presence of a theReference arcrole indicating supersession, and edition/update dates. See the project README for the full heuristic.

Constructors

S128ProductEntry(S128Feature)

Initializes a new entry over the given product-class feature.

public S128ProductEntry(S128Feature feature)

Parameters

feature S128Feature

Exceptions

ArgumentException

Thrown when feature is not one of the navigational product feature types.

Properties

Classification

The catalogue element classification text (S-128 § 12 catalogueElementClassification).

public string? Classification { get; }

Property Value

string

CoverageRing

Coverage exterior ring of the entry's first surface geometry, or an empty array if the feature is geometry-less.

public IReadOnlyList<GeoPosition> CoverageRing { get; }

Property Value

IReadOnlyList<GeoPosition>

EditionNumber

The product edition number (S-128 § 12 attribute editionNumber).

public string? EditionNumber { get; }

Property Value

string

Feature

The underlying parsed feature.

public S128Feature Feature { get; }

Property Value

S128Feature

FeatureType

The feature class (ElectronicProduct | PhysicalProduct | S100Service).

public string FeatureType { get; }

Property Value

string

Id

The feature's gml:id.

public string Id { get; }

Property Value

string

IssueDate

The product issue date (ISO 8601).

public string? IssueDate { get; }

Property Value

string

NotForNavigation

True when the feature carries notForNavigation = "true".

public bool NotForNavigation { get; }

Property Value

bool

ProductFeatureTypes

The set of FC feature-type codes that represent navigational products.

public static IReadOnlySet<string> ProductFeatureTypes { get; }

Property Value

IReadOnlySet<string>

ProductNumber

The product number or dataset name carried by the feature (productNumber if present, otherwise datasetName).

public string? ProductNumber { get; }

Property Value

string

ProductSpecificationName

The referenced product specification (e.g. "S-101", "S-104", "S-57") parsed from the productSpecification/name complex sub-attribute.

public string? ProductSpecificationName { get; }

Property Value

string

ProductSpecificationVersion

The version of the referenced product specification (e.g. "1.4.1"), parsed from the productSpecification/version complex sub-attribute. (S-128 § 12.)

public string? ProductSpecificationVersion { get; }

Property Value

string

ReferencedProducts

Outgoing references that mark this entry as superseded by another (theReference with arcrole containing "theReference" and a ProductMapping/categoryOfProductMapping of 1).

public IEnumerable<S128XlinkReference> ReferencedProducts { get; }

Property Value

IEnumerable<S128XlinkReference>

Remarks

In the IHO 2.0.0 sample the link is encoded inline as <S128:theReference xlink:href="#ID0002" .../><ProductMapping>...</ProductMapping>; we surface the href list and leave caller-side mapping interpretation to the caller.

Status

Heuristic currency status of the product. See type remarks.

public S128ProductStatus Status { get; }

Property Value

S128ProductStatus

UpdateDate

The product update / edition date.

public string? UpdateDate { get; }

Property Value

string

UpdateNumber

The product update number (S-128 § 12 attribute updateNumber).

public string? UpdateNumber { get; }

Property Value

string

Methods

IsProductFeature(S128Feature)

Returns true if the given feature is a catalogue product entry.

public static bool IsProductFeature(S128Feature feature)

Parameters

feature S128Feature

Returns

bool