Search Results for

    Show / Hide Table of Contents

    Class Modifier

    Since AST Nodes are read-only, modifying an AST means copying (parts) the tree to a new tree with the nodes requiring modification being replaced. This visitor implementation aids building new AST trees by copying from exisiting and replacing modified nodes through delegation to another visitor.

    Inheritance
    System.Object
    Visitor
    Modifier
    Inherited Members
    Visitor.VisitAndConvert<T>(T)
    System.Object.ToString()
    System.Object.Equals(System.Object)
    System.Object.Equals(System.Object, System.Object)
    System.Object.ReferenceEquals(System.Object, System.Object)
    System.Object.GetHashCode()
    System.Object.GetType()
    System.Object.MemberwiseClone()
    Namespace: TimeCockpit.Data.QueryLanguage.Syntax
    Assembly: TimeCockpit.Data.dll
    Syntax
    public class Modifier : Visitor

    Constructors

    Modifier(Visitor)

    Initializes a new instance of the Modifier class.

    Declaration
    public Modifier(Visitor replacementVisitor)
    Parameters
    Type Name Description
    Visitor replacementVisitor

    The visitor producing replacements.

    Methods

    VisitAggregationFunctionCall(AggregationFunctionCall)

    Visits an AggregationFunctionCall AST node.

    Declaration
    public override Expression VisitAggregationFunctionCall(AggregationFunctionCall aggregateFunctionCall)
    Parameters
    Type Name Description
    AggregationFunctionCall aggregateFunctionCall

    The AggregateFunction call to visit.

    Returns
    Type Description
    Expression

    Returns a new AST Node Expression if modified, or the existing aggregateFunctionCall if no modification occurred.

    Overrides
    Visitor.VisitAggregationFunctionCall(AggregationFunctionCall)

    VisitBackReferenceSource(BackReferenceSource)

    Visits a BackReferenceSource AST node.

    Declaration
    public override QuerySource VisitBackReferenceSource(BackReferenceSource backReferenceSource)
    Parameters
    Type Name Description
    BackReferenceSource backReferenceSource

    The back reference source to visit.

    Returns
    Type Description
    QuerySource

    Returns the value returned by the replacement visitor.

    Overrides
    Visitor.VisitBackReferenceSource(BackReferenceSource)

    VisitBinaryExpression(BinaryExpression)

    Visits a BinaryExpression.

    Declaration
    public override Expression VisitBinaryExpression(BinaryExpression binaryExpression)
    Parameters
    Type Name Description
    BinaryExpression binaryExpression

    The binary expression to visit / modify.

    Returns
    Type Description
    Expression

    Returns a new BinaryExpression or the existing binaryExpression parameter if no modification occurred.

    Overrides
    Visitor.VisitBinaryExpression(BinaryExpression)

    VisitBooleanConstant(BooleanConstant)

    Visits a BooleanConstant AST node.

    Declaration
    public override Expression VisitBooleanConstant(BooleanConstant booleanConstant)
    Parameters
    Type Name Description
    BooleanConstant booleanConstant

    The null constant to visit.

    Returns
    Type Description
    Expression

    Returns the value returned by the replacement visitor.

    Overrides
    Visitor.VisitBooleanConstant(BooleanConstant)

    VisitDateConstant(DateConstant)

    Visits a DateConstant AST node.

    Declaration
    public override Expression VisitDateConstant(DateConstant dateConstant)
    Parameters
    Type Name Description
    DateConstant dateConstant

    The date constant to visit.

    Returns
    Type Description
    Expression

    Returns the value returned by the replacement visitor.

    Overrides
    Visitor.VisitDateConstant(DateConstant)

    VisitDateTimeConstant(DateTimeConstant)

    Visits a DateTimeConstant AST node.

    Declaration
    public override Expression VisitDateTimeConstant(DateTimeConstant dateTimeConstant)
    Parameters
    Type Name Description
    DateTimeConstant dateTimeConstant

    The DateTimeConstant to visit.

    Returns
    Type Description
    Expression

    Returns the value returned by the replacement visitor.

    Overrides
    Visitor.VisitDateTimeConstant(DateTimeConstant)

    VisitDeadOfSource(DeadOfSource)

    Calls the replacement visitor to determine if the dead of source should be replaced.

    Declaration
    public override QuerySource VisitDeadOfSource(DeadOfSource deadOfSource)
    Parameters
    Type Name Description
    DeadOfSource deadOfSource

    The deadOfSource to check.

    Returns
    Type Description
    QuerySource

    Returns the (possibly modified) query source.

    Overrides
    Visitor.VisitDeadOfSource(DeadOfSource)

    VisitDecimalConstant(DecimalConstant)

    Visits a DecimalConstant AST node.

    Declaration
    public override Expression VisitDecimalConstant(DecimalConstant decimalConstant)
    Parameters
    Type Name Description
    DecimalConstant decimalConstant

    The decimal constant to visit.

    Returns
    Type Description
    Expression

    Returns the value returned by the replacement visitor.

    Overrides
    Visitor.VisitDecimalConstant(DecimalConstant)

    VisitEntitySource(EntitySource)

    Visits a EntitySource AST Node.

    Declaration
    public override QuerySource VisitEntitySource(EntitySource queryTableSource)
    Parameters
    Type Name Description
    EntitySource queryTableSource

    The query table source to visit.

    Returns
    Type Description
    QuerySource

    Returns a new instance of the queryTableSource or queryTableSource itself, if no modification occurred.

    Overrides
    Visitor.VisitEntitySource(EntitySource)

    VisitEntitySourceIncludeConditional(EntitySourceIncludeConditional)

    Visits a EntitySourceIncludeConditional AST node.

    Declaration
    public override EntitySourceInclude VisitEntitySourceIncludeConditional(EntitySourceIncludeConditional includeConditional)
    Parameters
    Type Name Description
    EntitySourceIncludeConditional includeConditional

    The conditional include to visit.

    Returns
    Type Description
    EntitySourceInclude

    Returns a new instance of the includeConditional or includeCoditional itself, if no modification occurred.

    Overrides
    Visitor.VisitEntitySourceIncludeConditional(EntitySourceIncludeConditional)

    VisitEntitySourceIncludeRelation(EntitySourceIncludeRelation)

    Visits a EntitySourceIncludeRelation AST node.

    Declaration
    public override EntitySourceInclude VisitEntitySourceIncludeRelation(EntitySourceIncludeRelation includeRelation)
    Parameters
    Type Name Description
    EntitySourceIncludeRelation includeRelation

    The AST node to visit.

    Returns
    Type Description
    EntitySourceInclude

    Returns the new / unmodified instance of the EntitySourceIncludeRelation AST node.

    Overrides
    Visitor.VisitEntitySourceIncludeRelation(EntitySourceIncludeRelation)

    VisitExplicitSet(ExplicitSet)

    Visits a ExplicitSet AST node.

    Declaration
    public override Set VisitExplicitSet(ExplicitSet explicitSet)
    Parameters
    Type Name Description
    ExplicitSet explicitSet

    The null constant to visit.

    Returns
    Type Description
    Set

    Returns the value returned by the replacement visitor.

    Overrides
    Visitor.VisitExplicitSet(ExplicitSet)

    VisitFunctionCall(FunctionCall)

    Visits a FunctionCall AST Node.

    Declaration
    public override Expression VisitFunctionCall(FunctionCall functionCall)
    Parameters
    Type Name Description
    FunctionCall functionCall

    The functionCall AST node to visit / possibly modify..

    Returns
    Type Description
    Expression

    Returns a new FunctionCall or the functionCall parameter itself, if no modification occurred.

    Overrides
    Visitor.VisitFunctionCall(FunctionCall)

    VisitGuidConstant(GuidConstant)

    Visits a GuidConstant AST node.

    Declaration
    public override Expression VisitGuidConstant(GuidConstant guidConstant)
    Parameters
    Type Name Description
    GuidConstant guidConstant

    The guid constant to visit.

    Returns
    Type Description
    Expression

    Returns the value returned by the replacement visitor.

    Overrides
    Visitor.VisitGuidConstant(GuidConstant)

    VisitHasChangedFunction(HasChangedFunction)

    Visits a HasChangedFunction.

    Declaration
    public override Expression VisitHasChangedFunction(HasChangedFunction hasChangedFunction)
    Parameters
    Type Name Description
    HasChangedFunction hasChangedFunction

    The HasChangedFunction to visit.

    Returns
    Type Description
    Expression

    Returns the possibly modified expression.

    Overrides
    Visitor.VisitHasChangedFunction(HasChangedFunction)

    VisitMemberAccess(MemberAccess)

    Visits a MemberAccess AST node.

    Declaration
    public override Expression VisitMemberAccess(MemberAccess memberAccess)
    Parameters
    Type Name Description
    MemberAccess memberAccess

    The null constant to visit.

    Returns
    Type Description
    Expression

    Returns the value returned by the replacement visitor.

    Overrides
    Visitor.VisitMemberAccess(MemberAccess)

    VisitMemberDeclarationForwarded(MemberDeclarationForwarded)

    Visits the MemberDeclarationForwarded AST node.

    Declaration
    public override MemberDeclaration VisitMemberDeclarationForwarded(MemberDeclarationForwarded forwarded)
    Parameters
    Type Name Description
    MemberDeclarationForwarded forwarded

    The forwarded member declaration to visit / modify.

    Returns
    Type Description
    MemberDeclaration

    Returns a new instance of the MemberDeclarationForwarded AST node or forwarded itself, if no modification occurred.

    Overrides
    Visitor.VisitMemberDeclarationForwarded(MemberDeclarationForwarded)

    VisitMemberDeclarationNamedExpression(MemberDeclarationNamedExpression)

    Visits a MemberDeclarationNamedExpression AST node.

    Declaration
    public override MemberDeclaration VisitMemberDeclarationNamedExpression(MemberDeclarationNamedExpression namedExpression)
    Parameters
    Type Name Description
    MemberDeclarationNamedExpression namedExpression

    The named expression to visit / modify.

    Returns
    Type Description
    MemberDeclaration

    Returns a new MemberDeclarationNamedExpression or the namedExpression parameter if no modification occurred.

    Overrides
    Visitor.VisitMemberDeclarationNamedExpression(MemberDeclarationNamedExpression)

    VisitMemberDeclaratorNamedIdentifier(MemberDeclarationNamedIdentifier)

    Visits the MemberDeclarationNamedIdentifier AST node.

    Declaration
    public override MemberDeclaration VisitMemberDeclaratorNamedIdentifier(MemberDeclarationNamedIdentifier namedIdentifier)
    Parameters
    Type Name Description
    MemberDeclarationNamedIdentifier namedIdentifier

    The named identifier to visit / modify.

    Returns
    Type Description
    MemberDeclaration

    Returns a the result of the replacementVisitor call to VisitAndConvert<T>(T).

    Overrides
    Visitor.VisitMemberDeclaratorNamedIdentifier(MemberDeclarationNamedIdentifier)

    VisitNamedSetReference(NamedSetReference)

    Visits a NamedSetReference AST node.

    Declaration
    public override Set VisitNamedSetReference(NamedSetReference namedSetReference)
    Parameters
    Type Name Description
    NamedSetReference namedSetReference

    The named set reference to visit.

    Returns
    Type Description
    Set

    Returns the value returned by the replacement visitor.

    Overrides
    Visitor.VisitNamedSetReference(NamedSetReference)

    VisitNull(NullConstant)

    Visits a NullConstant AST node.

    Declaration
    public override Expression VisitNull(NullConstant nullConstant)
    Parameters
    Type Name Description
    NullConstant nullConstant

    The null constant to visit.

    Returns
    Type Description
    Expression

    Returns the value returned by the replacement visitor.

    Overrides
    Visitor.VisitNull(NullConstant)

    VisitOrderBy(OrderBy)

    Visits an OrderBy.

    Declaration
    public override OrderBy VisitOrderBy(OrderBy orderBy)
    Parameters
    Type Name Description
    OrderBy orderBy

    The orderBy to modify / visit.

    Returns
    Type Description
    OrderBy

    Returns a new OrderBy if modified, the existing modify otherwise.

    Overrides
    Visitor.VisitOrderBy(OrderBy)

    VisitOrderByExpression(OrderByExpression)

    Visits an orderby expression.

    Declaration
    public override OrderByExpression VisitOrderByExpression(OrderByExpression orderBy)
    Parameters
    Type Name Description
    OrderByExpression orderBy

    The orderBy expression to visit / modify.

    Returns
    Type Description
    OrderByExpression

    Returns a new OrderByExpression if it was modified, the existing orderBy AST node is returned otherwise.

    Overrides
    Visitor.VisitOrderByExpression(OrderByExpression)

    VisitParameter(Parameter)

    Visits a Parameter AST node.

    Declaration
    public override Expression VisitParameter(Parameter parameter)
    Parameters
    Type Name Description
    Parameter parameter

    The null constant to visit.

    Returns
    Type Description
    Expression

    Returns the value returned by the replacement visitor.

    Overrides
    Visitor.VisitParameter(Parameter)

    VisitQuery(Query)

    Visits a query. Calls the replacementVisitor and a modified instance of query if necessary.

    Declaration
    public override Query VisitQuery(Query query)
    Parameters
    Type Name Description
    Query query

    The query to modify.

    Returns
    Type Description
    Query

    Returns a new Query if it has been modified, the existing query otherwise.

    Overrides
    Visitor.VisitQuery(Query)

    VisitQueryOptions(QueryOptions)

    visits a QueryOptions AST node.

    Declaration
    public override QueryOptions VisitQueryOptions(QueryOptions queryOptions)
    Parameters
    Type Name Description
    QueryOptions queryOptions

    The QueryOptions object to visit / modify.

    Returns
    Type Description
    QueryOptions

    Returns the value returned by the call to VisitAndConvert<T>(T) on TimeCockpit.Data.QueryLanguage.Syntax.Modifier.replacementVisitor.

    Overrides
    Visitor.VisitQueryOptions(QueryOptions)

    VisitSelectAlias(SelectAlias)

    Calls the replacement visitor for the select alias.

    Declaration
    public override Select VisitSelectAlias(SelectAlias selectAlias)
    Parameters
    Type Name Description
    SelectAlias selectAlias

    The select alias to modify.

    Returns
    Type Description
    Select

    Returns a new SelectAlias, if it has been modified, or the passed selectAlias if no modification was performed.

    Overrides
    Visitor.VisitSelectAlias(SelectAlias)

    VisitSelectNewWith(SelectNewWith)

    Visits a select New With.

    Declaration
    public override Select VisitSelectNewWith(SelectNewWith selectNewWith)
    Parameters
    Type Name Description
    SelectNewWith selectNewWith

    The select New With to visit.

    Returns
    Type Description
    Select

    Returns a new SelectNewWith or the existing one if it has not been modified.

    Overrides
    Visitor.VisitSelectNewWith(SelectNewWith)

    VisitSkipAndTake(SkipAndTake)

    visits a SkipAndTake AST node.

    Declaration
    public override SkipAndTake VisitSkipAndTake(SkipAndTake skipAndTake)
    Parameters
    Type Name Description
    SkipAndTake skipAndTake

    The SkipAndTake node to visit / modify.

    Returns
    Type Description
    SkipAndTake

    Returns the value returned by VisitAndConvert<T>(T) on TimeCockpit.Data.QueryLanguage.Syntax.Modifier.replacementVisitor.

    Overrides
    Visitor.VisitSkipAndTake(SkipAndTake)

    VisitStringConstant(StringConstant)

    Visits a StringConstant AST node.

    Declaration
    public override Expression VisitStringConstant(StringConstant stringConstant)
    Parameters
    Type Name Description
    StringConstant stringConstant

    The string constant to visit.

    Returns
    Type Description
    Expression

    Returns the value returned by the replacement visitor.

    Overrides
    Visitor.VisitStringConstant(StringConstant)
    In This Article
    Back to top Copyright © 2020 software architects gmbh