DeveelDB  20151217
complete SQL database system, primarly developed for .NET/Mono frameworks
ExecutionContext.cs
Go to the documentation of this file.
1 //
2 // Copyright 2010-2015 Deveel
3 //
4 // Licensed under the Apache License, Version 2.0 (the "License");
5 // you may not use this file except in compliance with the License.
6 // You may obtain a copy of the License at
7 //
8 // http://www.apache.org/licenses/LICENSE-2.0
9 //
10 // Unless required by applicable law or agreed to in writing, software
11 // distributed under the License is distributed on an "AS IS" BASIS,
12 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 // See the License for the specific language governing permissions and
14 // limitations under the License.
15 //
16 
17 using System;
18 
19 using Deveel.Data.Sql.Tables;
20 
21 namespace Deveel.Data.Sql {
22  public sealed class ExecutionContext : IDisposable {
23  public ExecutionContext(IRequest request) {
24  if (request == null)
25  throw new ArgumentNullException("request");
26 
27  Request = request;
28  }
29 
30  public IRequest Request { get; private set; }
31 
32  public ITable Result { get; private set; }
33 
34  public bool HasResult { get; private set; }
35 
36  public bool HasTermination { get; private set; }
37 
38  public void SetResult(ITable result) {
39  if (result != null) {
40  Result = result;
41  HasResult = true;
42  }
43  }
44 
45  public void SetResult(int value) {
46  SetResult(FunctionTable.ResultTable(Request, value));
47  }
48 
49  public void Terminate() {
50  HasTermination = true;
51  }
52 
53  public void Dispose() {
54  Request = null;
55  }
56  }
57 }
Defines the contract to access the data contained into a table of a database.
Definition: ITable.cs:40
static ITable ResultTable(IRequest context, SqlExpression expression)