summaryrefslogtreecommitdiff
path: root/sc/source/ui/vba/vbacollectionimpl.hxx
diff options
context:
space:
mode:
Diffstat (limited to 'sc/source/ui/vba/vbacollectionimpl.hxx')
-rw-r--r--sc/source/ui/vba/vbacollectionimpl.hxx259
1 files changed, 0 insertions, 259 deletions
diff --git a/sc/source/ui/vba/vbacollectionimpl.hxx b/sc/source/ui/vba/vbacollectionimpl.hxx
deleted file mode 100644
index 14fceb1b5f71..000000000000
--- a/sc/source/ui/vba/vbacollectionimpl.hxx
+++ /dev/null
@@ -1,259 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: vbacollectionimpl.hxx,v $
- * $Revision: 1.5 $
- *
- * 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 SC_VBA_COLLECTION_IMPL_HXX
-#define SC_VBA_COLLECTION_IMPL_HXX
-
-#include <ooo/vba/XCollection.hpp>
-//#include <ooo/vba/XCollectionTest.hpp>
-#include <com/sun/star/container/XEnumerationAccess.hpp>
-#include <com/sun/star/uno/XComponentContext.hpp>
-#include <com/sun/star/script/XDefaultMethod.hpp>
-#include <com/sun/star/container/XIndexAccess.hpp>
-#include <com/sun/star/container/XNameAccess.hpp>
-#include <com/sun/star/container/XNamed.hpp>
-
-#include <cppuhelper/implbase3.hxx>
-#include <cppuhelper/implbase2.hxx>
-#include <cppuhelper/implbase1.hxx>
-
-#include "vbahelper.hxx"
-#include "vbahelperinterface.hxx"
-#include "vbaglobals.hxx"
-
-#include <vector>
-
-typedef ::cppu::WeakImplHelper1< css::container::XEnumeration > EnumerationHelper_BASE;
-
-class EnumerationHelperImpl : public EnumerationHelper_BASE
-{
-protected:
- css::uno::Reference< css::uno::XComponentContext > m_xContext;
- css::uno::Reference< css::container::XEnumeration > m_xEnumeration;
-public:
-
- EnumerationHelperImpl( const css::uno::Reference< css::uno::XComponentContext >& xContext, const css::uno::Reference< css::container::XEnumeration >& xEnumeration ) throw ( css::uno::RuntimeException ) : m_xContext( xContext ), m_xEnumeration( xEnumeration ) { }
- virtual ::sal_Bool SAL_CALL hasMoreElements( ) throw (css::uno::RuntimeException) { return m_xEnumeration->hasMoreElements(); }
-};
-
-// a wrapper class for a providing a XIndexAccess, XNameAccess, XEnumerationAccess impl based on providing a vector of interfaces
-// only requirement is the object needs to implement XName
-
-
-
-typedef ::cppu::WeakImplHelper3< css::container::XNameAccess, css::container::XIndexAccess, css::container::XEnumerationAccess > XNamedCollectionHelper_BASE;
-
-template< typename Ifc1 >
-class XNamedObjectCollectionHelper : public XNamedCollectionHelper_BASE
-{
-public:
-typedef std::vector< css::uno::Reference< Ifc1 > > XNamedVec;
-private:
-
- class XNamedEnumerationHelper : public EnumerationHelper_BASE
- {
- XNamedVec mXNamedVec;
- typename XNamedVec::iterator mIt;
- public:
- XNamedEnumerationHelper( const XNamedVec& sMap ) : mXNamedVec( sMap ), mIt( mXNamedVec.begin() ) {}
-
- virtual ::sal_Bool SAL_CALL hasMoreElements( ) throw (css::uno::RuntimeException)
- {
- return ( mIt != mXNamedVec.end() );
- }
-
- virtual css::uno::Any SAL_CALL nextElement( ) throw (css::container::NoSuchElementException, css::lang::WrappedTargetException, css::uno::RuntimeException)
- {
- if ( hasMoreElements() )
- return css::uno::makeAny( *mIt++ );
- throw css::container::NoSuchElementException();
- }
- };
-
-protected:
- XNamedVec mXNamedVec;
- typename XNamedVec::iterator cachePos;
-public:
- XNamedObjectCollectionHelper( const XNamedVec& sMap ) : mXNamedVec( sMap ), cachePos(mXNamedVec.begin()) {}
- // XElementAccess
- virtual css::uno::Type SAL_CALL getElementType( ) throw (css::uno::RuntimeException) { return Ifc1::static_type(0); }
- virtual ::sal_Bool SAL_CALL hasElements( ) throw (css::uno::RuntimeException) { return ( mXNamedVec.size() > 0 ); }
- // XNameAcess
- virtual css::uno::Any SAL_CALL getByName( const ::rtl::OUString& aName ) throw (css::container::NoSuchElementException, css::lang::WrappedTargetException, css::uno::RuntimeException)
- {
- if ( !hasByName(aName) )
- throw css::container::NoSuchElementException();
- return css::uno::makeAny( *cachePos );
- }
- virtual css::uno::Sequence< ::rtl::OUString > SAL_CALL getElementNames( ) throw (css::uno::RuntimeException)
- {
- css::uno::Sequence< rtl::OUString > sNames( mXNamedVec.size() );
- rtl::OUString* pString = sNames.getArray();
- typename XNamedVec::iterator it = mXNamedVec.begin();
- typename XNamedVec::iterator it_end = mXNamedVec.end();
-
- for ( ; it != it_end; ++it, ++pString )
- {
- css::uno::Reference< css::container::XNamed > xName( *it, css::uno::UNO_QUERY_THROW );
- *pString = xName->getName();
- }
- return sNames;
- }
- virtual ::sal_Bool SAL_CALL hasByName( const ::rtl::OUString& aName ) throw (css::uno::RuntimeException)
- {
- cachePos = mXNamedVec.begin();
- typename XNamedVec::iterator it_end = mXNamedVec.end();
- for ( ; cachePos != it_end; ++cachePos )
- {
- css::uno::Reference< css::container::XNamed > xName( *cachePos, css::uno::UNO_QUERY_THROW );
- if ( aName.equals( xName->getName() ) )
- break;
- }
- return ( cachePos != it_end );
- }
-
- // XElementAccess
- virtual ::sal_Int32 SAL_CALL getCount( ) throw (css::uno::RuntimeException) { return mXNamedVec.size(); }
- virtual css::uno::Any SAL_CALL getByIndex( ::sal_Int32 Index ) throw (css::lang::IndexOutOfBoundsException, css::lang::WrappedTargetException, css::uno::RuntimeException )
- {
- if ( Index < 0 || Index >= getCount() )
- throw css::lang::IndexOutOfBoundsException();
-
- return css::uno::makeAny( mXNamedVec[ Index ] );
-
- }
- // XEnumerationAccess
- virtual css::uno::Reference< css::container::XEnumeration > SAL_CALL createEnumeration( ) throw (css::uno::RuntimeException)
- {
- return new XNamedEnumerationHelper( mXNamedVec );
- }
-};
-
-// including a HelperInterface implementation
-template< typename Ifc1 >
-class ScVbaCollectionBase : public InheritedHelperInterfaceImpl< Ifc1 >
-{
-typedef InheritedHelperInterfaceImpl< Ifc1 > BaseColBase;
-protected:
- css::uno::Reference< css::container::XIndexAccess > m_xIndexAccess;
- css::uno::Reference< css::container::XNameAccess > m_xNameAccess;
-
- virtual css::uno::Any getItemByStringIndex( const rtl::OUString& sIndex ) throw (css::uno::RuntimeException)
- {
- if ( !m_xNameAccess.is() )
- throw css::uno::RuntimeException( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("ScVbaCollectionBase string index access not supported by this object") ), css::uno::Reference< css::uno::XInterface >() );
-
- return createCollectionObject( m_xNameAccess->getByName( sIndex ) );
- }
-
- virtual css::uno::Any getItemByIntIndex( const sal_Int32 nIndex ) throw (css::uno::RuntimeException)
- {
- if ( !m_xIndexAccess.is() )
- throw css::uno::RuntimeException( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("ScVbaCollectionBase numeric index access not supported by this object") ), css::uno::Reference< css::uno::XInterface >() );
- if ( nIndex <= 0 )
- {
- throw css::lang::IndexOutOfBoundsException(
- ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM(
- "index is 0 or negative" ) ),
- css::uno::Reference< css::uno::XInterface >() );
- }
- // need to adjust for vba index ( for which first element is 1 )
- return createCollectionObject( m_xIndexAccess->getByIndex( nIndex - 1 ) );
- }
-public:
- ScVbaCollectionBase( const css::uno::Reference< ov::XHelperInterface >& xParent, const css::uno::Reference< css::uno::XComponentContext >& xContext, const css::uno::Reference< css::container::XIndexAccess >& xIndexAccess ) : BaseColBase( xParent, xContext ), m_xIndexAccess( xIndexAccess ){ m_xNameAccess.set(m_xIndexAccess, css::uno::UNO_QUERY); }
- //XCollection
- virtual ::sal_Int32 SAL_CALL getCount() throw (css::uno::RuntimeException)
- {
- return m_xIndexAccess->getCount();
- }
-
- virtual css::uno::Any SAL_CALL Item( const css::uno::Any& Index1, const css::uno::Any& /*not processed in this base class*/ ) throw (css::uno::RuntimeException)
- {
- if ( Index1.getValueTypeClass() != css::uno::TypeClass_STRING )
- {
- sal_Int32 nIndex = 0;
-
- if ( ( Index1 >>= nIndex ) != sal_True )
- {
- rtl::OUString message;
- message = rtl::OUString::createFromAscii(
- "Couldn't convert index to Int32");
- throw css::lang::IndexOutOfBoundsException( message,
- css::uno::Reference< css::uno::XInterface >() );
- }
- return getItemByIntIndex( nIndex );
- }
- rtl::OUString aStringSheet;
-
- Index1 >>= aStringSheet;
- return getItemByStringIndex( aStringSheet );
- }
- // XDefaultMethod
- ::rtl::OUString SAL_CALL getDefaultMethodName( ) throw (css::uno::RuntimeException)
- {
- const static rtl::OUString sName( RTL_CONSTASCII_USTRINGPARAM("Item") );
- return sName;
- }
- // XEnumerationAccess
- virtual css::uno::Reference< css::container::XEnumeration > SAL_CALL createEnumeration() throw (css::uno::RuntimeException) = 0;
-
- // XElementAccess
- virtual css::uno::Type SAL_CALL getElementType() throw (css::uno::RuntimeException) = 0;
- // XElementAccess
- virtual ::sal_Bool SAL_CALL hasElements() throw (css::uno::RuntimeException)
- {
- return ( m_xIndexAccess->getCount() > 0 );
- }
- virtual css::uno::Any createCollectionObject( const css::uno::Any& aSource ) = 0;
-
-};
-
-typedef ::cppu::WeakImplHelper1<ov::XCollection> XCollection_InterfacesBASE;
-
-typedef ScVbaCollectionBase< XCollection_InterfacesBASE > CollImplBase1;
-// compatible with the old collections ( pre XHelperInterface base class ) ( some internal objects still use this )
-class ScVbaCollectionBaseImpl : public CollImplBase1
-{
-public:
- ScVbaCollectionBaseImpl( const css::uno::Reference< ov::XHelperInterface > xParent, const css::uno::Reference< css::uno::XComponentContext >& xContext, const css::uno::Reference< css::container::XIndexAccess >& xIndexAccess ) throw( css::uno::RuntimeException ) : CollImplBase1( xParent, xContext, xIndexAccess){}
-
-};
-
-template <typename Ifc> // where Ifc must implement XCollectionTest
-class CollTestImplHelper : public ScVbaCollectionBase< ::cppu::WeakImplHelper1< Ifc > >
-{
-typedef ScVbaCollectionBase< ::cppu::WeakImplHelper1< Ifc > > ImplBase1;
-
-public:
- CollTestImplHelper( const css::uno::Reference< ov::XHelperInterface >& xParent, const css::uno::Reference< css::uno::XComponentContext >& xContext, const css::uno::Reference< css::container::XIndexAccess >& xIndexAccess ) throw( css::uno::RuntimeException ) : ImplBase1( xParent, xContext, xIndexAccess ) {}
-};
-
-
-#endif //SC_VBA_COLLECTION_IMPL_HXX