00001 #ifndef _IT_BUS_ID_H_
00002 #define _IT_BUS_ID_H_
00003
00004
00005
00006
00007 #include <it_cal/types.h>
00008 #include <it_bus/exception.h>
00009 #include <it_bus/api_defines.h>
00010 #include <it_bus/ncname.h>
00011
00012 namespace IT_Reflect
00013 {
00014 class Reflection;
00015 template <class T> class ValueRef;
00016 }
00017
00018 namespace IT_Bus
00019 {
00024 class IT_AFC_API ID : public NCName
00025 {
00026 public:
00027 typedef IT_Reflect::ValueRef<IT_Bus::ID> IT_ReflectionType;
00028
00032 ID(
00033 ) IT_THROW_DECL(());
00034
00043 ID(
00044 const String& value
00045 ) IT_THROW_DECL((IT_Bus::Exception));
00046
00055 ID(
00056 const char* value
00057 ) IT_THROW_DECL((IT_Bus::Exception));
00058
00062 ID(
00063 const ID& copy
00064 ) IT_THROW_DECL(());
00065
00069 ID&
00070 operator=(
00071 const ID& rhs
00072 ) IT_THROW_DECL(());
00073
00079 static bool
00080 is_valid_id(
00081 const String& value
00082 ) IT_THROW_DECL(());
00083
00084
00085
00086 virtual AnyType&
00087 copy(
00088 const AnyType& copy
00089 );
00090
00096 virtual const QName&
00097 get_type() const;
00098
00099 virtual IT_Reflect::Reflection*
00100 get_reflection(
00101 ) IT_THROW_DECL((IT_Reflect::ReflectException));
00102
00103 virtual const IT_Reflect::Reflection*
00104 get_reflection(
00105 ) const IT_THROW_DECL((IT_Reflect::ReflectException));
00106
00107
00108
00109 static const QName&
00110 get_static_type();
00111
00112 protected:
00119 virtual void
00120 validate_string(
00121 const String& value
00122 ) IT_THROW_DECL((IT_Bus::Exception));
00123 };
00124 }
00125
00126 #endif