summaryrefslogtreecommitdiff
path: root/package
diff options
context:
space:
mode:
authorDavid Tardon <dtardon@redhat.com>2014-01-15 15:14:04 +0100
committerDavid Tardon <dtardon@redhat.com>2014-01-15 21:27:47 +0100
commit5b2cca80eeb2c8ee210820cc8ed95e5d69214807 (patch)
tree8dc9d44892ccf9ef3aa2896857d0858b9a835852 /package
parente9a036aca1062fd5512b8dbd93ef7172831b3bc4 (diff)
impl. enumeration for ZipPackage
Change-Id: I800d22d8ec99e943b59467cf64b96aaa1f797953
Diffstat (limited to 'package')
-rw-r--r--package/inc/ZipPackage.hxx14
-rw-r--r--package/source/zippackage/ZipPackage.cxx25
2 files changed, 37 insertions, 2 deletions
diff --git a/package/inc/ZipPackage.hxx b/package/inc/ZipPackage.hxx
index 3631799c59e9..9ee401bcf3f8 100644
--- a/package/inc/ZipPackage.hxx
+++ b/package/inc/ZipPackage.hxx
@@ -19,8 +19,9 @@
#ifndef _ZIP_PACKAGE_HXX
#define _ZIP_PACKAGE_HXX
-#include <cppuhelper/implbase7.hxx>
+#include <cppuhelper/implbase8.hxx>
#include <com/sun/star/lang/XInitialization.hpp>
+#include <com/sun/star/container/XEnumerationAccess.hpp>
#include <com/sun/star/container/XHierarchicalNameAccess.hpp>
#include <com/sun/star/lang/XSingleServiceFactory.hpp>
#include <com/sun/star/util/XChangesBatch.hpp>
@@ -63,12 +64,13 @@ enum InitialisationMode
e_IMode_XStream
};
-class ZipPackage : public cppu::WeakImplHelper7
+class ZipPackage : public cppu::WeakImplHelper8
<
com::sun::star::lang::XInitialization,
com::sun::star::lang::XSingleServiceFactory,
com::sun::star::lang::XUnoTunnel,
com::sun::star::lang::XServiceInfo,
+ com::sun::star::container::XEnumerationAccess,
com::sun::star::container::XHierarchicalNameAccess,
com::sun::star::util::XChangesBatch,
com::sun::star::beans::XPropertySet
@@ -141,6 +143,14 @@ public:
// XInitialization
virtual void SAL_CALL initialize( const ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Any >& aArguments )
throw(::com::sun::star::uno::Exception, ::com::sun::star::uno::RuntimeException);
+ // XEnumerationAccess
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::container::XEnumeration > SAL_CALL createEnumeration()
+ throw(::com::sun::star::uno::RuntimeException);
+ // XElementType
+ virtual ::com::sun::star::uno::Type getElementType()
+ throw(::com::sun::star::uno::RuntimeException);
+ virtual sal_Bool hasElements()
+ throw(::com::sun::star::uno::RuntimeException);
// XHierarchicalNameAccess
virtual ::com::sun::star::uno::Any SAL_CALL getByHierarchicalName( const OUString& aName )
throw(::com::sun::star::container::NoSuchElementException, ::com::sun::star::uno::RuntimeException);
diff --git a/package/source/zippackage/ZipPackage.cxx b/package/source/zippackage/ZipPackage.cxx
index f20b1f07414c..77b7862c0ecd 100644
--- a/package/source/zippackage/ZipPackage.cxx
+++ b/package/source/zippackage/ZipPackage.cxx
@@ -66,6 +66,7 @@
#include <osl/time.h>
#include "com/sun/star/io/XAsyncOutputMonitor.hpp"
+#include <cassert>
#include <cstring>
#include <memory>
#include <vector>
@@ -777,6 +778,30 @@ void SAL_CALL ZipPackage::initialize( const uno::Sequence< Any >& aArguments )
}
}
+::com::sun::star::uno::Reference< ::com::sun::star::container::XEnumeration > SAL_CALL ZipPackage::createEnumeration()
+ throw( RuntimeException )
+{
+ assert(m_pRootFolder);
+
+ return m_pRootFolder->createEnumeration();
+}
+
+::com::sun::star::uno::Type ZipPackage::getElementType()
+ throw( RuntimeException )
+{
+ assert(m_pRootFolder);
+
+ return m_pRootFolder->getElementType();
+}
+
+sal_Bool ZipPackage::hasElements()
+ throw( RuntimeException )
+{
+ assert(m_pRootFolder);
+
+ return m_pRootFolder->hasElements();
+}
+
Any SAL_CALL ZipPackage::getByHierarchicalName( const OUString& aName )
throw( NoSuchElementException, RuntimeException )
{