00001 #ifndef _IT_REFLECT_BUILT_IN_TYPE_H_
00002 #define _IT_REFLECT_BUILT_IN_TYPE_H_
00003
00004
00005
00006 #include <it_bus/reflect/simple_type.h>
00007
00008 namespace IT_Reflect
00009 {
00013 class IT_AFC_API BuiltInType : public virtual IT_Reflect::SimpleType
00014 {
00015 public:
00021 enum ValueKind
00022 {
00023 BOOLEAN,
00024 FLOAT,
00025 DOUBLE,
00026 INT,
00027 LONG,
00028 SHORT,
00029 UINT,
00030 ULONG,
00031 USHORT,
00032 BYTE,
00033 UBYTE,
00034 DATETIME,
00035 STRING,
00036 DECIMAL,
00037 HEXBINARY,
00038 BASE64BINARY,
00039 QNAME,
00040 DATE,
00041 TIME,
00042 GYEAR,
00043 GYMON,
00044 GMONTH,
00045 GMDAY,
00046 GDAY,
00047 DURATION,
00048 INTEGER,
00049 PINT,
00050 NPINT,
00051 NINT,
00052 NNINT,
00053 ANYURI,
00054 NSTRING,
00055 TOKEN,
00056 LANG,
00057 NAME,
00058 NCNAME,
00059 NMTOKEN,
00060 ID,
00061 ANY,
00062 ANY_LIST,
00063 ANY_HOLDER,
00064 REFERENCE
00065 };
00066
00070 BuiltInType() throw(());
00071
00075 virtual ~BuiltInType() throw(());
00076
00082 virtual ValueKind
00083 get_value_kind() const throw((ReflectException)) = 0;
00084
00089 virtual void
00090 duplicate(
00091 const IT_Reflect::BuiltInType* other
00092 ) throw((ReflectException)) = 0;
00093
00094 private:
00095
00096 BuiltInType(const BuiltInType&);
00097 void operator=(const BuiltInType&);
00098 };
00099 }
00100
00101
00102 #endif