xref: /trunk/main/i18npool/inc/transliteration_body.hxx (revision 91144cd0085a7583d2099b982122deb2184ab956)
1 /**************************************************************
2  *
3  * Licensed to the Apache Software Foundation (ASF) under one
4  * or more contributor license agreements.  See the NOTICE file
5  * distributed with this work for additional information
6  * regarding copyright ownership.  The ASF licenses this file
7  * to you under the Apache License, Version 2.0 (the
8  * "License"); you may not use this file except in compliance
9  * with the License.  You may obtain a copy of the License at
10  *
11  *   http://www.apache.org/licenses/LICENSE-2.0
12  *
13  * Unless required by applicable law or agreed to in writing,
14  * software distributed under the License is distributed on an
15  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16  * KIND, either express or implied.  See the License for the
17  * specific language governing permissions and limitations
18  * under the License.
19  *
20  *************************************************************/
21 
22 
23 #ifndef TRANSLITERATION_BODY_H
24 #define TRANSLITERATION_BODY_H
25 
26 #include <transliteration_commonclass.hxx>
27 #include <i18nutil/casefolding.hxx>
28 
29 namespace com { namespace sun { namespace star { namespace i18n {
30 
31 class Transliteration_body : public transliteration_commonclass
32 {
33 public:
34     Transliteration_body();
35 
36     // Methods which are shared.
37     sal_Int16 SAL_CALL getType();
38 
39     rtl::OUString SAL_CALL transliterate(const rtl::OUString& inStr, sal_Int32 startPos, sal_Int32 nCount,
40         com::sun::star::uno::Sequence< sal_Int32 >& offset);
41 
42         rtl::OUString SAL_CALL
43         transliterateChar2String( sal_Unicode inChar);
44 
45         virtual sal_Unicode SAL_CALL
46         transliterateChar2Char( sal_Unicode inChar);
47 
48     rtl::OUString SAL_CALL folding(const rtl::OUString& inStr, sal_Int32 startPos, sal_Int32 nCount,
49         com::sun::star::uno::Sequence< sal_Int32 >& offset);
50 
51     sal_Bool SAL_CALL equals(
52         const rtl::OUString& str1, sal_Int32 pos1, sal_Int32 nCount1, sal_Int32& nMatch1,
53         const rtl::OUString& str2, sal_Int32 pos2, sal_Int32 nCount2, sal_Int32& nMatch2 );
54 
55     com::sun::star::uno::Sequence< rtl::OUString > SAL_CALL transliterateRange( const rtl::OUString& str1,
56         const rtl::OUString& str2 );
57 
58 protected:
59     sal_uInt8 nMappingType;
60 };
61 
62 #if defined( TRANSLITERATION_UPPER_LOWER ) || defined( TRANSLITERATION_ALL )
63 class Transliteration_u2l : public Transliteration_body
64 {
65 public:
66     Transliteration_u2l();
67 };
68 
69 class Transliteration_l2u : public Transliteration_body
70 {
71 public:
72     Transliteration_l2u();
73 };
74 #endif
75 
76 #if defined( TRANSLITERATION_casemapping ) || defined( TRANSLITERATION_ALL )
77 class Transliteration_casemapping : public Transliteration_body
78 {
79 public:
80     Transliteration_casemapping();
81     void SAL_CALL setMappingType(const sal_uInt8 rMappingType, const com::sun::star::lang::Locale& rLocale );
82 };
83 #endif
84 
85 
86 #if defined( TRANSLITERATION_ALL )
87 class Transliteration_togglecase : public Transliteration_body
88 {
89 public:
90     Transliteration_togglecase();
91 };
92 
93 class Transliteration_titlecase : public Transliteration_body
94 {
95 public:
96     Transliteration_titlecase();
97 
98     virtual rtl::OUString SAL_CALL transliterate( const rtl::OUString& inStr, sal_Int32 startPos, sal_Int32 nCount, com::sun::star::uno::Sequence< sal_Int32 >& offset  );
99 };
100 
101 class Transliteration_sentencecase : public Transliteration_body
102 {
103 public:
104     Transliteration_sentencecase();
105 
106     virtual rtl::OUString SAL_CALL transliterate( const rtl::OUString& inStr, sal_Int32 startPos, sal_Int32 nCount, com::sun::star::uno::Sequence< sal_Int32 >& offset  );
107 };
108 #endif
109 
110 } } } }
111 
112 #endif
113