it_bus/id.h

00001 #ifndef _IT_BUS_ID_H_
00002 #define _IT_BUS_ID_H_
00003 
00004 // @Copyright 2004 IONA Technologies, Plc. All Rights Reserved.
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         ) throw(());
00034 
00043         ID(
00044             const String& value
00045         ) throw((IT_Bus::Exception));
00046 
00055         ID(
00056             const char* value
00057         ) throw((IT_Bus::Exception));
00058 
00062         ID(
00063             const ID& copy
00064         ) throw(());
00065 
00069         ID&
00070         operator=(
00071             const ID& rhs
00072         ) throw(());
00073 
00079         static bool
00080         is_valid_id(
00081             const String& value
00082         ) throw(());
00083 
00084         // Implementation of methods from AnyType.
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         ) throw((IT_Reflect::ReflectException));
00102         
00103         virtual const IT_Reflect::Reflection*
00104         get_reflection(
00105         ) const throw((IT_Reflect::ReflectException));
00106 
00107         // Used by SchemaTypeTraits.
00108         //
00109         static const QName&
00110         get_static_type();
00111 
00112       protected:
00119         virtual void
00120         validate_string(
00121             const String& value
00122         ) throw((IT_Bus::Exception));
00123     };
00124 }
00125 
00126 #endif /*_IT_BUS_ID_H_*/

Generated on Tue Mar 20 15:27:41 2007 for Artix by  doxygen 1.5.1-p1