Table of Contents

Class AssignReferenceRule<TSemanticElement, TReference>

Namespace
NMF.AnyText.Model
Assembly
NMF.AnyText.Core.dll

Denotes a rule that assigns the resolved value of a child rule to a certain property

public abstract class AssignReferenceRule<TSemanticElement, TReference> : ResolveRule<TSemanticElement, TReference> where TReference : class

Type Parameters

TSemanticElement

The type of the context element

TReference

The type of the property value

Inheritance
ResolveRule<TSemanticElement, TReference>
AssignReferenceRule<TSemanticElement, TReference>
Derived
Inherited Members

Properties

ApplyOverReplace

Indicates whether a replace rather than apply is required on update

protected override bool ApplyOverReplace { get; }

Property Value

bool

Feature

Gets the name of the feature that is assigned

protected abstract string Feature { get; }

Property Value

string

Methods

Apply(ParseContext, TSemanticElement, TReference)

Applies the given value to the provided context element

protected override void Apply(ParseContext context, TSemanticElement contextElement, TReference propertyValue)

Parameters

context ParseContext

the parse context in which this operation is performed

contextElement TSemanticElement

the element to which the value should be applied

propertyValue TReference

the value to apply

CanSynthesize(object, ParseContext, SynthesisPlan)

Determines whether the current rule can synthesize rule applications for the given semantic element

public override bool CanSynthesize(object semanticElement, ParseContext context, SynthesisPlan synthesisPlan)

Parameters

semanticElement object

the semantic element

context ParseContext

the context in which the rule is synthesized

synthesisPlan SynthesisPlan

the plan of the synthesis

Returns

bool

true, if a rule application can be synthesized, otherwise false

CreateSynthesisRequirements()

Creates a collection of requirements for synthesis

public override IEnumerable<SynthesisRequirement> CreateSynthesisRequirements()

Returns

IEnumerable<SynthesisRequirement>

A collection of synthesis requirements

GetValue(TSemanticElement, ParseContext)

Gets the value of the given property

protected abstract TReference GetValue(TSemanticElement semanticElement, ParseContext context)

Parameters

semanticElement TSemanticElement

the context element

context ParseContext

the parsing context

Returns

TReference

the property value

SetValue(TSemanticElement, TReference, ParseContext)

Gets called when the value changes

protected abstract void SetValue(TSemanticElement semanticElement, TReference propertyValue, ParseContext context)

Parameters

semanticElement TSemanticElement

the context element

propertyValue TReference

the property value

context ParseContext

the parsing context

Synthesize(object, ParsePosition, ParseContext)

Synthesizes a rule application for the given semantic element

public override RuleApplication Synthesize(object semanticElement, ParsePosition position, ParseContext context)

Parameters

semanticElement object
position ParsePosition

the parse position at which the element should be synthesized

context ParseContext

the parse context

Returns

RuleApplication

a rule application

Unapply(ParseContext, TSemanticElement, TReference)

Unapplies the given value to the provided context element

protected override void Unapply(ParseContext context, TSemanticElement contextElement, TReference propertyValue)

Parameters

context ParseContext

the parse context in which this operation is performed

contextElement TSemanticElement

the element to which the value should be unapplied

propertyValue TReference

the value to unapply