Version 3.6.0.2, tag libreoffice-3.6.0.2
[LibreOffice.git] / i18npool / inc / transliteration_body.hxx
blobc2985b58847c7da45f95a323218e7b2b7e5dd0fd
1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 /*************************************************************************
4 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
6 * Copyright 2000, 2010 Oracle and/or its affiliates.
8 * OpenOffice.org - a multi-platform office productivity suite
10 * This file is part of OpenOffice.org.
12 * OpenOffice.org is free software: you can redistribute it and/or modify
13 * it under the terms of the GNU Lesser General Public License version 3
14 * only, as published by the Free Software Foundation.
16 * OpenOffice.org is distributed in the hope that it will be useful,
17 * but WITHOUT ANY WARRANTY; without even the implied warranty of
18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19 * GNU Lesser General Public License version 3 for more details
20 * (a copy is included in the LICENSE file that accompanied this code).
22 * You should have received a copy of the GNU Lesser General Public License
23 * version 3 along with OpenOffice.org. If not, see
24 * <http://www.openoffice.org/license.html>
25 * for a copy of the LGPLv3 License.
27 ************************************************************************/
28 #ifndef TRANSLITERATION_BODY_H
29 #define TRANSLITERATION_BODY_H
31 #include <transliteration_commonclass.hxx>
32 #include <i18nutil/casefolding.hxx>
34 namespace com { namespace sun { namespace star { namespace i18n {
36 class Transliteration_body : public transliteration_commonclass
38 public:
39 Transliteration_body();
41 // Methods which are shared.
42 sal_Int16 SAL_CALL getType() throw(com::sun::star::uno::RuntimeException);
44 rtl::OUString SAL_CALL transliterate(const rtl::OUString& inStr, sal_Int32 startPos, sal_Int32 nCount,
45 com::sun::star::uno::Sequence< sal_Int32 >& offset) throw(com::sun::star::uno::RuntimeException);
47 rtl::OUString SAL_CALL
48 transliterateChar2String( sal_Unicode inChar)
49 throw(com::sun::star::uno::RuntimeException);
51 virtual sal_Unicode SAL_CALL
52 transliterateChar2Char( sal_Unicode inChar)
53 throw(com::sun::star::uno::RuntimeException,
54 com::sun::star::i18n::MultipleCharsOutputException);
56 rtl::OUString SAL_CALL folding(const rtl::OUString& inStr, sal_Int32 startPos, sal_Int32 nCount,
57 com::sun::star::uno::Sequence< sal_Int32 >& offset) throw(com::sun::star::uno::RuntimeException);
59 sal_Bool SAL_CALL equals(
60 const rtl::OUString& str1, sal_Int32 pos1, sal_Int32 nCount1, sal_Int32& nMatch1,
61 const rtl::OUString& str2, sal_Int32 pos2, sal_Int32 nCount2, sal_Int32& nMatch2 )
62 throw(com::sun::star::uno::RuntimeException);
64 com::sun::star::uno::Sequence< rtl::OUString > SAL_CALL transliterateRange( const rtl::OUString& str1,
65 const rtl::OUString& str2 ) throw(com::sun::star::uno::RuntimeException);
67 protected:
68 sal_uInt8 nMappingType;
71 #if defined( TRANSLITERATION_UPPER_LOWER ) || defined( TRANSLITERATION_ALL )
72 class Transliteration_u2l : public Transliteration_body
74 public:
75 Transliteration_u2l();
78 class Transliteration_l2u : public Transliteration_body
80 public:
81 Transliteration_l2u();
83 #endif
85 #if defined( TRANSLITERATION_casemapping ) || defined( TRANSLITERATION_ALL )
86 class Transliteration_casemapping : public Transliteration_body
88 public:
89 Transliteration_casemapping();
90 void SAL_CALL setMappingType(const sal_uInt8 rMappingType, const com::sun::star::lang::Locale& rLocale );
92 #endif
95 #if defined( TRANSLITERATION_ALL )
96 class Transliteration_togglecase : public Transliteration_body
98 public:
99 Transliteration_togglecase();
102 class Transliteration_titlecase : public Transliteration_body
104 public:
105 Transliteration_titlecase();
107 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);
110 class Transliteration_sentencecase : public Transliteration_body
112 public:
113 Transliteration_sentencecase();
115 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);
117 #endif
119 } } } }
121 #endif
123 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */