2using System.Collections.Generic;
3using System.Threading.Tasks;
22 private readonly
bool lazy;
81 string[] ColumnNames = M.ColumnNames;
82 int NrColumns = ColumnNames.Length;
87 for (RowIndex = 0; RowIndex < NrRows; RowIndex++)
89 E = M.GetRow(RowIndex);
99 await Source.
Insert(this.lazy, Obj);
113 if (Item is Dictionary<string, IElement> ObjExNihilo)
117 foreach (KeyValuePair<string, IElement> P
in ObjExNihilo)
118 Obj2[P.Key] = P.Value.AssociatedObjectValue;
122 else if (Item is Dictionary<string, object> ObjExNihilo2)
126 foreach (KeyValuePair<string, object> P
in ObjExNihilo2)
127 Obj2[P.Key] = P.Value;
132 await Source.
Insert(this.lazy, Item);
168 if (!(this.source is
null))
170 b = !Callback(this.source, out NewNode, State);
173 this.source = Source2;
177 if (b || (Order ==
SearchMethod.TreeOrder && !
this.source.ForAllChildNodes(Callback, State, Order)))
181 if (!(this.select is
null))
183 b = !Callback(this.select, out NewNode, State);
184 if (!(NewNode is
null) && NewNode is
Select NewSelect)
186 this.select = NewSelect;
190 if (b || (Order ==
SearchMethod.TreeOrder && !
this.select.ForAllChildNodes(Callback, State, Order)))
218 int Result = base.GetHashCode();
Static interface for database persistence. In order to work, a database provider has to be assigned t...
static Task EndBulk()
Ends bulk-processing of data. Must be called once for every call to StartBulk.
static Task StartBulk()
Starts bulk-proccessing of data. Must be followed by a call to EndBulk.
Generic object. Contains a sequence of properties.
Script runtime exception.
Class managing a script expression.
Base class for all nodes in a parsed script tree.
int Length
Length of expression covered by node.
static bool AreEqual(ScriptNode S1, ScriptNode S2)
Compares if two script nodes are equal.
int Start
Start position in script expression.
void SetParent(ScriptNode Parent)
Sets the parent node. Can only be used when expression is being parsed.
ToMatrix(ScriptNode Operand, bool NullCheck, int Start, int Length, Expression Expression)
To-Matrix operator.
Executes an INSERT SELECT statement against the object database.
override IElement Evaluate(Variables Variables)
Evaluates the node, using the variables provided in the Variables collection.
override bool Equals(object obj)
override async Task< IElement > EvaluateAsync(Variables Variables)
Evaluates the node asynchronously, using the variables provided in the Variables collection.
override bool ForAllChildNodes(ScriptNodeEventHandler Callback, object State, SearchMethod Order)
Calls the callback method for all child nodes.
override bool IsAsynchronous
If the node (or its decendants) include asynchronous evaluation. Asynchronous nodes should be evaluat...
InsertSelect(SourceDefinition Source, Select Select, bool Lazy, int Start, int Length, Expression Expression)
Executes an INSERT SELECT statement against the object database.
override int GetHashCode()
Executes a SELECT statement against the object database.
override async Task< IElement > EvaluateAsync(Variables Variables)
Evaluates the node asynchronously, using the variables provided in the Variables collection.
Abstract base class for source definitions
abstract Task< IDataSource > GetSource(Variables Variables)
Gets the actual data source, from its definition.
Basic interface for all types of elements.
object AssociatedObjectValue
Associated object value.
ICollection< IElement > ChildElements
An enumeration of child elements. If the element is a scalar, this property will return null.
Basic interface for vectors.
Interface for script nodes with asynchronous evaluation
Interface for objects that can be converted into matrices.
Interface for data sources that can be used in SQL statements.
string TypeName
Name of corresponding type.
string CollectionName
Name of corresponding collection.
Task Insert(bool Lazy, object Object)
Inserts an object.
delegate bool ScriptNodeEventHandler(ScriptNode Node, out ScriptNode NewNode, object State)
Delegate for ScriptNode callback methods.
SearchMethod
Method to traverse the expression structure