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() throw(com::sun::star::uno::RuntimeException);
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) throw(com::sun::star::uno::RuntimeException);
41 
42         rtl::OUString SAL_CALL
43         transliterateChar2String( sal_Unicode inChar)
44         throw(com::sun::star::uno::RuntimeException);
45 
46         virtual sal_Unicode SAL_CALL
47         transliterateChar2Char( sal_Unicode inChar)
48         throw(com::sun::star::uno::RuntimeException,
49         com::sun::star::i18n::MultipleCharsOutputException);
50 
51 	rtl::OUString SAL_CALL folding(const rtl::OUString& inStr, sal_Int32 startPos, sal_Int32 nCount,
52 	    com::sun::star::uno::Sequence< sal_Int32 >& offset) throw(com::sun::star::uno::RuntimeException);
53 
54 	sal_Bool SAL_CALL equals(
55 	    const rtl::OUString& str1, sal_Int32 pos1, sal_Int32 nCount1, sal_Int32& nMatch1,
56 	    const rtl::OUString& str2, sal_Int32 pos2, sal_Int32 nCount2, sal_Int32& nMatch2 )
57 	    throw(com::sun::star::uno::RuntimeException);
58 
59 	com::sun::star::uno::Sequence< rtl::OUString > SAL_CALL transliterateRange( const rtl::OUString& str1,
60 	    const rtl::OUString& str2 ) throw(com::sun::star::uno::RuntimeException);
61 
62 protected:
63 	sal_uInt8 nMappingType;
64 };
65 
66 #if defined( TRANSLITERATION_UPPER_LOWER ) || defined( TRANSLITERATION_ALL )
67 class Transliteration_u2l : public Transliteration_body
68 {
69 public:
70 	Transliteration_u2l();
71 };
72 
73 class Transliteration_l2u : public Transliteration_body
74 {
75 public:
76 	Transliteration_l2u();
77 };
78 #endif
79 
80 #if defined( TRANSLITERATION_casemapping ) || defined( TRANSLITERATION_ALL )
81 class Transliteration_casemapping : public Transliteration_body
82 {
83 public:
84 	Transliteration_casemapping();
85 	void SAL_CALL setMappingType(const sal_uInt8 rMappingType, const com::sun::star::lang::Locale& rLocale );
86 };
87 #endif
88 
89 
90 #if defined( TRANSLITERATION_ALL )
91 class Transliteration_togglecase : public Transliteration_body
92 {
93 public:
94     Transliteration_togglecase();
95 };
96 
97 class Transliteration_titlecase : public Transliteration_body
98 {
99 public:
100     Transliteration_titlecase();
101 
102     virtual rtl::OUString SAL_CALL transliterate( const rtl::OUString& inStr, sal_Int32 startPos, sal_Int32 nCount, com::sun::star::uno::Sequence< sal_Int32 >& offset  ) throw(com::sun::star::uno::RuntimeException);
103 };
104 
105 class Transliteration_sentencecase : public Transliteration_body
106 {
107 public:
108     Transliteration_sentencecase();
109 
110     virtual rtl::OUString SAL_CALL transliterate( const rtl::OUString& inStr, sal_Int32 startPos, sal_Int32 nCount, com::sun::star::uno::Sequence< sal_Int32 >& offset  ) throw(com::sun::star::uno::RuntimeException);
111 };
112 #endif
113 
114 } } } }
115 
116 #endif
117