SourceForge.net Logo
ItemFactory.hpp
Go to the documentation of this file.
1/*
2 * Copyright (c) 2001, 2008,
3 * DecisionSoft Limited. All rights reserved.
4 * Copyright (c) 2004, 2015 Oracle and/or its affiliates. All rights reserved.
5 *
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/*
21 Factory base class
22*/
23
24#ifndef _ITEMFACTORY_HPP
25#define _ITEMFACTORY_HPP
26
27#include <xqilla/framework/XQillaExport.hpp>
28#include <xqilla/mapm/m_apm.h>
46#include <xqilla/ast/ASTNode.hpp>
47
49
50class XQILLA_API ItemFactory : public XERCES_CPP_NAMESPACE_QUALIFIER XMemory
51{
52public:
53 virtual ~ItemFactory() {};
54
55 /* @name Atomic type factory methods */
56
57 virtual AnyAtomicType::AtomicObjectType getPrimitiveTypeIndex(const XMLCh* typeURI, const XMLCh* typeName, bool &isPrimitive) const = 0;
58 virtual void getPrimitiveTypeName(AnyAtomicType::AtomicObjectType type, const XMLCh *&typeURI, const XMLCh *&typeName) const = 0;
59
61 const DynamicContext* context) = 0;
63 const XMLCh* typeName, const XMLCh* value, const DynamicContext* context) = 0;
64 virtual AnyAtomicType::Ptr createDerivedFromAtomicType(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* value, const DynamicContext* context) = 0;
65
66 /* @name Number factory methods */
67
68 virtual ATDoubleOrDerived::Ptr createDouble(const MAPM value, const DynamicContext* context) = 0;
69 virtual ATDoubleOrDerived::Ptr createDouble(const XMLCh* value, const DynamicContext* context) = 0;
70 virtual ATDoubleOrDerived::Ptr createDoubleOrDerived(const XMLCh* typeURI, const XMLCh* typeName, const MAPM value, const DynamicContext* context) = 0;
71 virtual ATDoubleOrDerived::Ptr createDoubleOrDerived(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* value, const DynamicContext* context) = 0;
72
73 virtual ATFloatOrDerived::Ptr createFloat(const MAPM value, const DynamicContext* context) = 0;
74 virtual ATFloatOrDerived::Ptr createFloat(const XMLCh* value, const DynamicContext* context) = 0;
75 virtual ATFloatOrDerived::Ptr createFloatOrDerived(const XMLCh* typeURI, const XMLCh* typeName, const MAPM value, const DynamicContext* context) = 0;
76 virtual ATFloatOrDerived::Ptr createFloatOrDerived(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* value, const DynamicContext* context) = 0;
77
78 virtual ATDecimalOrDerived::Ptr createInteger(const int value, const DynamicContext* context) = 0;
79 virtual ATDecimalOrDerived::Ptr createInteger(const MAPM value, const DynamicContext* context) = 0;
80 virtual ATDecimalOrDerived::Ptr createInteger(const XMLCh* value, const DynamicContext* context) = 0;
81 virtual ATDecimalOrDerived::Ptr createNonNegativeInteger(const MAPM value, const DynamicContext* context) = 0;
82
83 virtual ATDecimalOrDerived::Ptr createDecimal(const MAPM value, const DynamicContext* context) = 0;
84 virtual ATDecimalOrDerived::Ptr createDecimal(const XMLCh* value, const DynamicContext* context) = 0;
85 virtual ATDecimalOrDerived::Ptr createDecimalOrDerived(const XMLCh* typeURI, const XMLCh* typeName, const MAPM value, const DynamicContext* context) = 0;
86 virtual ATDecimalOrDerived::Ptr createDecimalOrDerived(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* value, const DynamicContext* context) = 0;
87
88 /* @name Date / time factory methods */
89
90 virtual ATDateOrDerived::Ptr createDate(const XMLCh* value, const DynamicContext* context) = 0;
91 virtual ATDateOrDerived::Ptr createDateOrDerived(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* value, const DynamicContext* context) = 0;
92
93 virtual ATDateTimeOrDerived::Ptr createDateTime(const XMLCh* value, const DynamicContext* context) = 0;
94 virtual ATDateTimeOrDerived::Ptr createDateTimeOrDerived(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* value, const DynamicContext* context) = 0;
95
96 virtual ATTimeOrDerived::Ptr createTime(const XMLCh* value, const DynamicContext* context) = 0;
97 virtual ATTimeOrDerived::Ptr createTimeOrDerived(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* value, const DynamicContext* context) = 0;
98
99 virtual ATGDayOrDerived::Ptr createGDayOrDerived(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* value, const DynamicContext* context) = 0;
100 virtual ATGMonthDayOrDerived::Ptr createGMonthDayOrDerived(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* value, const DynamicContext* context) = 0;
101 virtual ATGMonthOrDerived::Ptr createGMonthOrDerived(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* value, const DynamicContext* context) = 0;
102 virtual ATGYearMonthOrDerived::Ptr createGYearMonthOrDerived(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* value, const DynamicContext* context) = 0;
103 virtual ATGYearOrDerived::Ptr createGYearOrDerived(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* value, const DynamicContext* context) = 0;
104
105 virtual ATDurationOrDerived::Ptr createDayTimeDuration(const XMLCh* value, const DynamicContext* context) = 0;
106 virtual ATDurationOrDerived::Ptr createDayTimeDuration(const MAPM &seconds, const DynamicContext* context) = 0;
107 virtual ATDurationOrDerived::Ptr createYearMonthDuration(const XMLCh* value, const DynamicContext* context) = 0;
108 virtual ATDurationOrDerived::Ptr createYearMonthDuration(const MAPM &months, const DynamicContext* context) = 0;
109
110 /* @name Other factory methods */
111
112 virtual ATStringOrDerived::Ptr createString(const XMLCh* value, const DynamicContext* context) = 0;
113 virtual ATStringOrDerived::Ptr createStringOrDerived(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* value, const DynamicContext* context) = 0;
114
115 virtual ATUntypedAtomic::Ptr createUntypedAtomic(const XMLCh* value, const DynamicContext* context) = 0;
116
117 virtual ATBooleanOrDerived::Ptr createBoolean(bool value, const DynamicContext* context) = 0;
119 virtual ATBooleanOrDerived::Ptr createBoolean(const XMLCh* value, const DynamicContext* context) = 0;
120 virtual ATBooleanOrDerived::Ptr createBooleanOrDerived(const XMLCh* typeURI, const XMLCh* typeName, bool value, const DynamicContext* context) = 0;
121 virtual ATBooleanOrDerived::Ptr createBooleanOrDerived(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* value, const DynamicContext* context) = 0;
122
123 virtual ATAnyURIOrDerived::Ptr createAnyURI(const XMLCh* value, const DynamicContext* context) = 0;
124
125 virtual ATQNameOrDerived::Ptr createQName(const XMLCh* uri, const XMLCh* prefix, const XMLCh* name, const DynamicContext* context) = 0;
126 virtual ATQNameOrDerived::Ptr createQNameOrDerived(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* uri, const XMLCh *prefix,
127 const XMLCh* name, const DynamicContext* context) = 0;
128
129};
130
131#endif
AtomicObjectType
Definition: AnyAtomicType.hpp:34
The execution time dynamic context interface.
Definition: DynamicContext.hpp:39
Definition: ItemFactory.hpp:51
virtual ATQNameOrDerived::Ptr createQName(const XMLCh *uri, const XMLCh *prefix, const XMLCh *name, const DynamicContext *context)=0
virtual AnyAtomicType::AtomicObjectType getPrimitiveTypeIndex(const XMLCh *typeURI, const XMLCh *typeName, bool &isPrimitive) const =0
virtual ATFloatOrDerived::Ptr createFloatOrDerived(const XMLCh *typeURI, const XMLCh *typeName, const XMLCh *value, const DynamicContext *context)=0
virtual ATStringOrDerived::Ptr createStringOrDerived(const XMLCh *typeURI, const XMLCh *typeName, const XMLCh *value, const DynamicContext *context)=0
virtual ATDecimalOrDerived::Ptr createInteger(const int value, const DynamicContext *context)=0
virtual ATDoubleOrDerived::Ptr createDoubleOrDerived(const XMLCh *typeURI, const XMLCh *typeName, const XMLCh *value, const DynamicContext *context)=0
virtual ATDecimalOrDerived::Ptr createDecimalOrDerived(const XMLCh *typeURI, const XMLCh *typeName, const MAPM value, const DynamicContext *context)=0
virtual ATDecimalOrDerived::Ptr createInteger(const XMLCh *value, const DynamicContext *context)=0
virtual ATBooleanOrDerived::Ptr createBooleanOrDerived(const XMLCh *typeURI, const XMLCh *typeName, const XMLCh *value, const DynamicContext *context)=0
virtual ATTimeOrDerived::Ptr createTimeOrDerived(const XMLCh *typeURI, const XMLCh *typeName, const XMLCh *value, const DynamicContext *context)=0
virtual ATDurationOrDerived::Ptr createDayTimeDuration(const XMLCh *value, const DynamicContext *context)=0
virtual ATFloatOrDerived::Ptr createFloat(const XMLCh *value, const DynamicContext *context)=0
virtual void getPrimitiveTypeName(AnyAtomicType::AtomicObjectType type, const XMLCh *&typeURI, const XMLCh *&typeName) const =0
virtual AnyAtomicType::Ptr createDerivedFromAtomicType(const XMLCh *typeURI, const XMLCh *typeName, const XMLCh *value, const DynamicContext *context)=0
virtual ATQNameOrDerived::Ptr createQNameOrDerived(const XMLCh *typeURI, const XMLCh *typeName, const XMLCh *uri, const XMLCh *prefix, const XMLCh *name, const DynamicContext *context)=0
virtual ATDateOrDerived::Ptr createDate(const XMLCh *value, const DynamicContext *context)=0
virtual ATBooleanOrDerived::Ptr createBoolean(const XMLCh *value, const DynamicContext *context)=0
virtual ~ItemFactory()
Definition: ItemFactory.hpp:53
virtual ATDoubleOrDerived::Ptr createDoubleOrDerived(const XMLCh *typeURI, const XMLCh *typeName, const MAPM value, const DynamicContext *context)=0
virtual ATDecimalOrDerived::Ptr createNonNegativeInteger(const MAPM value, const DynamicContext *context)=0
virtual ATDecimalOrDerived::Ptr createInteger(const MAPM value, const DynamicContext *context)=0
virtual ATAnyURIOrDerived::Ptr createAnyURI(const XMLCh *value, const DynamicContext *context)=0
virtual ATBooleanOrDerived::Ptr createBoolean(bool value, const DynamicContext *context)=0
virtual ATDurationOrDerived::Ptr createYearMonthDuration(const MAPM &months, const DynamicContext *context)=0
virtual AnyAtomicType::Ptr createDerivedFromAtomicType(AnyAtomicType::AtomicObjectType typeIndex, const XMLCh *typeURI, const XMLCh *typeName, const XMLCh *value, const DynamicContext *context)=0
virtual ATUntypedAtomic::Ptr createUntypedAtomic(const XMLCh *value, const DynamicContext *context)=0
virtual ATGMonthOrDerived::Ptr createGMonthOrDerived(const XMLCh *typeURI, const XMLCh *typeName, const XMLCh *value, const DynamicContext *context)=0
virtual ATTimeOrDerived::Ptr createTime(const XMLCh *value, const DynamicContext *context)=0
virtual ATGYearOrDerived::Ptr createGYearOrDerived(const XMLCh *typeURI, const XMLCh *typeName, const XMLCh *value, const DynamicContext *context)=0
virtual ATDateTimeOrDerived::Ptr createDateTime(const XMLCh *value, const DynamicContext *context)=0
virtual ATGMonthDayOrDerived::Ptr createGMonthDayOrDerived(const XMLCh *typeURI, const XMLCh *typeName, const XMLCh *value, const DynamicContext *context)=0
virtual ATBooleanOrDerived::Ptr createBoolean(BoolResult value, const DynamicContext *context)=0
virtual ATDecimalOrDerived::Ptr createDecimal(const MAPM value, const DynamicContext *context)=0
virtual ATGYearMonthOrDerived::Ptr createGYearMonthOrDerived(const XMLCh *typeURI, const XMLCh *typeName, const XMLCh *value, const DynamicContext *context)=0
virtual ATDateTimeOrDerived::Ptr createDateTimeOrDerived(const XMLCh *typeURI, const XMLCh *typeName, const XMLCh *value, const DynamicContext *context)=0
virtual ATDurationOrDerived::Ptr createDayTimeDuration(const MAPM &seconds, const DynamicContext *context)=0
virtual ATGDayOrDerived::Ptr createGDayOrDerived(const XMLCh *typeURI, const XMLCh *typeName, const XMLCh *value, const DynamicContext *context)=0
virtual ATDoubleOrDerived::Ptr createDouble(const XMLCh *value, const DynamicContext *context)=0
virtual ATDecimalOrDerived::Ptr createDecimal(const XMLCh *value, const DynamicContext *context)=0
virtual ATDoubleOrDerived::Ptr createDouble(const MAPM value, const DynamicContext *context)=0
virtual ATDurationOrDerived::Ptr createYearMonthDuration(const XMLCh *value, const DynamicContext *context)=0
virtual ATBooleanOrDerived::Ptr createBooleanOrDerived(const XMLCh *typeURI, const XMLCh *typeName, bool value, const DynamicContext *context)=0
virtual ATDateOrDerived::Ptr createDateOrDerived(const XMLCh *typeURI, const XMLCh *typeName, const XMLCh *value, const DynamicContext *context)=0
virtual ATDecimalOrDerived::Ptr createDecimalOrDerived(const XMLCh *typeURI, const XMLCh *typeName, const XMLCh *value, const DynamicContext *context)=0
virtual AnyAtomicType::Ptr createDerivedFromAtomicType(AnyAtomicType::AtomicObjectType typeIndex, const XMLCh *value, const DynamicContext *context)=0
virtual ATFloatOrDerived::Ptr createFloat(const MAPM value, const DynamicContext *context)=0
virtual ATFloatOrDerived::Ptr createFloatOrDerived(const XMLCh *typeURI, const XMLCh *typeName, const MAPM value, const DynamicContext *context)=0
virtual ATStringOrDerived::Ptr createString(const XMLCh *value, const DynamicContext *context)=0
Super class of all the reference counted wrappers for Items.
Definition: ReferenceCounted.hpp:62
Definition: ATBooleanOrDerived.hpp:31