diff options
Diffstat (limited to 'extensions/source/resource')
-rw-r--r-- | extensions/source/resource/ResourceIndexAccess.cxx | 208 | ||||
-rw-r--r-- | extensions/source/resource/ResourceIndexAccess.hxx | 75 | ||||
-rw-r--r-- | extensions/source/resource/exports.dxp | 1 | ||||
-rw-r--r-- | extensions/source/resource/makefile.mk | 86 | ||||
-rw-r--r-- | extensions/source/resource/oooresourceloader.cxx | 341 | ||||
-rw-r--r-- | extensions/source/resource/oooresourceloader.hxx | 87 | ||||
-rw-r--r-- | extensions/source/resource/res.component | 38 | ||||
-rw-r--r-- | extensions/source/resource/resourceservices.cxx | 58 |
8 files changed, 0 insertions, 894 deletions
diff --git a/extensions/source/resource/ResourceIndexAccess.cxx b/extensions/source/resource/ResourceIndexAccess.cxx deleted file mode 100644 index 31a244b96..000000000 --- a/extensions/source/resource/ResourceIndexAccess.cxx +++ /dev/null @@ -1,208 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/* - * Version: MPL 1.1 / GPLv3+ / LGPLv3+ - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License or as specified alternatively below. You may obtain a copy of - * the License at http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Initial Developer of the Original Code is - * Bjoern Michaelsen <bjoern.michaelsen@canonical.com> - * Portions created by the Initial Developer are Copyright (C) 2010 the - * Initial Developer. All Rights Reserved. - * - * Major Contributor(s): - * - * For minor contributions see the git repository. - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 3 or later (the "GPLv3+"), or - * the GNU Lesser General Public License Version 3 or later (the "LGPLv3+"), - * in which case the provisions of the GPLv3+ or the LGPLv3+ are applicable - * instead of those above. - */ - -#include <ResourceIndexAccess.hxx> - -#include <com/sun/star/container/XIndexAccess.hpp> -#include <com/sun/star/beans/PropertyValue.hpp> -#include <comphelper/stlunosequence.hxx> -#include <osl/mutex.hxx> -#include <tools/rcid.h> -#include <tools/resary.hxx> -#include <tools/resmgr.hxx> -#include <vcl/svapp.hxx> - -using namespace ::extensions::resource; -using namespace ::com::sun::star::uno; -using namespace ::com::sun::star::lang; -using namespace ::com::sun::star::beans; -using namespace ::com::sun::star::container; - -using ::comphelper::stl_begin; -using ::comphelper::stl_end; -using ::rtl::OString; -using ::rtl::OUString; -using ::rtl::OUStringToOString; - -namespace -{ - static ::boost::shared_ptr<ResMgr> GetResMgr(Sequence<Any> const& rArgs) - { - if(rArgs.getLength()!=1) - return ::boost::shared_ptr<ResMgr>(); - OUString sFilename; - rArgs[0] >>= sFilename; - SolarMutexGuard aGuard; - const OString sEncName(OUStringToOString(sFilename, osl_getThreadTextEncoding())); - return ::boost::shared_ptr<ResMgr>(ResMgr::CreateResMgr(sEncName)); - } - - class ResourceIndexAccessBase : public cppu::WeakImplHelper1< ::com::sun::star::container::XIndexAccess> - { - public: - ResourceIndexAccessBase( ::boost::shared_ptr<ResMgr> pResMgr) - : m_pResMgr(pResMgr) - { - OSL_ENSURE(m_pResMgr, "no ressource manager given"); - } - - // XIndexAccess - virtual ::sal_Int32 SAL_CALL getCount( ) throw (::com::sun::star::uno::RuntimeException) - { return m_pResMgr.get() ? SAL_MAX_UINT16 : 0; }; - // XElementAccess - virtual ::sal_Bool SAL_CALL hasElements( ) throw (::com::sun::star::uno::RuntimeException) - { return static_cast<bool>(m_pResMgr.get()); }; - - protected: - // m_pResMgr should never be NULL - const ::boost::shared_ptr<ResMgr> m_pResMgr; - }; - - class ResourceStringIndexAccess : public ResourceIndexAccessBase - { - public: - ResourceStringIndexAccess( ::boost::shared_ptr<ResMgr> pResMgr) - : ResourceIndexAccessBase(pResMgr) {} - // XIndexAccess - virtual ::com::sun::star::uno::Any SAL_CALL getByIndex( ::sal_Int32 Index ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException); - // XElementAccessBase - virtual ::com::sun::star::uno::Type SAL_CALL getElementType( ) throw (::com::sun::star::uno::RuntimeException) - { return ::getCppuType(reinterpret_cast< ::rtl::OUString*>(NULL)); }; - }; - - class ResourceStringListIndexAccess : public ResourceIndexAccessBase - { - public: - ResourceStringListIndexAccess( ::boost::shared_ptr<ResMgr> pResMgr) - : ResourceIndexAccessBase(pResMgr) {} - // XIndexAccess - virtual ::com::sun::star::uno::Any SAL_CALL getByIndex( ::sal_Int32 Index ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException); - // XElementAccessBase - virtual ::com::sun::star::uno::Type SAL_CALL getElementType( ) throw (::com::sun::star::uno::RuntimeException) - { return ::getCppuType(reinterpret_cast<Sequence<PropertyValue> * >(NULL)); }; - }; -} - -ResourceIndexAccess::ResourceIndexAccess(Sequence<Any> const& rArgs, Reference<XComponentContext> const&) - : m_pResMgr(GetResMgr(rArgs)) -{}; - -Reference<XInterface> initResourceIndexAccess(ResourceIndexAccess* pResourceIndexAccess) -{ - Reference<XInterface> xResult(static_cast<cppu::OWeakObject*>(pResourceIndexAccess)); - if(!pResourceIndexAccess->hasElements()) - // xResult does not help the client to analyse the problem - // and will crash on getByIndex calls, better just give back an empty Reference - // so that such ResourceStringIndexAccess instances are never release into the wild - throw RuntimeException( - OUString(RTL_CONSTASCII_USTRINGPARAM("ressource manager could not get initialized")), - /* xResult */ Reference<XInterface>()); - return xResult; -} - -Any SAL_CALL ResourceIndexAccess::getByName(const OUString& aName) - throw (NoSuchElementException, WrappedTargetException, RuntimeException) -{ - const Sequence<OUString> aNames(getElementNames()); - Reference<XIndexAccess> xResult; - switch(::std::find(stl_begin(aNames), stl_end(aNames), aName)-stl_begin(aNames)) - { - case 0: - xResult = Reference<XIndexAccess>(new ResourceStringIndexAccess(m_pResMgr)); - break; - case 1: - xResult = Reference<XIndexAccess>(new ResourceStringListIndexAccess(m_pResMgr)); - break; - default: - throw NoSuchElementException(); - } - return makeAny(xResult); -} - -Sequence<OUString> SAL_CALL ResourceIndexAccess::getElementNames( ) - throw (RuntimeException) -{ - static Sequence<OUString> aResult; - if( aResult.getLength() == 0) - { - aResult.realloc(2); - aResult[0] = OUString(RTL_CONSTASCII_USTRINGPARAM("String")); - aResult[1] = OUString(RTL_CONSTASCII_USTRINGPARAM("StringList")); - } - return aResult; -} - -::sal_Bool SAL_CALL ResourceIndexAccess::hasByName(const OUString& aName) - throw (RuntimeException) -{ - const Sequence<OUString> aNames(getElementNames()); - return (::std::find(stl_begin(aNames), stl_end(aNames), aName) != stl_end(aNames)); -} - -Any SAL_CALL ResourceStringIndexAccess::getByIndex(sal_Int32 nIdx) - throw (IndexOutOfBoundsException, WrappedTargetException, RuntimeException) -{ - if(nIdx > SAL_MAX_UINT16 || nIdx < 0) - throw IndexOutOfBoundsException(); - SolarMutexGuard aGuard; - const ResId aId(static_cast<sal_uInt16>(nIdx), *m_pResMgr); - aId.SetRT(RSC_STRING); - if(!m_pResMgr->IsAvailable(aId)) - throw RuntimeException( - OUString(RTL_CONSTASCII_USTRINGPARAM("string ressource for id not available")), - Reference<XInterface>()); - return makeAny(OUString(String(aId))); -} - -Any SAL_CALL ResourceStringListIndexAccess::getByIndex(sal_Int32 nIdx) - throw (IndexOutOfBoundsException, WrappedTargetException, RuntimeException) -{ - if(nIdx > SAL_MAX_UINT16 || nIdx < 0) - throw IndexOutOfBoundsException(); - SolarMutexGuard aGuard; - const ResId aId(static_cast<sal_uInt16>(nIdx), *m_pResMgr); - aId.SetRT(RSC_STRINGARRAY); - if(!m_pResMgr->IsAvailable(aId)) - throw RuntimeException( - OUString(RTL_CONSTASCII_USTRINGPARAM("string list ressource for id not available")), - Reference<XInterface>()); - const ResStringArray aStringList(aId); - Sequence<PropertyValue> aPropList(aStringList.Count()); - for(sal_Int32 nCount = 0; nCount != aPropList.getLength(); ++nCount) - { - aPropList[nCount].Name = aStringList.GetString(nCount); - aPropList[nCount].Handle = -1; - aPropList[nCount].Value <<= aStringList.GetValue(nCount); - aPropList[nCount].State = PropertyState_DIRECT_VALUE; - } - return makeAny(aPropList); -} - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/extensions/source/resource/ResourceIndexAccess.hxx b/extensions/source/resource/ResourceIndexAccess.hxx deleted file mode 100644 index 41632591a..000000000 --- a/extensions/source/resource/ResourceIndexAccess.hxx +++ /dev/null @@ -1,75 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/* - * Version: MPL 1.1 / GPLv3+ / LGPLv3+ - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License or as specified alternatively below. You may obtain a copy of - * the License at http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Initial Developer of the Original Code is - * Bjoern Michaelsen <bjoern.michaelsen@canonical.com> - * Portions created by the Initial Developer are Copyright (C) 2010 the - * Initial Developer. All Rights Reserved. - * - * Major Contributor(s): - * - * For minor contributions see the git repository. - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 3 or later (the "GPLv3+"), or - * the GNU Lesser General Public License Version 3 or later (the "LGPLv3+"), - * in which case the provisions of the GPLv3+ or the LGPLv3+ are applicable - * instead of those above. - */ - -#ifndef EXTENSIONS_RESOURCE_RESOURCESTRINGINDEXACCESS_HXX -#define EXTENSIONS_RESOURCE_RESOURCESTRINGINDEXACCESS_HXX - -#include "precompiled_extensions.hxx" - -#include <boost/shared_ptr.hpp> -#include <com/sun/star/container/XNameAccess.hpp> -#include <com/sun/star/uno/Reference.hxx> -#include <com/sun/star/uno/Sequence.hxx> -#include <com/sun/star/uno/XInterface.hpp> -#include <cppuhelper/implbase1.hxx> - -class ResMgr; - -namespace extensions { namespace resource -{ - /** This class provides access to tools library text resources */ - class ResourceIndexAccess : public cppu::WeakImplHelper1< ::com::sun::star::container::XNameAccess> - { - public: - /** The ctor takes a sequence with one element: the name of the resource, e.g. svt */ - ResourceIndexAccess(::com::sun::star::uno::Sequence< ::com::sun::star::uno::Any> const& rArgs, ::com::sun::star::uno::Reference< ::com::sun::star::uno::XComponentContext> const&); - // XNameAccess - // The XNameAccess provides access to two named elements: - // "String" returns a XIndexAccess to String resources - // "StringList" returns a XIndexAccess to StringList/StringArray resources - virtual ::com::sun::star::uno::Any SAL_CALL getByName( const ::rtl::OUString& aName ) throw (::com::sun::star::container::NoSuchElementException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException); - virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getElementNames( ) throw (::com::sun::star::uno::RuntimeException); - virtual ::sal_Bool SAL_CALL hasByName( const ::rtl::OUString& aName ) throw (::com::sun::star::uno::RuntimeException); - // XElementAccess - virtual ::com::sun::star::uno::Type SAL_CALL getElementType( ) throw (::com::sun::star::uno::RuntimeException) - { return ::getCppuType(reinterpret_cast< ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface>*>(NULL)); }; - virtual ::sal_Bool SAL_CALL hasElements( ) throw (::com::sun::star::uno::RuntimeException) - { return static_cast<bool>(m_pResMgr.get()); }; - - private: - // m_pResMgr should never be NULL - const ::boost::shared_ptr<ResMgr> m_pResMgr; - }; -}} - -::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface> initResourceIndexAccess(::extensions::resource::ResourceIndexAccess*); - -#endif -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/extensions/source/resource/exports.dxp b/extensions/source/resource/exports.dxp deleted file mode 100644 index 700330789..000000000 --- a/extensions/source/resource/exports.dxp +++ /dev/null @@ -1 +0,0 @@ -component_getFactory diff --git a/extensions/source/resource/makefile.mk b/extensions/source/resource/makefile.mk deleted file mode 100644 index 4839ec0b7..000000000 --- a/extensions/source/resource/makefile.mk +++ /dev/null @@ -1,86 +0,0 @@ -#************************************************************************* -# -# 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. -# -#************************************************************************* -PRJ=..$/.. - -PRJNAME=extensions -TARGET=res -LIBTARGET=NO -USE_LDUMP2=TRUE -USE_DEFFILE=TRUE -ENABLE_EXCEPTIONS=TRUE - -# --- Settings ----------------------------------------------------- - -.INCLUDE : $(PRJ)$/util$/makefile.pmk - -# --- Files -------------------------------------------------------- - -SLOFILES= \ - $(SLO)$/ResourceIndexAccess.obj \ - $(SLO)$/oooresourceloader.obj \ - $(SLO)$/resourceservices.obj - -LIB1TARGET= $(SLB)$/$(TARGET).lib -LIB1OBJFILES= $(SLOFILES) - -SHL1TARGET= $(TARGET)$(DLLPOSTFIX) - -SHL1STDLIBS= \ - $(COMPHELPERLIB) \ - $(CPPULIB) \ - $(CPPUHELPERLIB) \ - $(SALLIB) \ - $(VCLLIB) \ - $(TOOLSLIB) - -SHL1DEPN= -SHL1IMPLIB= ires -SHL1LIBS= $(LIB1TARGET) -SHL1DEF= $(MISC)$/$(SHL1TARGET).def - -SHL1DEF=$(MISC)$/$(SHL1TARGET).def -SHL1IMPLIB=i$(TARGET) -SHL1LIBS=$(SLB)$/$(TARGET).lib -SHL1VERSIONMAP=$(SOLARENV)/src/component.map - -DEF1NAME= $(SHL1TARGET) -DEF1EXPORTFILE= exports.dxp - - -# --- Targets ------------------------------------------------------ - -.INCLUDE : target.mk -.INCLUDE : $(PRJ)$/util$/target.pmk - - -ALLTAR : $(MISC)/res.component - -$(MISC)/res.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \ - res.component - $(XSLTPROC) --nonet --stringparam uri \ - '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \ - $(SOLARENV)/bin/createcomponent.xslt res.component diff --git a/extensions/source/resource/oooresourceloader.cxx b/extensions/source/resource/oooresourceloader.cxx deleted file mode 100644 index 9488c658e..000000000 --- a/extensions/source/resource/oooresourceloader.cxx +++ /dev/null @@ -1,341 +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_extensions.hxx" - -#include <oooresourceloader.hxx> -#include <vcl/svapp.hxx> -#include <tools/simplerm.hxx> -#include <tools/rcid.h> -#include <cppuhelper/implbase1.hxx> -#include <cppuhelper/weakref.hxx> - -#include <boost/shared_ptr.hpp> -#include <map> - -using namespace ::com::sun::star::uno; -using namespace ::com::sun::star::resource; -using namespace ::com::sun::star::container; -using namespace ::com::sun::star::lang; - - -namespace extensions { namespace resource -{ - /** encapsulates access to a fixed resource type - */ - class IResourceType - { - public: - /** returns the RESOURCE_TYPE associated with this instance - */ - virtual RESOURCE_TYPE getResourceType() const = 0; - - /** reads a single resource from the given resource manager - @param _resourceManager - the resource manager to read from - @param _resourceId - the id of the resource to read - @return - the required resource - @precond - the caler checked via <code>_resourceManager.IsAvailable( getResourceType(), _resourceId )</code> - that the required resource really exists - */ - virtual Any getResource( SimpleResMgr& _resourceManager, sal_Int32 _resourceId ) const = 0; - - virtual ~IResourceType() { }; - }; - - class StringResourceAccess : public IResourceType - { - public: - StringResourceAccess(); - - // IResourceType - virtual RESOURCE_TYPE getResourceType() const; - virtual Any getResource( SimpleResMgr& _resourceManager, sal_Int32 _resourceId ) const; - }; - - StringResourceAccess::StringResourceAccess() - { - } - - RESOURCE_TYPE StringResourceAccess::getResourceType() const - { - return RSC_STRING; - } - - Any StringResourceAccess::getResource( SimpleResMgr& _resourceManager, sal_Int32 _resourceId ) const - { - OSL_PRECOND( _resourceManager.IsAvailable( getResourceType(), _resourceId ), "StringResourceAccess::getResource: precondition not met!" ); - Any aResource; - aResource <<= ::rtl::OUString( _resourceManager.ReadString( _resourceId ) ); - return aResource; - } - - typedef ::cppu::WeakImplHelper1 < XResourceBundle - > OpenOfficeResourceBundle_Base; - class OpenOfficeResourceBundle : public OpenOfficeResourceBundle_Base - { - private: - typedef ::boost::shared_ptr< IResourceType > ResourceTypePtr; - typedef ::std::map< ::rtl::OUString, ResourceTypePtr > ResourceTypes; - - ::osl::Mutex m_aMutex; - Reference< XResourceBundle > m_xParent; - Locale m_aLocale; - SimpleResMgr* m_pResourceManager; - ResourceTypes m_aResourceTypes; - - public: - OpenOfficeResourceBundle( - const Reference< XComponentContext >& _rxContext, - const ::rtl::OUString& _rBaseName, - const Locale& _rLocale - ); - - protected: - ~OpenOfficeResourceBundle(); - - public: - // XResourceBundle - virtual ::com::sun::star::uno::Reference< ::com::sun::star::resource::XResourceBundle > SAL_CALL getParent() throw (::com::sun::star::uno::RuntimeException); - virtual void SAL_CALL setParent( const ::com::sun::star::uno::Reference< ::com::sun::star::resource::XResourceBundle >& _parent ) throw (::com::sun::star::uno::RuntimeException); - virtual ::com::sun::star::lang::Locale SAL_CALL getLocale( ) throw (::com::sun::star::uno::RuntimeException); - virtual ::com::sun::star::uno::Any SAL_CALL getDirectElement( const ::rtl::OUString& key ) throw (::com::sun::star::uno::RuntimeException); - - // XNameAccess (base of XResourceBundle) - virtual ::com::sun::star::uno::Any SAL_CALL getByName( const ::rtl::OUString& aName ) throw (::com::sun::star::container::NoSuchElementException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException); - virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getElementNames( ) throw (::com::sun::star::uno::RuntimeException); - virtual ::sal_Bool SAL_CALL hasByName( const ::rtl::OUString& aName ) throw (::com::sun::star::uno::RuntimeException); - - // XElementAccess (base of XNameAccess) - virtual ::com::sun::star::uno::Type SAL_CALL getElementType( ) throw (::com::sun::star::uno::RuntimeException); - virtual ::sal_Bool SAL_CALL hasElements( ) throw (::com::sun::star::uno::RuntimeException); - - private: - /** retrievs the element with the given key, without asking our parent bundle - @param _key - the key of the element to retrieve - @param _out_Element - will contained the retrieved element upon successful return. If the method is unsuccessful, the - value will not be touched. - @return - <TRUE/> if and only if the element could be retrieved - @precond - our mutex is locked - */ - bool impl_getDirectElement_nothrow( const ::rtl::OUString& _key, Any& _out_Element ) const; - - /** retrieves the resource type and id from a given resource key, which assembles those two - @param _key - the resource key as got via a public API call - @param _out_resourceType - the resource type, if successful - @param _out_resourceId - the resource id, if successful - @return - <TRUE/> if and only if the given key specifies a known resource type, and contains a valid - resource id - */ - bool impl_getResourceTypeAndId_nothrow( const ::rtl::OUString& _key, ResourceTypePtr& _out_resourceType, sal_Int32& _out_resourceId ) const; - }; - - OpenOfficeResourceLoader::OpenOfficeResourceLoader( Reference< XComponentContext > const& _rxContext ) - :m_xContext( _rxContext ) - { - } - - //-------------------------------------------------------------------- - Reference< XResourceBundle > SAL_CALL OpenOfficeResourceLoader::loadBundle_Default( const ::rtl::OUString& _baseName ) throw (MissingResourceException, RuntimeException) - { - return loadBundle( _baseName, Application::GetSettings().GetUILocale() ); - } - - //-------------------------------------------------------------------- - Reference< XResourceBundle > SAL_CALL OpenOfficeResourceLoader::loadBundle( const ::rtl::OUString& _baseName, const Locale& _locale ) throw (MissingResourceException, RuntimeException) - { - ::osl::MutexGuard aGuard( m_aMutex ); - - Reference< XResourceBundle > xBundle; - - ResourceBundleDescriptor resourceDescriptor( _baseName, _locale ); - ResourceBundleCache::iterator cachePos = m_aBundleCache.find( resourceDescriptor ); - if ( cachePos != m_aBundleCache.end() ) - xBundle = cachePos->second; - - if ( !xBundle.is() ) - { // not in the cache, or already died - xBundle = new OpenOfficeResourceBundle( m_xContext, _baseName, _locale ); - m_aBundleCache.insert( ResourceBundleCache::value_type( resourceDescriptor, xBundle ) ); - } - - return xBundle; - } - - OpenOfficeResourceBundle::OpenOfficeResourceBundle( const Reference< XComponentContext >& /*_rxContext*/, const ::rtl::OUString& _rBaseName, const Locale& _rLocale ) - :m_aLocale( _rLocale ) - ,m_pResourceManager( NULL ) - { - ::rtl::OUString sBaseName( _rBaseName ); - m_pResourceManager = new SimpleResMgr( sBaseName, m_aLocale ); - - if ( !m_pResourceManager->IsValid() ) - { - delete m_pResourceManager, m_pResourceManager = NULL; - throw MissingResourceException(); - } - - // supported resource types so far: strings - m_aResourceTypes[ ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "string" ) ) ] = - ResourceTypePtr( new StringResourceAccess ); - } - - OpenOfficeResourceBundle::~OpenOfficeResourceBundle() - { - delete m_pResourceManager; - } - - Reference< XResourceBundle > SAL_CALL OpenOfficeResourceBundle::getParent() throw (RuntimeException) - { - ::osl::MutexGuard aGuard( m_aMutex ); - return m_xParent; - } - - void SAL_CALL OpenOfficeResourceBundle::setParent( const Reference< XResourceBundle >& _parent ) throw (RuntimeException) - { - ::osl::MutexGuard aGuard( m_aMutex ); - m_xParent = _parent; - } - - Locale SAL_CALL OpenOfficeResourceBundle::getLocale( ) throw (RuntimeException) - { - ::osl::MutexGuard aGuard( m_aMutex ); - return m_aLocale; - } - - bool OpenOfficeResourceBundle::impl_getResourceTypeAndId_nothrow( const ::rtl::OUString& _key, ResourceTypePtr& _out_resourceType, sal_Int32& _out_resourceId ) const - { - sal_Int32 typeSeparatorPos = _key.indexOf( ':' ); - if ( typeSeparatorPos == -1 ) - // invalid key - return false; - - ::rtl::OUString resourceType = _key.copy( 0, typeSeparatorPos ); - - ResourceTypes::const_iterator typePos = m_aResourceTypes.find( resourceType ); - if ( typePos == m_aResourceTypes.end() ) - // don't know this resource type - return false; - - _out_resourceType = typePos->second; - _out_resourceId = _key.copy( typeSeparatorPos + 1 ).toInt32(); - return true; - } - - bool OpenOfficeResourceBundle::impl_getDirectElement_nothrow( const ::rtl::OUString& _key, Any& _out_Element ) const - { - ResourceTypePtr resourceType; - sal_Int32 resourceId( 0 ); - if ( !impl_getResourceTypeAndId_nothrow( _key, resourceType, resourceId ) ) - return false; - - if ( !m_pResourceManager->IsAvailable( resourceType->getResourceType(), resourceId ) ) - // no such resource with the given type/id - return false; - - _out_Element = resourceType->getResource( *m_pResourceManager, resourceId ); - return _out_Element.hasValue(); - } - - Any SAL_CALL OpenOfficeResourceBundle::getDirectElement( const ::rtl::OUString& _key ) throw (RuntimeException) - { - ::osl::MutexGuard aGuard( m_aMutex ); - - Any aElement; - impl_getDirectElement_nothrow( _key, aElement ); - return aElement; - } - - Any SAL_CALL OpenOfficeResourceBundle::getByName( const ::rtl::OUString& _key ) throw (NoSuchElementException, WrappedTargetException, RuntimeException) - { - ::osl::MutexGuard aGuard( m_aMutex ); - - Any aElement; - if ( !impl_getDirectElement_nothrow( _key, aElement ) ) - { - if ( m_xParent.is() ) - aElement = m_xParent->getByName( _key ); - } - - if ( !aElement.hasValue() ) - throw NoSuchElementException( ::rtl::OUString(), *this ); - - return aElement; - } - - Sequence< ::rtl::OUString > SAL_CALL OpenOfficeResourceBundle::getElementNames( ) throw (RuntimeException) - { - ::osl::MutexGuard aGuard( m_aMutex ); - OSL_FAIL( "OpenOfficeResourceBundle::getElementNames: not implemented!" ); - // the (Simple)ResManager does not provide an API to enumerate the resources - return Sequence< ::rtl::OUString >( ); - } - - ::sal_Bool SAL_CALL OpenOfficeResourceBundle::hasByName( const ::rtl::OUString& _key ) throw (RuntimeException) - { - ::osl::MutexGuard aGuard( m_aMutex ); - - ResourceTypePtr resourceType; - sal_Int32 resourceId( 0 ); - if ( !impl_getResourceTypeAndId_nothrow( _key, resourceType, resourceId ) ) - return sal_False; - - if ( !m_pResourceManager->IsAvailable( resourceType->getResourceType(), resourceId ) ) - return sal_False; - - return sal_True; - } - - Type SAL_CALL OpenOfficeResourceBundle::getElementType( ) throw (RuntimeException) - { - return ::cppu::UnoType< Any >::get(); - } - - ::sal_Bool SAL_CALL OpenOfficeResourceBundle::hasElements( ) throw (RuntimeException) - { - ::osl::MutexGuard aGuard( m_aMutex ); - OSL_FAIL( "OpenOfficeResourceBundle::hasElements: not implemented!" ); - // the (Simple)ResManager does not provide an API to enumerate the resources - return ::sal_Bool( ); - } - -}} - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/extensions/source/resource/oooresourceloader.hxx b/extensions/source/resource/oooresourceloader.hxx deleted file mode 100644 index fd7f526ce..000000000 --- a/extensions/source/resource/oooresourceloader.hxx +++ /dev/null @@ -1,87 +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. - * - ************************************************************************/ - - -#ifndef EXTENSIONS_RESOURCE_OOORESOURCELOADER_HXX -#define EXTENSIONS_RESOURCE_OOORESOURCELOADER_HXX - -#include <com/sun/star/lang/XMultiServiceFactory.hpp> -#include <com/sun/star/resource/XResourceBundleLoader.hpp> -#include <com/sun/star/uno/XComponentContext.hpp> -#include <cppuhelper/implbase1.hxx> - -#include <functional> -#include <map> -#include <utility> - -namespace extensions { namespace resource -{ - typedef ::std::pair< ::rtl::OUString, ::com::sun::star::lang::Locale> ResourceBundleDescriptor; - - struct ResourceBundleDescriptorLess : public ::std::binary_function<ResourceBundleDescriptor, ResourceBundleDescriptor, bool> - { - bool operator()( const ResourceBundleDescriptor& _lhs, const ResourceBundleDescriptor& _rhs ) const - { - if ( _lhs.first < _rhs.first ) - return true; - if ( _lhs.second.Language < _rhs.second.Language ) - return true; - if ( _lhs.second.Country < _rhs.second.Country ) - return true; - if ( _lhs.second.Variant < _rhs.second.Variant ) - return true; - return false; - } - }; - - class OpenOfficeResourceLoader : public ::cppu::WeakImplHelper1< ::com::sun::star::resource::XResourceBundleLoader> - { - public: - typedef ::std::map< - ResourceBundleDescriptor, - ::com::sun::star::uno::WeakReference< ::com::sun::star::resource::XResourceBundle>, - ResourceBundleDescriptorLess> ResourceBundleCache; - - OpenOfficeResourceLoader(::com::sun::star::uno::Reference< ::com::sun::star::uno::XComponentContext> const&); - // XResourceBundleLoader - virtual ::com::sun::star::uno::Reference< ::com::sun::star::resource::XResourceBundle> SAL_CALL loadBundle_Default( const ::rtl::OUString& aBaseName ) throw (::com::sun::star::resource::MissingResourceException, ::com::sun::star::uno::RuntimeException); - virtual ::com::sun::star::uno::Reference< ::com::sun::star::resource::XResourceBundle> SAL_CALL loadBundle( const ::rtl::OUString& abaseName, const ::com::sun::star::lang::Locale& aLocale ) throw (::com::sun::star::resource::MissingResourceException, ::com::sun::star::uno::RuntimeException); - - private: - OpenOfficeResourceLoader(); // never implemented - OpenOfficeResourceLoader( const OpenOfficeResourceLoader& ); // never implemented - OpenOfficeResourceLoader& operator=( const OpenOfficeResourceLoader& ); // never implemented - ::com::sun::star::uno::Reference< ::com::sun::star::uno::XComponentContext> m_xContext; - ::osl::Mutex m_aMutex; - ResourceBundleCache m_aBundleCache; - }; -}} - -#endif // EXTENSIONS_RESOURCE_OOORESOURCELOADER_HXX - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/extensions/source/resource/res.component b/extensions/source/resource/res.component deleted file mode 100644 index b5df9748e..000000000 --- a/extensions/source/resource/res.component +++ /dev/null @@ -1,38 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!--********************************************************************** -* -* 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. -* -**********************************************************************--> - -<component loader="com.sun.star.loader.SharedLibrary" - xmlns="http://openoffice.org/2010/uno-components"> - <implementation name="com.sun.star.comp.resource.OpenOfficeResourceLoader"> - <service name="com.sun.star.resource.OfficeResourceLoader"/> - <singleton name="com.sun.star.resource.OfficeResourceLoader"/> - </implementation> - <implementation name="org.libreoffice.extensions.resource.ResourceIndexAccess"> - <service name="org.libreoffice.resource.ResourceIndexAccess"/> - </implementation> -</component> diff --git a/extensions/source/resource/resourceservices.cxx b/extensions/source/resource/resourceservices.cxx deleted file mode 100644 index 0a08bb526..000000000 --- a/extensions/source/resource/resourceservices.cxx +++ /dev/null @@ -1,58 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/* - * Version: MPL 1.1 / GPLv3+ / LGPLv3+ - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License or as specified alternatively below. You may obtain a copy of - * the License at http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Initial Developer of the Original Code is - * Bjoern Michaelsen <bjoern.michaelsen@canonical.com> - * Portions created by the Initial Developer are Copyright (C) 2010 the - * Initial Developer. All Rights Reserved. - * - * Major Contributor(s): - * - * For minor contributions see the git repository. - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 3 or later (the "GPLv3+"), or - * the GNU Lesser General Public License Version 3 or later (the "LGPLv3+"), - * in which case the provisions of the GPLv3+ or the LGPLv3+ are applicable - * instead of those above. - */ - -#include "precompiled_extensions.hxx" - -#include <ResourceIndexAccess.hxx> -#include <oooresourceloader.hxx> -#include <comphelper/servicedecl.hxx> -#include <uno/environment.h> - -namespace sdecl = ::comphelper::service_decl; - -sdecl::class_< ::extensions::resource::ResourceIndexAccess, sdecl::with_args<true> > ResourceIndexAccessServiceImpl; -sdecl::class_< ::extensions::resource::OpenOfficeResourceLoader> OpenOfficeResourceLoaderServiceImpl; - -const sdecl::ServiceDecl ResourceIndexAccessDecl( - ResourceIndexAccessServiceImpl, - "org.libreoffice.extensions.resource.ResourceIndexAccess", - "org.libreoffice.resource.ResourceIndexAccess"); - -const sdecl::ServiceDecl OpenOfficeResourceLoaderDecl( - OpenOfficeResourceLoaderServiceImpl, - "com.sun.star.comp.resource.OpenOfficeResourceLoader", - "com.sun.star.resource.OfficeResourceLoader"); - -COMPHELPER_SERVICEDECL_EXPORTS2( - ResourceIndexAccessDecl, - OpenOfficeResourceLoaderDecl -); - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ |