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