diff options
Diffstat (limited to 'desktop/source/migration/services/autocorrmigration.cxx')
-rw-r--r-- | desktop/source/migration/services/autocorrmigration.cxx | 288 |
1 files changed, 0 insertions, 288 deletions
diff --git a/desktop/source/migration/services/autocorrmigration.cxx b/desktop/source/migration/services/autocorrmigration.cxx deleted file mode 100644 index c1e82b30c0..0000000000 --- a/desktop/source/migration/services/autocorrmigration.cxx +++ /dev/null @@ -1,288 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -// MARKER(update_precomp.py): autogen include statement, do not remove -#include "precompiled_desktop.hxx" -#include "autocorrmigration.hxx" -#include <i18npool/mslangid.hxx> -#include <tools/urlobj.hxx> -#include <unotools/bootstrap.hxx> - - -using namespace ::com::sun::star; -using namespace ::com::sun::star::uno; - - -//......................................................................... -namespace migration -{ -//......................................................................... - - - static ::rtl::OUString sSourceSubDir = ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "/user/autocorr" ) ); - static ::rtl::OUString sTargetSubDir = ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "/user/autocorr" ) ); - static ::rtl::OUString sBaseName = ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "/acor" ) ); - static ::rtl::OUString sSuffix = ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ".dat" ) ); - - - // ============================================================================= - // component operations - // ============================================================================= - - ::rtl::OUString AutocorrectionMigration_getImplementationName() - { - static ::rtl::OUString* pImplName = 0; - if ( !pImplName ) - { - ::osl::MutexGuard aGuard( ::osl::Mutex::getGlobalMutex() ); - if ( !pImplName ) - { - static ::rtl::OUString aImplName( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.comp.desktop.migration.Autocorrection" ) ); - pImplName = &aImplName; - } - } - return *pImplName; - } - - // ----------------------------------------------------------------------------- - - Sequence< ::rtl::OUString > AutocorrectionMigration_getSupportedServiceNames() - { - static Sequence< ::rtl::OUString >* pNames = 0; - if ( !pNames ) - { - ::osl::MutexGuard aGuard( ::osl::Mutex::getGlobalMutex() ); - if ( !pNames ) - { - static Sequence< ::rtl::OUString > aNames(1); - aNames.getArray()[0] = ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.migration.Autocorrection" ) ); - pNames = &aNames; - } - } - return *pNames; - } - - // ============================================================================= - // AutocorrectionMigration - // ============================================================================= - - AutocorrectionMigration::AutocorrectionMigration() - { - } - - // ----------------------------------------------------------------------------- - - AutocorrectionMigration::~AutocorrectionMigration() - { - } - - // ----------------------------------------------------------------------------- - - TStringVectorPtr AutocorrectionMigration::getFiles( const ::rtl::OUString& rBaseURL ) const - { - TStringVectorPtr aResult( new TStringVector ); - ::osl::Directory aDir( rBaseURL); - - if ( aDir.open() == ::osl::FileBase::E_None ) - { - // iterate over directory content - TStringVector aSubDirs; - ::osl::DirectoryItem aItem; - while ( aDir.getNextItem( aItem ) == ::osl::FileBase::E_None ) - { - ::osl::FileStatus aFileStatus( osl_FileStatus_Mask_Type | osl_FileStatus_Mask_FileURL ); - if ( aItem.getFileStatus( aFileStatus ) == ::osl::FileBase::E_None ) - { - if ( aFileStatus.getFileType() == ::osl::FileStatus::Directory ) - aSubDirs.push_back( aFileStatus.getFileURL() ); - else - aResult->push_back( aFileStatus.getFileURL() ); - } - } - - // iterate recursive over subfolders - TStringVector::const_iterator aI = aSubDirs.begin(); - while ( aI != aSubDirs.end() ) - { - TStringVectorPtr aSubResult = getFiles( *aI ); - aResult->insert( aResult->end(), aSubResult->begin(), aSubResult->end() ); - ++aI; - } - } - - return aResult; - } - - // ----------------------------------------------------------------------------- - - ::osl::FileBase::RC AutocorrectionMigration::checkAndCreateDirectory( INetURLObject& rDirURL ) - { - ::osl::FileBase::RC aResult = ::osl::Directory::create( rDirURL.GetMainURL( INetURLObject::DECODE_TO_IURI ) ); - if ( aResult == ::osl::FileBase::E_NOENT ) - { - INetURLObject aBaseURL( rDirURL ); - aBaseURL.removeSegment(); - checkAndCreateDirectory( aBaseURL ); - return ::osl::Directory::create( rDirURL.GetMainURL( INetURLObject::DECODE_TO_IURI ) ); - } - else - { - return aResult; - } - } - - // ----------------------------------------------------------------------------- - - void AutocorrectionMigration::copyFiles() - { - ::rtl::OUString sTargetDir; - ::utl::Bootstrap::PathStatus aStatus = ::utl::Bootstrap::locateUserInstallation( sTargetDir ); - if ( aStatus == ::utl::Bootstrap::PATH_EXISTS ) - { - sTargetDir += sTargetSubDir; - TStringVectorPtr aFileList = getFiles( m_sSourceDir ); - TStringVector::const_iterator aI = aFileList->begin(); - while ( aI != aFileList->end() ) - { - ::rtl::OUString sSourceLocalName = aI->copy( m_sSourceDir.getLength() ); - sal_Int32 nStart = sBaseName.getLength(); - sal_Int32 nEnd = sSourceLocalName.lastIndexOf ( sSuffix ); - ::rtl::OUString sLanguageType = sSourceLocalName.copy( nStart, nEnd - nStart ); - ::rtl::OUString sIsoName = MsLangId::convertLanguageToIsoString( (LanguageType) sLanguageType.toInt32() ); - ::rtl::OUString sTargetLocalName = sBaseName; - sTargetLocalName += ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM( "_" )); - sTargetLocalName += sIsoName; - sTargetLocalName += sSuffix; - ::rtl::OUString sTargetName = sTargetDir + sTargetLocalName; - INetURLObject aURL( sTargetName ); - aURL.removeSegment(); - checkAndCreateDirectory( aURL ); - ::osl::FileBase::RC aResult = ::osl::File::copy( *aI, sTargetName ); - if ( aResult != ::osl::FileBase::E_None ) - { - ::rtl::OString aMsg( "AutocorrectionMigration::copyFiles: cannot copy " ); - aMsg += ::rtl::OUStringToOString( *aI, RTL_TEXTENCODING_UTF8 ) + " to " - + ::rtl::OUStringToOString( sTargetName, RTL_TEXTENCODING_UTF8 ); - OSL_FAIL( aMsg.getStr() ); - } - ++aI; - } - } - else - { - OSL_FAIL( "AutocorrectionMigration::copyFiles: no user installation!" ); - } - } - - // ----------------------------------------------------------------------------- - // XServiceInfo - // ----------------------------------------------------------------------------- - - ::rtl::OUString AutocorrectionMigration::getImplementationName() throw (RuntimeException) - { - return AutocorrectionMigration_getImplementationName(); - } - - // ----------------------------------------------------------------------------- - - sal_Bool AutocorrectionMigration::supportsService( const ::rtl::OUString& rServiceName ) throw (RuntimeException) - { - Sequence< ::rtl::OUString > aNames( getSupportedServiceNames() ); - const ::rtl::OUString* pNames = aNames.getConstArray(); - const ::rtl::OUString* pEnd = pNames + aNames.getLength(); - for ( ; pNames != pEnd && !pNames->equals( rServiceName ); ++pNames ) - ; - - return pNames != pEnd; - } - - // ----------------------------------------------------------------------------- - - Sequence< ::rtl::OUString > AutocorrectionMigration::getSupportedServiceNames() throw (RuntimeException) - { - return AutocorrectionMigration_getSupportedServiceNames(); - } - - // ----------------------------------------------------------------------------- - // XInitialization - // ----------------------------------------------------------------------------- - - void AutocorrectionMigration::initialize( const Sequence< Any >& aArguments ) throw (Exception, RuntimeException) - { - ::osl::MutexGuard aGuard( m_aMutex ); - - const Any* pIter = aArguments.getConstArray(); - const Any* pEnd = pIter + aArguments.getLength(); - for ( ; pIter != pEnd ; ++pIter ) - { - beans::NamedValue aValue; - *pIter >>= aValue; - if ( aValue.Name.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( "UserData" ) ) ) - { - if ( !(aValue.Value >>= m_sSourceDir) ) - { - OSL_FAIL( "AutocorrectionMigration::initialize: argument UserData has wrong type!" ); - } - m_sSourceDir += sSourceSubDir; - break; - } - } - } - - // ----------------------------------------------------------------------------- - // XJob - // ----------------------------------------------------------------------------- - - Any AutocorrectionMigration::execute( const Sequence< beans::NamedValue >& ) - throw (lang::IllegalArgumentException, Exception, RuntimeException) - { - ::osl::MutexGuard aGuard( m_aMutex ); - - copyFiles(); - - return Any(); - } - - // ============================================================================= - // component operations - // ============================================================================= - - Reference< XInterface > SAL_CALL AutocorrectionMigration_create( - Reference< XComponentContext > const & ) - SAL_THROW( () ) - { - return static_cast< lang::XTypeProvider * >( new AutocorrectionMigration() ); - } - - // ----------------------------------------------------------------------------- - -//......................................................................... -} // namespace migration -//......................................................................... - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ |