Table of Contents

Class TransformationRule<T>

Namespace
NMF.Transformations
Assembly
NMF.Transformations.dll

Defines a simple transformation rule of a transformation that has one input argument and an output

public abstract class TransformationRule<T> : TransformationRuleBase<T> where T : class

Type Parameters

T

The type of the output

Inheritance
TransformationRule<T>
Inherited Members

Remarks

Simple means that the transformation rule does not require a custom computation class

Constructors

TransformationRule()

Creates a new transformation rule

public TransformationRule()

Properties

NeedDependenciesForOutputCreation

Gets a value indicating whether the output for all dependencies must have been created before this rule creates the output

public override bool NeedDependenciesForOutputCreation { get; }

Property Value

bool

Methods

CreateComputation(object[], IComputationContext)

Creates a new Computation instance for this transformation rule or the given input

public override sealed Computation CreateComputation(object[] input, IComputationContext context)

Parameters

input object[]

The input arguments for this computation

context IComputationContext

The context for this computation

Returns

Computation

A computation object

CreateOutput(object[], ITransformationContext)

Initializes the transformation output

public virtual T CreateOutput(object[] input, ITransformationContext context)

Parameters

input object[]

The input of the transformation rule

context ITransformationContext

The context (and trace!) object

Returns

T

Remarks

At this point, all the transformation outputs are created (also the delayed ones), thus, the trace is fully reliable

Transform(object[], T, ITransformationContext)

Creates the output of this transformation rule

public virtual void Transform(object[] input, T output, ITransformationContext context)

Parameters

input object[]

The input of the transformation rule

output T

The output of the transformation created previously

context ITransformationContext

The context (and trace!) object

Remarks

At this point, not all of the computations have created their output and thus, the trace is not complete. Use the OutputDelayLevel-feature to have the trace contain all elements created in earlier levels