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 __com_sun_star_ucb_PackageStreamContent_idl__
28#define __com_sun_star_ucb_PackageStreamContent_idl__
29
30#ifndef __com_sun_star_lang_XComponent_idl__
31#include <com/sun/star/lang/XComponent.idl>
32#endif
33
34#ifndef __com_sun_star_ucb_XContent_idl__
35#include <com/sun/star/ucb/XContent.idl>
36#endif
37
38#ifndef __com_sun_star_ucb_XCommandProcessor_idl__
39#include <com/sun/star/ucb/XCommandProcessor.idl>
40#endif
41
42#ifndef __com_sun_star_ucb_XCommandProcessor2_idl__
43#include <com/sun/star/ucb/XCommandProcessor2.idl>
44#endif
45
46#ifndef __com_sun_star_beans_XPropertiesChangeNotifier_idl__
47#include <com/sun/star/beans/XPropertiesChangeNotifier.idl>
48#endif
49
50#ifndef __com_sun_star_beans_XPropertyContainer_idl__
51#include <com/sun/star/beans/XPropertyContainer.idl>
52#endif
53
54#ifndef __com_sun_star_beans_XPropertySetInfoChangeNotifier_idl__
55#include <com/sun/star/beans/XPropertySetInfoChangeNotifier.idl>
56#endif
57
58#ifndef __com_sun_star_ucb_XCommandInfoChangeNotifier_idl__
59#include <com/sun/star/ucb/XCommandInfoChangeNotifier.idl>
60#endif
61
62#ifndef __com_sun_star_container_XChild_idl__
63#include <com/sun/star/container/XChild.idl>
64#endif
65
66//=============================================================================
67
68module com { module sun { module star { module ucb {
69
70//=============================================================================
71/** A PCP Stream is a content which represents a file inside a package.
72
73    <p>It is always contained in a PCP Folder. A PCP Stream has no children.
74
75	@see com::sun::star::ucb::PackageContentProvider
76	@see com::sun::star::ucb::PackageFolderContent
77*/
78published service PackageStreamContent
79{
80	//-------------------------------------------------------------------------
81	/** This interface is implemented according to the specification of
82		service <type>Content</type>.
83	 */
84	interface com::sun::star::lang::XComponent;
85
86	//-------------------------------------------------------------------------
87	/** This interface is implemented according to the specification of
88		service <type>Content</type>.
89	 */
90	interface com::sun::star::ucb::XContent;
91
92	//-------------------------------------------------------------------------
93	/** This interface is implemented according to the specification of
94		service <type>Content</type>.
95
96		<p>
97
98		<b>Supported Commands</b>
99		<ul>
100		<li>
101		getCommandInfo
102		</li>
103		<li>
104		getPropertySetInfo
105		</li>
106		<li>
107		getPropertyValues
108		</li>
109		<li>
110		setPropertyValues
111		</li>
112		<li>
113		insert ( makes a newly created stream persistent )
114		</li>
115		<li>
116		delete
117		</li>
118		<li>
119		open
120		</li>
121		</ul>
122
123		<b>Supported Properties</b>
124		<ul>
125		<li>
126		string ContentType ( read-only, always "application/vnd.sun.star.pkg-stream" )
127		</li>
128		<li>
129		boolean IsDocument ( read-only, always true )
130		</li>
131		<li>
132		boolean IsFolder ( read-only, always false )
133		</li>
134		<li>
135		string MediaType
136		</li>
137		<li>
138		string Size ( read-only )
139		</li>
140		<li>
141		string Title
142		</li>
143		<li>
144		boolean Compressed ( allows you to explecitly state whether you want a
145		stream to be compressed or not. The default value of this property
146		will be determined according to the value of the property 'MediaType'.
147		If it is empty or prefixed by "text/", the value of 'Compressed' is set
148		to true. Otherwise the value will be false. )
149		</li>
150		<li>
151		boolean Encrypted ( are the stream data encrypted or not ).
152		</li>
153		</ul>
154
155		</p>
156	 */
157	interface com::sun::star::ucb::XCommandProcessor;
158
159    //-------------------------------------------------------------------------
160    /** is an enhanced version of <type>XCommandProcessor</type> that has an
161        additional method for releasing command identifiers obtained via
162        <member>XCommandProcessor::createCommandIdentifier</member> to avoid
163        resource leaks. For a detailed description of the problem refer to
164        <member>XCommandProcessor2::releaseCommandIdentifier</member>.
165
166        <p>Where many existing <type>Content</type> implementations do not
167        (yet), every new implementation should support this interface.
168     */
169    [optional] interface com::sun::star::ucb::XCommandProcessor2;
170
171	//-------------------------------------------------------------------------
172	/** This interface is implemented according to the specification of
173		service <type>Content</type>.
174	 */
175	interface com::sun::star::beans::XPropertiesChangeNotifier;
176
177	//-------------------------------------------------------------------------
178	/** This interface is implemented according to the specification of
179		service <type>Content</type>.
180	 */
181	interface com::sun::star::beans::XPropertyContainer;
182
183	//-------------------------------------------------------------------------
184	/** This interface is implemented according to the specification of
185		service <type>Content</type>.
186	 */
187	interface com::sun::star::beans::XPropertySetInfoChangeNotifier;
188
189	//-------------------------------------------------------------------------
190	/** This interface is implemented according to the specification of
191		service <type>Content</type>.
192	 */
193	interface com::sun::star::ucb::XCommandInfoChangeNotifier;
194
195	//-------------------------------------------------------------------------
196	/** This interface is implemented according to the specification of
197		service <type>Content</type>.
198	 */
199	interface com::sun::star::container::XChild;
200};
201
202//=============================================================================
203
204}; }; }; };
205
206#endif
207