00001 /* 00002 ******************************************************************************* 00003 * Copyright (C) 2008-2012, International Business Machines Corporation and 00004 * others. All Rights Reserved. 00005 ******************************************************************************* 00006 * 00007 * 00008 * File GENDER.H 00009 * 00010 * Modification History:* 00011 * Date Name Description 00012 * 00013 ******************************************************************************** 00014 */ 00015 00016 #ifndef _GENDER 00017 #define _GENDER 00018 00019 #include "unicode/utypes.h" 00020 00021 #if !UCONFIG_NO_FORMATTING 00022 00023 #include "unicode/locid.h" 00024 #include "unicode/ugender.h" 00025 #include "unicode/uobject.h" 00026 00027 class GenderInfoTest; 00028 00029 U_NAMESPACE_BEGIN 00030 00036 class U_I18N_API GenderInfo : public UObject { 00037 public: 00038 00053 static const GenderInfo* U_EXPORT2 getInstance(const Locale& locale, UErrorCode& status); 00054 00066 UGender getListGender(const UGender* genders, int32_t length, UErrorCode& status) const; 00067 00074 virtual ~GenderInfo(); 00075 00076 private: 00077 int32_t _style; 00078 00079 00083 virtual UClassID getDynamicClassID() const; 00084 00089 GenderInfo(const GenderInfo& other); 00090 00094 GenderInfo& operator=(const GenderInfo&); 00095 00096 GenderInfo(); 00097 00098 static const GenderInfo* getNeutralInstance(); 00099 00100 static const GenderInfo* getMixedNeutralInstance(); 00101 00102 static const GenderInfo* getMaleTaintsInstance(); 00103 00104 static const GenderInfo* loadInstance(const Locale& locale, UErrorCode& status); 00105 friend class ::GenderInfoTest; 00106 }; 00107 00108 U_NAMESPACE_END 00109 00110 #endif /* #if !UCONFIG_NO_FORMATTING */ 00111 00112 #endif // _GENDER 00113 //eof