xref: /aoo41x/main/package/inc/ZipPackageEntry.hxx (revision cdf0e10c)
1 /*************************************************************************
2  *
3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4  *
5  * Copyright 2000, 2010 Oracle and/or its affiliates.
6  *
7  * OpenOffice.org - a multi-platform office productivity suite
8  *
9  * This file is part of OpenOffice.org.
10  *
11  * OpenOffice.org is free software: you can redistribute it and/or modify
12  * it under the terms of the GNU Lesser General Public License version 3
13  * only, as published by the Free Software Foundation.
14  *
15  * OpenOffice.org is distributed in the hope that it will be useful,
16  * but WITHOUT ANY WARRANTY; without even the implied warranty of
17  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18  * GNU Lesser General Public License version 3 for more details
19  * (a copy is included in the LICENSE file that accompanied this code).
20  *
21  * You should have received a copy of the GNU Lesser General Public License
22  * version 3 along with OpenOffice.org.  If not, see
23  * <http://www.openoffice.org/license.html>
24  * for a copy of the LGPLv3 License.
25  *
26  ************************************************************************/
27 #ifndef _ZIP_PACKAGE_ENTRY_HXX
28 #define _ZIP_PACKAGE_ENTRY_HXX
29 
30 #include <com/sun/star/container/XChild.hpp>
31 #include <com/sun/star/container/XNamed.hpp>
32 #include <com/sun/star/beans/XPropertySet.hpp>
33 #include <com/sun/star/lang/XUnoTunnel.hpp>
34 #include <com/sun/star/container/XNameContainer.hpp>
35 #ifndef _COM_SUN_STAR_LANG_XPSERVICEINFO_HPP_
36 #include <com/sun/star/lang/XServiceInfo.hpp>
37 #endif
38 #include <ZipEntry.hxx>
39 #include <cppuhelper/implbase5.hxx>
40 
41 class ZipPackageFolder;
42 
43 class ZipPackageEntry : public cppu::WeakImplHelper5
44 <
45 	com::sun::star::container::XNamed,
46 	com::sun::star::container::XChild,
47 	com::sun::star::lang::XUnoTunnel,
48 	com::sun::star::beans::XPropertySet,
49 	com::sun::star::lang::XServiceInfo
50 >
51 {
52 protected:
53     ::rtl::OUString msName;
54 	bool mbIsFolder:1;
55 	bool mbAllowRemoveOnInsert:1;
56 	// com::sun::star::uno::Reference < com::sun::star::container::XNameContainer > xParent;
57 	::rtl::OUString		sMediaType;
58 	ZipPackageFolder * pParent;
59 public:
60 	ZipEntry aEntry;
61 	ZipPackageEntry ( bool bNewFolder = sal_False );
62 	virtual ~ZipPackageEntry( void );
63 
64 	::rtl::OUString & GetMediaType () { return sMediaType; }
65 	void SetMediaType ( const ::rtl::OUString & sNewType) { sMediaType = sNewType; }
66 	void doSetParent ( ZipPackageFolder * pNewParent, sal_Bool bInsert );
67 	bool IsFolder ( ) { return mbIsFolder; }
68 	ZipPackageFolder* GetParent ( ) { return pParent; }
69 	void SetFolder ( bool bSetFolder ) { mbIsFolder = bSetFolder; }
70 
71 	void clearParent ( void )
72 	{
73 		// xParent.clear();
74 		pParent = NULL;
75 	}
76 	// XNamed
77     virtual ::rtl::OUString SAL_CALL getName(  )
78 		throw(::com::sun::star::uno::RuntimeException);
79     virtual void SAL_CALL setName( const ::rtl::OUString& aName )
80 		throw(::com::sun::star::uno::RuntimeException);
81 	// XChild
82     virtual ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > SAL_CALL getParent(  )
83 		throw(::com::sun::star::uno::RuntimeException);
84     virtual void SAL_CALL setParent( const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >& Parent )
85 		throw(::com::sun::star::lang::NoSupportException, ::com::sun::star::uno::RuntimeException);
86 	// XUnoTunnel
87     virtual sal_Int64 SAL_CALL getSomething( const ::com::sun::star::uno::Sequence< sal_Int8 >& aIdentifier )
88 		throw(::com::sun::star::uno::RuntimeException) = 0;
89 	// XPropertySet
90     virtual ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySetInfo > SAL_CALL getPropertySetInfo(  )
91 		throw(::com::sun::star::uno::RuntimeException);
92     virtual void SAL_CALL setPropertyValue( const ::rtl::OUString& aPropertyName, const ::com::sun::star::uno::Any& aValue )
93 		throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::beans::PropertyVetoException, ::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException) = 0;
94     virtual ::com::sun::star::uno::Any SAL_CALL getPropertyValue( const ::rtl::OUString& PropertyName )
95 		throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException) = 0;
96     virtual void SAL_CALL addPropertyChangeListener( const ::rtl::OUString& aPropertyName, const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertyChangeListener >& xListener )
97 		throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
98     virtual void SAL_CALL removePropertyChangeListener( const ::rtl::OUString& aPropertyName, const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertyChangeListener >& aListener )
99 		throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
100     virtual void SAL_CALL addVetoableChangeListener( const ::rtl::OUString& PropertyName, const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XVetoableChangeListener >& aListener )
101 		throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
102     virtual void SAL_CALL removeVetoableChangeListener( const ::rtl::OUString& PropertyName, const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XVetoableChangeListener >& aListener )
103 		throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
104 };
105 #endif
106