|
ICU 73.2
73.2
|
00001 // © 2022 and later: Unicode, Inc. and others. 00002 // License & terms of use: http://www.unicode.org/copyright.html 00003 00004 #ifndef __DISPLAYOPTIONS_H__ 00005 #define __DISPLAYOPTIONS_H__ 00006 00007 #include "unicode/utypes.h" 00008 00009 #if U_SHOW_CPLUSPLUS_API 00010 00011 #if !UCONFIG_NO_FORMATTING 00012 00020 #include "unicode/udisplayoptions.h" 00021 #include "unicode/uversion.h" 00022 00023 U_NAMESPACE_BEGIN 00024 00025 #ifndef U_HIDE_DRAFT_API 00026 00045 class U_I18N_API DisplayOptions { 00046 public: 00052 class U_I18N_API Builder { 00053 public: 00061 Builder &setGrammaticalCase(UDisplayOptionsGrammaticalCase grammaticalCase) { 00062 this->grammaticalCase = grammaticalCase; 00063 return *this; 00064 } 00065 00073 Builder &setNounClass(UDisplayOptionsNounClass nounClass) { 00074 this->nounClass = nounClass; 00075 return *this; 00076 } 00077 00085 Builder &setPluralCategory(UDisplayOptionsPluralCategory pluralCategory) { 00086 this->pluralCategory = pluralCategory; 00087 return *this; 00088 } 00089 00097 Builder &setCapitalization(UDisplayOptionsCapitalization capitalization) { 00098 this->capitalization = capitalization; 00099 return *this; 00100 } 00101 00109 Builder &setNameStyle(UDisplayOptionsNameStyle nameStyle) { 00110 this->nameStyle = nameStyle; 00111 return *this; 00112 } 00113 00121 Builder &setDisplayLength(UDisplayOptionsDisplayLength displayLength) { 00122 this->displayLength = displayLength; 00123 return *this; 00124 } 00125 00133 Builder &setSubstituteHandling(UDisplayOptionsSubstituteHandling substituteHandling) { 00134 this->substituteHandling = substituteHandling; 00135 return *this; 00136 } 00137 00144 DisplayOptions build() { return DisplayOptions(*this); } 00145 00146 private: 00147 friend DisplayOptions; 00148 00149 Builder(); 00150 Builder(const DisplayOptions &displayOptions); 00151 00152 UDisplayOptionsGrammaticalCase grammaticalCase; 00153 UDisplayOptionsNounClass nounClass; 00154 UDisplayOptionsPluralCategory pluralCategory; 00155 UDisplayOptionsCapitalization capitalization; 00156 UDisplayOptionsNameStyle nameStyle; 00157 UDisplayOptionsDisplayLength displayLength; 00158 UDisplayOptionsSubstituteHandling substituteHandling; 00159 }; 00160 00167 static Builder builder(); 00174 Builder copyToBuilder() const; 00181 UDisplayOptionsGrammaticalCase getGrammaticalCase() const { return grammaticalCase; } 00182 00189 UDisplayOptionsNounClass getNounClass() const { return nounClass; } 00190 00197 UDisplayOptionsPluralCategory getPluralCategory() const { return pluralCategory; } 00198 00205 UDisplayOptionsCapitalization getCapitalization() const { return capitalization; } 00206 00213 UDisplayOptionsNameStyle getNameStyle() const { return nameStyle; } 00214 00221 UDisplayOptionsDisplayLength getDisplayLength() const { return displayLength; } 00222 00229 UDisplayOptionsSubstituteHandling getSubstituteHandling() const { return substituteHandling; } 00230 00237 DisplayOptions &operator=(const DisplayOptions &other) = default; 00238 00245 DisplayOptions &operator=(DisplayOptions &&other) noexcept = default; 00246 00253 DisplayOptions(const DisplayOptions &other) = default; 00254 00255 private: 00256 DisplayOptions(const Builder &builder); 00257 UDisplayOptionsGrammaticalCase grammaticalCase; 00258 UDisplayOptionsNounClass nounClass; 00259 UDisplayOptionsPluralCategory pluralCategory; 00260 UDisplayOptionsCapitalization capitalization; 00261 UDisplayOptionsNameStyle nameStyle; 00262 UDisplayOptionsDisplayLength displayLength; 00263 UDisplayOptionsSubstituteHandling substituteHandling; 00264 }; 00265 00266 #endif // U_HIDE_DRAFT_API 00267 00268 U_NAMESPACE_END 00269 00270 #endif /* #if !UCONFIG_NO_FORMATTING */ 00271 00272 #endif /* U_SHOW_CPLUSPLUS_API */ 00273 00274 #endif // __DISPLAYOPTIONS_H__
1.7.6.1