Table of Contents

Namespace TimeCockpit.Data.QueryLanguage.Syntax

Classes

AggregationFunctionCall

AST Node Type representing an aggregation function call.

BackReferenceSource

QuerySource for backreferences in sub selects.

BinaryExpression

Abstract node type representing binary expressions. BinaryExpression acts as the node type for all binary operations. The semantics of such a node depends on the operator.

BooleanConstant

AST Node representing a boolean constant.

Constant

Abstract Node type representing constant elements.

DateConstant

AST Node representing a Date value.

DateTimeConstant

AST Node representing a DateTime value.

DeadOfSource

Class representing a dead of AST Node / Query source.

DecimalConstant

AST Node representing a decimal value.

DelegateVisitor

visitor forwarding to optionally set function delegates.

EntitySource

AST Node representing the source of a query to a concrete entity. e.g.: In

From X In Timesheet.Include(*) Select X

TableName corresponds to "Timesheet" Include corresponds to the ".Include(*)" (IncludeAll) node.

EntitySourceInclude

Abstract base classe for include nodes.

EntitySourceIncludeConditional

AST Node representing a conditional include statement. e.g.: In

From X In Project.Include(P, Timesheet, P.BeginTime > 10) Select X

the node corresponds to the ".Include(P, Timesheet, P.BeginTime > 10)" part. BackReferenceAliasName corresponds to the alias given to the back reference item ("P"), BackReferenceName corresponds to "Timesheet" and Condition corresponds to "P.BeginTime > 10" />

EntitySourceIncludeRelation

AST Node representing an Include statement including an relation. e.g. In

From X In Timesheet.Include('Project') Select X.

this node represents ".Include('Project')" with RelationName being "Project".

ExplicitSet

AST Node representing an explicit set definition, e.g.: in

From X In Timesheet Where X.Description In ('Some Description', 'Some Other Description') Select X

an instance of this node refers to "('Some Description', 'Some Other Description')".

Expression

Abstract AST node type representing an expression.

FunctionCall

Ast Node representing a function call, e.g. in

From X In Timesheet Where X.Description = :Iif(X.BeginTime > #2012-10-10#, "Some Description", "Some OtherDescription") Select X

an instance of this class represents the ':Iif(X.BeginTime > #2012-10-10#, "Some Description", "Some OtherDescription")' function call and holds the parameter expressions as members (the Arguments collection).

GuidConstant

AST Node representing a GUID value.

HasChangedFunction

special AST node HasChanged language feature.

MemberAccess

Describes access to a member, e.g.: In

From X In Timesheet Where X.BeginTime < #2012-10-10# Select X

"X.BeginTime" is referred to as a MemberAccess with the segments being 'BeginTime' and alias being X. The alias may be null (and is by default null). An Alias of null means that the Member access refers to the table source of the parenting query. As of 2012-11-09, this is not possible to achieve using the grammar, as it would require not specifying an alias. Pseudocode:

From Timesheet Where BeginTime > #2012-01-01# Select 

would by a theoretical possibility for such a syntax.

MemberDeclaration

class representing the member declarations.

MemberDeclarationForwarded

AST Node representing a member declaration directly forwarding to a member acces. E.g. In

From X In Timesheet Select New With { X.BeginTime } 

"X.BeginTime" refers to such a member declaration.

MemberDeclarationNamedExpression

AST Node representing a member declaration named expression, e.g. in

From X In Timesheet Select New With { .ThreeTimesDurationOfHours = 3 * X.DurationInHours }

".ThreeTimesDurationOfHours = 3 * X.DurationInHours" is represented by an instance of this node.

MemberDeclarationNamedIdentifier

AST Node represents a named identifier in a select new statement. E.g. In

From X In Timesheets Select New With { .Y = X }

"X" is represented by an instance of this node type.

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.

NamedSetReference

AST Node representing a reference to a named set defined in the model. e.g. In

From X In Timesheet Where X.Description In Set('ImportantDescriptions') Select X

an instance of this class represents the "Set('ImportantDescriptions')" expression part.

Node

Base class for all AST Node.

NullConstant

Constant representing a null value.

OrderBy

AST Node representing an oder by. e.g. in From X In Timesheet OrderBy X.BeginTime ASC, X.Description DESC Select X, the node represents to the "OrderBy X.BeginTime ASC, X.Description DESC" part.

OrderByExpression

AST Node representing an Order By Expression (part of an Order By) e.g. in

From X In Timesheet OrderBy X.BeginTime ASC, X.Description DESC Select X
, X.BeginTime as well as X.Description represen OrderBy Expressions.
Parameter

AST Node representing a parameter reference. e.g. in

From X In Timesheet Where X.Description Like @Search Select X
,
Query

represents a query: e.g.: In

From X In SomeTable Where X.BeginTime > #2012-10-10 12:00:00# Select X With VersionInfoOnly

Alias will map to "X", Source will map to "SomeTable", Where will map to "X.BeginTime > #2012-10-10 12:00:00#", Select will map to "X", QueryOptions will have VersionInfoOnly set to true.

QueryOptions

AST Node representing the query options in a query.

QuerySource

Abstract node

Select

AST Node representing the Select part of a Query statement. e.g.: In

From X In Timesheet Select Top (100) X

a derived instance of this node represents "Select Top (100) X".

SelectAlias

AST Node defining a select clause for selecting a simple alias. e.g. In

From X In Timesheet Select X
, the node refers to "Select X".
SelectNewWith

AST Node representing a select new with statement. e.g. In

From X In Timesheet Select New With { .Duration = X.EndTime - X.BeginTime }

this node represents the "Select New With { .Duration = X.EndTime - X.BeginTime }" part.

Set

abstract AST node for sets, either explicit as in

From X In Timesheet Where 'SomeDesc' In (X.Description, X.Project.Description) Select X

or as a named set reference, as in

From X In Timesheet Where 'SomeDesc' In Set('SomeNamedSet') Select X
.
SkipAndTake

Holds query options for skip and take.

StringConstant

AST Node representing a string constant. e.g. In

From X In Timesheet Where X.Description == 'SomeDescription' Select X

an instance of this node represents 'SomeDescription'.

SyntaxASTToTCQL

Translates a Syntax AST back to TCQL

TCQLExpression

Static class producing TCQL expressions and queries.

Visitor

Visitor enabling dispatching to the correct.

Enums

AggregationFunctionCallType

Describes the available aggregation function types.

BinaryOperator

enum holding all possible binary combinations.

SortDirection

enum describing the sort order.