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
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
IComputationContextThe 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
ITransformationContextThe 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
TThe output of the transformation created previously
context
ITransformationContextThe 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