00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014 #ifndef _NUMERICTYPECONSTUCTOR_HPP
00015 #define _NUMERICTYPECONSTUCTOR_HPP
00016
00017 #include <xqilla/items/ItemConstructor.hpp>
00018 #include <xercesc/util/XercesDefs.hpp>
00019 #include <xqilla/ast/StaticType.hpp>
00020 #include <xqilla/mapm/m_apm.h>
00021
00022 class XQILLA_API NumericTypeConstructor : public ItemConstructor {
00023 public:
00024 NumericTypeConstructor(const XMLCh* typeURI,
00025 const XMLCh* typeName,
00026 const MAPM& value,
00027 AnyAtomicType::AtomicObjectType primitiveType,
00028 XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *mm);
00029 virtual ~NumericTypeConstructor() {}
00030
00031 virtual const StaticType &getStaticType() const { return _sType; }
00032
00033 virtual Item::Ptr createItem(const DynamicContext* context) const;
00034 virtual std::string asString(const DynamicContext* context) const;
00035
00036 virtual const XMLCh* getTypeURI() const { return _typeURI; }
00037 virtual const XMLCh* getTypeName() const { return _typeName; }
00038
00039 private:
00040 const XMLCh *_typeURI;
00041 const XMLCh *_typeName;
00042 M_APM_struct _value;
00043 AnyAtomicType::AtomicObjectType _primitiveType;
00044 StaticType _sType;
00045 };
00046
00047 #endif
00048