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 24 // MARKER(update_precomp.py): autogen include statement, do not remove 25 #include "precompiled_sw.hxx" 26 27 28 #include <com/sun/star/lang/XMultiServiceFactory.hpp> 29 #include <comphelper/processfactory.hxx> 30 #ifndef _COM_SUN_STAR_I18N_XINDEXENTRYSUPPLIER_HPP_ 31 #include <com/sun/star/i18n/XExtendedIndexEntrySupplier.hpp> 32 #endif 33 #include <tools/string.hxx> 34 #include <tools/debug.hxx> 35 #include <toxwrap.hxx> 36 37 using namespace ::com::sun::star; 38 39 40 IndexEntrySupplierWrapper::IndexEntrySupplierWrapper() 41 { 42 uno::Reference< 43 lang::XMultiServiceFactory > rxMSF = 44 ::comphelper::getProcessServiceFactory(); 45 46 try { 47 STAR_REFERENCE( uno::XInterface ) xI = 48 rxMSF->createInstance( ::rtl::OUString::createFromAscii( 49 "com.sun.star.i18n.IndexEntrySupplier" ) ); 50 if( xI.is() ) 51 { 52 UNO_NMSPC::Any x = xI->queryInterface( ::getCppuType( 53 (const uno::Reference< i18n::XExtendedIndexEntrySupplier>*)0) ); 54 x >>= xIES; 55 } 56 } 57 catch ( UNO_NMSPC::Exception& 58 #ifdef DBG_UTIL 59 e 60 #endif 61 ) 62 { 63 #ifdef DBG_UTIL 64 ByteString aMsg( "IndexEntrySupplierWrapper: Exception caught\n" ); 65 aMsg += ByteString( String( e.Message ), RTL_TEXTENCODING_UTF8 ); 66 DBG_ERRORFILE( aMsg.GetBuffer() ); 67 #endif 68 } 69 } 70 71 IndexEntrySupplierWrapper::~IndexEntrySupplierWrapper() 72 { 73 } 74 75 String IndexEntrySupplierWrapper::GetIndexKey( const String& rTxt, 76 const String& rTxtReading, 77 const STAR_NMSPC::lang::Locale& rLocale ) const 78 { 79 String sRet; 80 try { 81 sRet = xIES->getIndexKey( rTxt, rTxtReading, rLocale ); 82 } 83 catch ( UNO_NMSPC::Exception& 84 #ifdef DBG_UTIL 85 e 86 #endif 87 ) 88 { 89 #ifdef DBG_UTIL 90 ByteString aMsg( "getIndexKey: Exception caught\n" ); 91 aMsg += ByteString( String( e.Message ), RTL_TEXTENCODING_UTF8 ); 92 DBG_ERRORFILE( aMsg.GetBuffer() ); 93 #endif 94 } 95 return sRet; 96 } 97 98 String IndexEntrySupplierWrapper::GetFollowingText( sal_Bool bMorePages ) const 99 { 100 String sRet; 101 try { 102 sRet = xIES->getIndexFollowPageWord( bMorePages, aLcl ); 103 } 104 catch ( UNO_NMSPC::Exception& 105 #ifdef DBG_UTIL 106 e 107 #endif 108 ) 109 { 110 #ifdef DBG_UTIL 111 ByteString aMsg( "getIndexFollowPageWord: Exception caught\n" ); 112 aMsg += ByteString( String( e.Message ), RTL_TEXTENCODING_UTF8 ); 113 DBG_ERRORFILE( aMsg.GetBuffer() ); 114 #endif 115 } 116 return sRet; 117 } 118 119 STAR_NMSPC::uno::Sequence< ::rtl::OUString > 120 IndexEntrySupplierWrapper::GetAlgorithmList( const STAR_NMSPC::lang::Locale& rLcl ) const 121 { 122 uno::Sequence< ::rtl::OUString > sRet; 123 124 try { 125 sRet = xIES->getAlgorithmList( rLcl ); 126 } 127 catch ( UNO_NMSPC::Exception& 128 #ifdef DBG_UTIL 129 e 130 #endif 131 ) 132 { 133 #ifdef DBG_UTIL 134 ByteString aMsg( "getAlgorithmList: Exception caught\n" ); 135 aMsg += ByteString( String( e.Message ), RTL_TEXTENCODING_UTF8 ); 136 DBG_ERRORFILE( aMsg.GetBuffer() ); 137 #endif 138 } 139 return sRet; 140 } 141 142 sal_Bool IndexEntrySupplierWrapper::LoadAlgorithm( 143 const STAR_NMSPC::lang::Locale& rLcl, 144 const String& sSortAlgorithm, long nOptions ) const 145 { 146 sal_Bool bRet = sal_False; 147 try { 148 bRet = xIES->loadAlgorithm( rLcl, sSortAlgorithm, nOptions ); 149 } 150 catch ( UNO_NMSPC::Exception& 151 #ifdef DBG_UTIL 152 e 153 #endif 154 ) 155 { 156 #ifdef DBG_UTIL 157 ByteString aMsg( "loadAlgorithm: Exception caught\n" ); 158 aMsg += ByteString( String( e.Message ), RTL_TEXTENCODING_UTF8 ); 159 DBG_ERRORFILE( aMsg.GetBuffer() ); 160 #endif 161 } 162 return bRet; 163 } 164 165 sal_Int16 IndexEntrySupplierWrapper::CompareIndexEntry( 166 const String& rTxt1, const String& rTxtReading1, 167 const STAR_NMSPC::lang::Locale& rLocale1, 168 const String& rTxt2, const String& rTxtReading2, 169 const STAR_NMSPC::lang::Locale& rLocale2 ) const 170 { 171 sal_Int16 nRet = 0; 172 try { 173 nRet = xIES->compareIndexEntry( rTxt1, rTxtReading1, rLocale1, 174 rTxt2, rTxtReading2, rLocale2 ); 175 } 176 catch ( UNO_NMSPC::Exception& 177 #ifdef DBG_UTIL 178 e 179 #endif 180 ) 181 { 182 #ifdef DBG_UTIL 183 ByteString aMsg( "compareIndexEntry: Exception caught\n" ); 184 aMsg += ByteString( String( e.Message ), RTL_TEXTENCODING_UTF8 ); 185 DBG_ERRORFILE( aMsg.GetBuffer() ); 186 #endif 187 } 188 return nRet; 189 } 190