Main Page
Namespaces
Classes
Files
Examples
File List
File Members
include
xqilla
items
ATDecimalOrDerived.hpp
Go to the documentation of this file.
1
/*
2
* Copyright (c) 2001, 2008,
3
* DecisionSoft Limited. All rights reserved.
4
* Copyright (c) 2004, 2011,
5
* Oracle and/or its affiliates. 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
20
#ifndef _ATDECIMALORDERIVED_HPP
21
#define _ATDECIMALORDERIVED_HPP
22
23
#include <xercesc/util/XercesDefs.hpp>
24
#include <xqilla/framework/XQillaExport.hpp>
25
#include <
xqilla/items/Numeric.hpp
>
26
27
class
DynamicContext
;
28
class
MAPM;
29
class
XQILLA_API
ATDecimalOrDerived
:
public
Numeric
30
{
31
public
:
32
typedef
RefCountPointer<const ATDecimalOrDerived>
Ptr
;
33
34
/* Get the name of the primitive type (basic type) of this type
35
* (ie "decimal" for xs:decimal) */
36
virtual
const
XMLCh*
getPrimitiveTypeName
()
const
= 0;
37
38
/* Get the namespace URI for this type */
39
virtual
const
XMLCh*
getTypeURI
()
const
= 0;
40
41
/* Get the name of this type (ie "integer" for xs:integer) */
42
virtual
const
XMLCh*
getTypeName
()
const
= 0;
43
44
/* returns the XMLCh* (canonical) representation of this type */
45
virtual
const
XMLCh*
asString
(
const
DynamicContext
* context)
const
= 0;
46
47
/* Promote this to the given type, if possible */
48
virtual
Numeric::Ptr
promoteTypeIfApplicable
(
AnyAtomicType::AtomicObjectType
typeIndex,
49
const
DynamicContext
* context)
const
= 0;
50
52
virtual
Numeric::Ptr
add
(
const
Numeric::Ptr
&other,
const
DynamicContext
* context)
const
= 0;
53
56
virtual
Numeric::Ptr
subtract
(
const
Numeric::Ptr
&other,
const
DynamicContext
* context)
const
= 0;
57
59
virtual
Numeric::Ptr
multiply
(
const
Numeric::Ptr
&other,
const
DynamicContext
* context)
const
= 0;
60
62
virtual
Numeric::Ptr
divide
(
const
Numeric::Ptr
&other,
const
DynamicContext
* context)
const
= 0;
63
65
virtual
Numeric::Ptr
mod
(
const
Numeric::Ptr
&other,
const
DynamicContext
* context)
const
= 0;
66
68
virtual
Numeric::Ptr
floor
(
const
DynamicContext
* context)
const
= 0;
69
71
virtual
Numeric::Ptr
ceiling
(
const
DynamicContext
* context)
const
= 0;
72
74
virtual
Numeric::Ptr
round
(
const
DynamicContext
* context)
const
= 0;
75
77
virtual
Numeric::Ptr
roundHalfToEven
(
const
Numeric::Ptr
&precision,
const
DynamicContext
* context)
const
= 0;
78
80
virtual
Numeric::Ptr
invert
(
const
DynamicContext
* context)
const
= 0;
81
83
virtual
Numeric::Ptr
abs
(
const
DynamicContext
* context)
const
= 0;
84
86
virtual
Numeric::Ptr
sqrt
(
const
DynamicContext
* context)
const
= 0;
87
89
virtual
Numeric::Ptr
sin
(
const
DynamicContext
* context)
const
= 0;
90
92
virtual
Numeric::Ptr
cos
(
const
DynamicContext
* context)
const
= 0;
93
95
virtual
Numeric::Ptr
tan
(
const
DynamicContext
* context)
const
= 0;
96
98
virtual
Numeric::Ptr
asin
(
const
DynamicContext
* context)
const
= 0;
99
101
virtual
Numeric::Ptr
acos
(
const
DynamicContext
* context)
const
= 0;
102
104
virtual
Numeric::Ptr
atan
(
const
DynamicContext
* context)
const
= 0;
105
107
virtual
Numeric::Ptr
log
(
const
DynamicContext
* context)
const
= 0;
108
110
virtual
Numeric::Ptr
exp
(
const
DynamicContext
* context)
const
= 0;
111
113
virtual
bool
isZero
()
const
= 0;
114
116
virtual
bool
isNegative
()
const
= 0;
117
119
virtual
bool
isPositive
()
const
= 0;
120
121
/* Is this floating point value not a number? */
122
virtual
bool
isNaN
()
const
{
return
false
; }
123
124
/* Is this floating point value infinite? */
125
virtual
bool
isInfinite
()
const
{
return
false
; }
126
128
virtual
XMLInt32 treatAsCodepoint(
const
DynamicContext
* context)
const
= 0;
129
130
virtual
AnyAtomicType::AtomicObjectType
getPrimitiveTypeIndex
()
const
= 0;
131
132
virtual
const
MAPM &
asMAPM
()
const
= 0;
133
134
virtual
State
getState
()
const
= 0;
135
};
136
137
#endif // _ATDECIMALORDERIVED_HPP
Generated by
1.8.4