00001 #ifndef _IT_BUS_NMTOKEN_H_
00002 #define _IT_BUS_NMTOKEN_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 {
00020 class IT_AFC_API NMToken : public Token
00021 {
00022 public:
00023 typedef IT_Reflect::ValueRef<IT_Bus::NMToken> IT_ReflectionType;
00024
00025 NMToken(
00026 ) throw(());
00027
00028 NMToken(
00029 const String& value
00030 ) throw((IT_Bus::Exception));
00031
00032 NMToken(
00033 const NMToken& copy
00034 ) throw(());
00035
00036 NMToken&
00037 operator=(
00038 const NMToken& rhs
00039 ) throw(());
00040
00041 static bool
00042 is_valid_nmtoken(
00043 const String& value
00044 ) throw(());
00045
00046
00047
00048 virtual AnyType&
00049 copy(
00050 const AnyType& copy
00051 );
00052
00053 virtual const QName&
00054 get_type() const;
00055
00056 virtual IT_Reflect::Reflection*
00057 get_reflection(
00058 ) throw((IT_Reflect::ReflectException));
00059
00060 virtual const IT_Reflect::Reflection*
00061 get_reflection(
00062 ) const throw((IT_Reflect::ReflectException));
00063
00064
00065
00066 static const QName&
00067 get_static_type();
00068
00069 protected:
00070 virtual void
00071 validate_string(
00072 const String& value
00073 ) throw((IT_Bus::Exception));
00074
00075 virtual bool
00076 allow_empty_string() const
00077 {
00078 return false;
00079 }
00080 };
00081 }
00082
00083 #endif