DeveelDB  20151217
complete SQL database system, primarly developed for .NET/Mono frameworks
FunctionExtensions.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;
20 using Deveel.Data.Sql;
21 using Deveel.Data.Types;
22 
23 namespace Deveel.Data.Routines {
27  public static class FunctionExtensions {
38  public static DataObject Execute(this IFunction function, Invoke request, IGroupResolver group,
39  IVariableResolver resolver,
40  IRequest query) {
41  var execContext = new InvokeContext(request, function, resolver, group, query);
42  var result = function.Execute(execContext);
43  return result.ReturnValue;
44  }
45 
46  public static SqlType ReturnType(this IFunction function, Invoke request, IRequest query, IVariableResolver resolver) {
47  var execContext = new InvokeContext(request, function, resolver, null, query);
48  return function.ReturnType(execContext);
49  }
50  }
51 }
Defines a routine that is a function, that means it returns a value after its execution.
Definition: IFunction.cs:26
static DataObject Execute(this IFunction function, Invoke request, IGroupResolver group, IVariableResolver resolver, IRequest query)
Executes the function given the cintext provided.
Extension methods to any IFunction.
Defines a contract used by grouping functions to find information about the current group being evalu...
Represents a dynamic object that encapsulates a defined SqlType and a compatible constant ISqlObject ...
Definition: DataObject.cs:35
The information about the invocation of a routine, including the full name and arguments (as SqlExpre...
Definition: Invoke.cs:30
Defines the properties of a specific SQL Type and handles the values compatible.
Definition: SqlType.cs:33
An interface to resolve a variable name to a constant object.
static SqlType ReturnType(this IFunction function, Invoke request, IRequest query, IVariableResolver resolver)