1/*************************************************************************
2 *
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 *
5 * Copyright 2000, 2010 Oracle and/or its affiliates.
6 *
7 * OpenOffice.org - a multi-platform office productivity suite
8 *
9 * This file is part of OpenOffice.org.
10 *
11 * OpenOffice.org is free software: you can redistribute it and/or modify
12 * it under the terms of the GNU Lesser General Public License version 3
13 * only, as published by the Free Software Foundation.
14 *
15 * OpenOffice.org is distributed in the hope that it will be useful,
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18 * GNU Lesser General Public License version 3 for more details
19 * (a copy is included in the LICENSE file that accompanied this code).
20 *
21 * You should have received a copy of the GNU Lesser General Public License
22 * version 3 along with OpenOffice.org.  If not, see
23 * <http://www.openoffice.org/license.html>
24 * for a copy of the LGPLv3 License.
25 *
26 ************************************************************************/
27
28#ifndef __com_sun_star_i18n_XExtendedTransliteration_idl__
29#define __com_sun_star_i18n_XExtendedTransliteration_idl__
30
31#include <com/sun/star/i18n/XTransliteration.idl>
32#include <MultipleCharsOutputException.idl>
33
34//=============================================================================
35
36module com { module sun { module star { module i18n {
37
38//=============================================================================
39
40
41/**
42    This interface provides character conversions like case folding or
43    Hiragana to Katakana.
44
45    <p> It is derived from
46    <type scope="::com::sun::star::i18n">XTransliteration</type> and provides
47    additional functionality for character to character and
48    string to string without offset parameter transliteration. These
49    should be used for performance reason if their full-blown
50    counterparts aren't neded.  </p>
51
52	 @since OOo 1.1.2
53 */
54published interface XExtendedTransliteration : ::com::sun::star::i18n::XTransliteration
55{
56    //------------------------------------------------------------------------
57    /** Transliterate a substring. The functionality is the same as
58        <member scope="::com::sun::star::i18n">XTransliteration::transliterate()</member>
59        but omits the offset prameter to improve performance.
60
61        @param aStr
62            The input string.
63
64        @param nStartPos
65            Start position within aStr from where transliteration starts.
66
67        @param nCount
68            Number of codepoints to be transliterated.
69
70     */
71    string  transliterateString2String( [in] string aStr,
72            [in] long nStartPos, [in] long nCount );
73
74
75    //------------------------------------------------------------------------
76    /** Transliterate a character to a string.
77
78        @param cChar
79            The input character.
80     */
81    string  transliterateChar2String( [in] char cChar );
82
83    //------------------------------------------------------------------------
84    /** Transliterate a character to a character.
85
86        <p> If the output contains multiple characters, for example when
87        transliterating German sharp 's' (the one that looks like a
88        Greek Beta) to upper case "SS", MultipleCharsOutputException
89        will be thrown, the caller must catch the exception and then
90        call
91        <method>XTransliteration::transliterateChar2String()</method> to
92        obtain the correct result. </p>
93
94        @param cChar
95            The input character.
96     */
97    char    transliterateChar2Char( [in] char cChar )
98                raises( MultipleCharsOutputException );
99
100};
101
102//=============================================================================
103}; }; }; };
104
105#endif
106