Main Page
Namespaces
Classes
Files
Examples
File List
File Members
include
xqilla
items
FunctionRef.hpp
Go to the documentation of this file.
1
/*
2
* Copyright (c) 2001-2007
3
* DecisionSoft Limited. All rights reserved.
4
* Copyright (c) 2004-2007
5
* Oracle. All rights reserved.
6
*
7
* Licensed under the Apache License, Version 2.0 (the "License");
8
* you may not use this file except in compliance with the License.
9
* You may obtain a copy of the License at
10
*
11
* http://www.apache.org/licenses/LICENSE-2.0
12
*
13
* Unless required by applicable law or agreed to in writing, software
14
* distributed under the License is distributed on an "AS IS" BASIS,
15
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16
* See the License for the specific language governing permissions and
17
* limitations under the License.
18
*
19
* $Id$
20
*/
21
22
#ifndef _XQILLAFUNCTIONREF_HPP
23
#define _XQILLAFUNCTIONREF_HPP
24
25
#include <vector>
26
27
#include <
xqilla/items/Item.hpp
>
28
#include <
xqilla/items/ATQNameOrDerived.hpp
>
29
#include <
xqilla/runtime/Result.hpp
>
30
31
class
DynamicContext
;
32
class
LocationInfo
;
33
34
typedef
std::vector<Result>
VectorOfResults
;
35
36
class
XQILLA_API
FunctionRef
:
public
Item
37
{
38
public
:
39
typedef
RefCountPointer<const FunctionRef>
Ptr
;
40
41
virtual
bool
isNode
()
const
{
return
false
; }
42
virtual
bool
isAtomicValue
()
const
{
return
false
; }
43
virtual
bool
isFunction
()
const
{
return
true
; }
44
45
virtual
const
XMLCh *
getTypeURI
()
const
{
return
0; }
46
virtual
const
XMLCh *
getTypeName
()
const
{
return
0; }
47
48
virtual
ATQNameOrDerived::Ptr
getName(
const
DynamicContext
*context)
const
= 0;
49
virtual
size_t
getNumArgs()
const
= 0;
50
virtual
Result
execute(
const
VectorOfResults
&args,
DynamicContext
*context,
const
LocationInfo
*location)
const
= 0;
51
virtual
FunctionRef::Ptr
partialApply(
const
Result
&arg,
unsigned
int
argNum,
DynamicContext
*context,
const
LocationInfo
*location)
const
= 0;
52
53
protected
:
54
FunctionRef
() {}
55
};
56
#endif
Generated by
1.8.1.1