Table of Contents

Class ExtremeRowDescription

Namespace
NextORM.Core
Assembly
nextorm.core.dll

A side-effect-free description of a prepared SelectWhereMax/SelectWhereMin command, handed to CanRender(ExtremeRowDescription) so a dialect can decide - before any SQL, alias or parameter side effect - whether its native strategy applies. An empty Groups list means the global form; a non-empty one the grouped form.

public sealed record ExtremeRowDescription : IEquatable<ExtremeRowDescription>
Inheritance
ExtremeRowDescription
Implements
Inherited Members
Extension Methods

Remarks

This is a read-only input constructed by the core and handed to an external IExtremeRowRenderer. Implementing a renderer means receiving instances through CanRender(ExtremeRowDescription). The eager constructor is part of the public contract: an external assembly without InternalsVisibleTo can construct one directly. Validation happens at construction - a null collection reference throws ArgumentNullException and a null element throws ArgumentException; Payload is never read to validate it. There is no SQL, provider, security or cardinality validation, and nothing calls CanRender(ExtremeRowDescription) or Render(ExtremeRowRenderRequest). The internal lazy factory constructor remains non-public and is the path core preparation uses.

Constructors

ExtremeRowDescription(bool, IReadOnlyList<ExtremeRowRenderColumn>, IReadOnlyList<ExtremeRowRenderColumn>, IReadOnlyList<ExtremeRowRenderColumn>)

Creates an eager description from already-materialized payload columns. Exposed so an external IExtremeRowRenderer can be exercised without a host that has internals access. The collections are borrowed, not copied.

public ExtremeRowDescription(bool isMax, IReadOnlyList<ExtremeRowRenderColumn> keys, IReadOnlyList<ExtremeRowRenderColumn> groups, IReadOnlyList<ExtremeRowRenderColumn> payload)

Parameters

isMax bool

true for a maximum, false for a minimum.

keys IReadOnlyList<ExtremeRowRenderColumn>

The extreme-key components in selector order. Must not be null.

groups IReadOnlyList<ExtremeRowRenderColumn>

The group-by components in selector order; empty for the global form. Must not be null.

payload IReadOnlyList<ExtremeRowRenderColumn>

The source payload columns. Must not be null and is not read during construction.

Exceptions

ArgumentNullException

A collection reference is null.

ArgumentException

A collection contains a null element.

Properties

Groups

The group-by components in selector order; empty for the global form.

public IReadOnlyList<ExtremeRowRenderColumn> Groups { get; }

Property Value

IReadOnlyList<ExtremeRowRenderColumn>

IsMax

true for a maximum (SelectWhereMax), false for a minimum.

public bool IsMax { get; }

Property Value

bool

Keys

The extreme-key components in selector order (composite keys have more than one).

public IReadOnlyList<ExtremeRowRenderColumn> Keys { get; }

Property Value

IReadOnlyList<ExtremeRowRenderColumn>

Payload

The source payload columns the winning row must expose, in mapping declaration order.

public IReadOnlyList<ExtremeRowRenderColumn> Payload { get; }

Property Value

IReadOnlyList<ExtremeRowRenderColumn>

Methods

Equals(ExtremeRowDescription?)

Indicates whether the current object is equal to another object of the same type.

public bool Equals(ExtremeRowDescription? other)

Parameters

other ExtremeRowDescription

An object to compare with this object.

Returns

bool

true if the current object is equal to the other parameter; otherwise, false.

GetHashCode()

Serves as the default hash function.

public override int GetHashCode()

Returns

int

A hash code for the current object.