1 // © 2016 and later: Unicode, Inc. and others.
2 // License & terms of use: http://www.unicode.org/copyright.html
3 /*
4 **********************************************************************
5 *   Copyright (C) 2001-2007, International Business Machines
6 *   Corporation and others.  All Rights Reserved.
7 **********************************************************************
8 *   Date        Name        Description
9 *   05/24/01    aliu        Creation.
10 **********************************************************************
11 */
12 #ifndef TOUPPTRN_H
13 #define TOUPPTRN_H
14 
15 #include "unicode/utypes.h"
16 
17 #if !UCONFIG_NO_TRANSLITERATION
18 
19 #include "unicode/translit.h"
20 #include "casetrn.h"
21 
22 U_NAMESPACE_BEGIN
23 
24 /**
25  * A transliterator that performs locale-sensitive toUpper()
26  * case mapping.
27  * @author Alan Liu
28  */
29 class UppercaseTransliterator : public CaseMapTransliterator {
30 
31  public:
32 
33     /**
34      * Constructs a transliterator.
35      * @param loc the given locale.
36      */
37     UppercaseTransliterator();
38 
39     /**
40      * Destructor.
41      */
42     virtual ~UppercaseTransliterator();
43 
44     /**
45      * Copy constructor.
46      */
47     UppercaseTransliterator(const UppercaseTransliterator&);
48 
49     /**
50      * Transliterator API.
51      * @return a copy of the object.
52      */
53     virtual UppercaseTransliterator* clone() const;
54 
55     /**
56      * ICU "poor man's RTTI", returns a UClassID for the actual class.
57      */
58     virtual UClassID getDynamicClassID() const;
59 
60     /**
61      * ICU "poor man's RTTI", returns a UClassID for this class.
62      */
63     U_I18N_API static UClassID U_EXPORT2 getStaticClassID();
64 
65 private:
66     /**
67      * Assignment operator.
68      */
69     UppercaseTransliterator& operator=(const UppercaseTransliterator&);
70 };
71 
72 U_NAMESPACE_END
73 
74 #endif /* #if !UCONFIG_NO_TRANSLITERATION */
75 
76 #endif
77