00001 #ifndef _IT_BUS_NAME_H_
00002 #define _IT_BUS_NAME_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/token.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 Name : public Token
00024 {
00025 public:
00026 typedef IT_Reflect::ValueRef<IT_Bus::Name> IT_ReflectionType;
00027
00031 Name(
00032 ) IT_THROW_DECL(());
00033
00039 Name(
00040 const String& value
00041 ) IT_THROW_DECL((IT_Bus::Exception));
00042
00048 Name(
00049 const char* value
00050 ) IT_THROW_DECL((IT_Bus::Exception));
00051
00055 Name(
00056 const Name& copy
00057 ) IT_THROW_DECL(());
00058
00062 Name&
00063 operator=(
00064 const Name& rhs
00065 ) IT_THROW_DECL(());
00066
00072 static bool
00073 is_valid_name(
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:
00112 virtual void
00113 validate_string(
00114 const String& value
00115 ) IT_THROW_DECL((IT_Bus::Exception));
00116
00117 virtual bool
00118 allow_empty_string() const
00119 {
00120 return false;
00121 }
00122 };
00123 }
00124
00125 #endif