]> git.saurik.com Git - apple/icu.git/blob - icuSources/i18n/unicode/gender.h
ICU-511.31.tar.gz
[apple/icu.git] / icuSources / i18n / unicode / gender.h
1 /*
2 *******************************************************************************
3 * Copyright (C) 2008-2013, International Business Machines Corporation and
4 * others. All Rights Reserved.
5 *******************************************************************************
6 *
7 *
8 * File GENDER.H
9 *
10 * Modification History:*
11 * Date Name Description
12 *
13 ********************************************************************************
14 */
15
16 #ifndef _GENDER
17 #define _GENDER
18
19 #include "unicode/utypes.h"
20
21 #if !UCONFIG_NO_FORMATTING
22 #ifndef U_HIDE_DRAFT_API
23
24 #include "unicode/locid.h"
25 #include "unicode/ugender.h"
26 #include "unicode/uobject.h"
27
28 class GenderInfoTest;
29
30 U_NAMESPACE_BEGIN
31
32 /**
33 * GenderInfo computes the gender of a list as a whole given the gender of
34 * each element.
35 * @draft ICU 50
36 */
37 class U_I18N_API GenderInfo : public UObject {
38 public:
39
40 /**
41 * Provides access to the predefined GenderInfo object for a given
42 * locale.
43 *
44 * @param locale The locale for which a <code>GenderInfo</code> object is
45 * returned.
46 * @param status Output param set to success/failure code on exit, which
47 * must not indicate a failure before the function call.
48 * @return The predefined <code>GenderInfo</code> object pointer for
49 * this locale. The returned object is immutable, so it is
50 * declared as const. Caller does not own the returned
51 * pointer, so it must not attempt to free it.
52 * @draft ICU 50
53 */
54 static const GenderInfo* U_EXPORT2 getInstance(const Locale& locale, UErrorCode& status);
55
56 /**
57 * Determines the gender of a list as a whole given the gender of each
58 * of the elements.
59 *
60 * @param genders the gender of each element in the list.
61 * @param length the length of gender array.
62 * @param status Output param set to success/failure code on exit, which
63 * must not indicate a failure before the function call.
64 * @return the gender of the whole list.
65 * @draft ICU 50
66 */
67 UGender getListGender(const UGender* genders, int32_t length, UErrorCode& status) const;
68
69 /**
70 * Destructor.
71 *
72 * @draft ICU 50
73 */
74 virtual ~GenderInfo();
75
76 private:
77 int32_t _style;
78
79 /**
80 * Copy constructor. One object per locale invariant. Clients
81 * must never copy GenderInfo objects.
82 */
83 GenderInfo(const GenderInfo& other);
84
85 /**
86 * Assignment operator. Not applicable to immutable objects.
87 */
88 GenderInfo& operator=(const GenderInfo&);
89
90 GenderInfo();
91
92 static const GenderInfo* getNeutralInstance();
93
94 static const GenderInfo* getMixedNeutralInstance();
95
96 static const GenderInfo* getMaleTaintsInstance();
97
98 static const GenderInfo* loadInstance(const Locale& locale, UErrorCode& status);
99 friend class ::GenderInfoTest;
100 };
101
102 U_NAMESPACE_END
103
104 #endif /* U_HIDE_DRAFT_API */
105 #endif /* #if !UCONFIG_NO_FORMATTING */
106
107 #endif // _GENDER
108 //eof