# NumericTypeConstructor.hpp

Go to the documentation of this file.

    00001 /*
    00002  * Copyright (c) 2001-2006
    00003  *     DecisionSoft Limited. All rights reserved.
    00004  * Copyright (c) 2004-2006
    00005  *     Progress Software Corporation. All rights reserved.
    00006  * Copyright (c) 2004-2006
    00007  *     Oracle. All rights reserved.
    00008  *
    00009  * See the file LICENSE for redistribution information.
    00010  *
    00011  * $Id: NumericTypeConstructor.hpp,v 1.3 2006/11/17 18:08:07 jpcs Exp $
    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