00001 #ifndef _IT_BUS_TOKEN_H_
00002 #define _IT_BUS_TOKEN_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/normalized_string.h>
00011
00012 namespace IT_Reflect
00013 {
00014 class Reflection;
00015 template <class T> class ValueRef;
00016 }
00017
00018 namespace IT_Bus
00019 {
00023 class IT_AFC_API Token : public NormalizedString
00024 {
00025 public:
00026 typedef IT_Reflect::ValueRef<IT_Bus::Token> IT_ReflectionType;
00027
00031 Token(
00032 ) IT_THROW_DECL(());
00033
00039 Token(
00040 const String& value
00041 ) IT_THROW_DECL((IT_Bus::Exception));
00042
00048 Token(
00049 const char* value
00050 ) IT_THROW_DECL((IT_Bus::Exception));
00051
00055 Token(
00056 const Token& copy
00057 ) IT_THROW_DECL(());
00058
00062 Token&
00063 operator=(
00064 const Token& rhs
00065 ) IT_THROW_DECL(());
00066
00072 static bool
00073 is_valid_token(
00074 const String& value
00075 ) IT_THROW_DECL(());
00076
00077
00078
00079 virtual AnyType&
00080 copy(
00081 const AnyType& copy
00082 );
00083
00089 virtual const QName&
00090 get_type() const;
00091
00092 virtual IT_Reflect::Reflection*
00093 get_reflection(
00094 ) IT_THROW_DECL((IT_Reflect::ReflectException));
00095
00096 virtual const IT_Reflect::Reflection*
00097 get_reflection(
00098 ) const IT_THROW_DECL((IT_Reflect::ReflectException));
00099
00100
00101
00102 static const QName&
00103 get_static_type();
00104
00105 protected:
00113 virtual void
00114 validate_string(
00115 const String& value
00116 ) IT_THROW_DECL((IT_Bus::Exception));
00117 };
00118 }
00119
00120 #endif