00001 #ifndef _IT_BUS_NCNAME_H_
00002 #define _IT_BUS_NCNAME_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/name.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 NCName : public Name
00024 {
00025 public:
00026 typedef IT_Reflect::ValueRef<IT_Bus::NCName> IT_ReflectionType;
00027
00031 NCName(
00032 ) IT_THROW_DECL(());
00033
00042 NCName(
00043 const String& value
00044 ) IT_THROW_DECL((IT_Bus::Exception));
00045
00054 NCName(
00055 const char* value
00056 ) IT_THROW_DECL((IT_Bus::Exception));
00057
00061 NCName(
00062 const NCName& copy
00063 ) IT_THROW_DECL(());
00064
00068 NCName&
00069 operator=(
00070 const NCName& rhs
00071 ) IT_THROW_DECL(());
00072
00078 static bool
00079 is_valid_ncname(
00080 const String& value
00081 ) IT_THROW_DECL(());
00082
00083
00084
00085 virtual AnyType&
00086 copy(
00087 const AnyType& copy
00088 );
00089
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