Table of Contents

Class MethodBoundary

Namespace
Rinku.Mapping
Assembly
Rinku.dll

Uses a static method to decide whether the current row stays in the group. The method receives the stored key followed by values from the current row. It returns whether the group stays open and the key to store for the next row.

public sealed class MethodBoundary : GroupingBoundary
Inheritance
MethodBoundary
Inherited Members
Extension Methods

Constructors

MethodBoundary(MethodInfo, Type, IBoundaryField, IReadOnlyList<IBoundaryReader>)

Uses a static method to decide whether the current row stays in the group. The method receives the stored key followed by values from the current row. It returns whether the group stays open and the key to store for the next row.

public MethodBoundary(MethodInfo method, Type keyType, IBoundaryField key, IReadOnlyList<IBoundaryReader> parameters)

Parameters

method MethodInfo
keyType Type
key IBoundaryField
parameters IReadOnlyList<IBoundaryReader>

Properties

CanChange

Whether a later row can ever start a new group. false folds every row into one instance.

public override bool CanChange { get; }

Property Value

bool

Captures

Whether the boundary stores state captured on the group's first row.

public override bool Captures { get; }

Property Value

bool

PresenceColumn

The column whose DBNull marks the group absent for a left-joined sub level, or null when none.

public override int? PresenceColumn { get; }

Property Value

int?

Targets

Gets the bound values used by this boundary.

public override IEnumerable<(FieldInfo, object[])> Targets { get; }

Property Value

IEnumerable<(FieldInfo Field, object[] Targets)>

Methods

EmitCapture(Generator)

Writes the instructions that capture a key from the first row.

public override void EmitCapture(Generator g)

Parameters

g Generator

EmitCompare(Generator, Label)

Writes the instructions that branch to changed when a new group starts.

public override void EmitCompare(Generator g, Label changed)

Parameters

g Generator
changed Label