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_WebDAVFolderContent_idl__
28#define __com_sun_star_ucb_WebDAVFolderContent_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#ifndef __com_sun_star_ucb_XContentCreator_idl__
67#include <com/sun/star/ucb/XContentCreator.idl>
68#endif
69
70//=============================================================================
71
72module com { module sun { module star { module ucb {
73
74//=============================================================================
75/** A DCP Folder is a container for other DCP Folders or Documents.
76
77	@see com::sun::star::ucb::WebDAVContentProvider
78	@see com::sun::star::ucb::WebDAVDocumentContent
79*/
80published service WebDAVFolderContent
81{
82	//-------------------------------------------------------------------------
83	/** This interface is implemented according to the specification of
84		service <type>Content</type>.
85	 */
86	interface com::sun::star::lang::XComponent;
87
88	//-------------------------------------------------------------------------
89	/** This interface is implemented according to the specification of
90		service <type>Content</type>.
91	 */
92	interface com::sun::star::ucb::XContent;
93
94	//-------------------------------------------------------------------------
95	/** This interface is implemented according to the specification of
96		service <type>Content</type>.
97
98		<p>
99
100		<b>Supported Commands</b>
101		<ul>
102		<li>
103		getCommandInfo
104		</li>
105		<li>
106		getPropertySetInfo
107		</li>
108		<li>
109		getPropertyValues
110		</li>
111		<li>
112		setPropertyValues
113		</li>
114		<li>
115		insert ( makes a newly created folder persistent )
116		</li>
117		<li>
118		delete
119		</li>
120		<li>
121		open
122		</li>
123		<li>
124		transfer ( only transfers from DCP Folders/DCP Documents to other
125		DCP folders. Source and target must recide on the same server. )
126		</li>
127		</ul>
128
129		<b>Supported Properties</b>
130		<ul>
131		<li>
132		string ContentType ( read-only, always "application/vnd.sun.star.webdav-collection" )
133		</li>
134		<li>
135		boolean IsDocument ( read-only, always false )
136		</li>
137		<li>
138		boolean IsFolder ( read-only, always true )
139		</li>
140		<li>
141		<type scope="com::sun::star::util">DateTime</type> DateCreated ( read-only )
142		</li>
143		<li>
144		<type scope="com::sun::star::util">DateTime</type> DateModified ( read-only )
145		</li>
146		<li>
147		string MediaType
148		</li>
149		<li>
150		string Size ( read-only, always zero )
151		</li>
152		<li>
153		string Title
154		</li>
155		</ul>
156
157		</p>
158	 */
159	interface com::sun::star::ucb::XCommandProcessor;
160
161    //-------------------------------------------------------------------------
162    /** is an enhanced version of <type>XCommandProcessor</type> that has an
163        additional method for releasing command identifiers obtained via
164        <member>XCommandProcessor::createCommandIdentifier</member> to avoid
165        resource leaks. For a detailed description of the problem refer to
166        <member>XCommandProcessor2::releaseCommandIdentifier</member>.
167
168        <p>Where many existing <type>Content</type> implementations do not
169        (yet), every new implementation should support this interface.
170     */
171    [optional] interface com::sun::star::ucb::XCommandProcessor2;
172
173	//-------------------------------------------------------------------------
174	/** This interface is implemented according to the specification of
175		service <type>Content</type>.
176	 */
177	interface com::sun::star::beans::XPropertiesChangeNotifier;
178
179	//-------------------------------------------------------------------------
180	/** This interface is implemented according to the specification of
181		service <type>Content</type>.
182	 */
183	interface com::sun::star::beans::XPropertyContainer;
184
185	//-------------------------------------------------------------------------
186	/** This interface is implemented according to the specification of
187		service <type>Content</type>.
188	 */
189	interface com::sun::star::beans::XPropertySetInfoChangeNotifier;
190
191	//-------------------------------------------------------------------------
192	/** This interface is implemented according to the specification of
193		service <type>Content</type>.
194	 */
195	interface com::sun::star::ucb::XCommandInfoChangeNotifier;
196
197	//-------------------------------------------------------------------------
198	/** This interface is implemented according to the specification of
199		service <type>Content</type>.
200	 */
201	interface com::sun::star::container::XChild;
202
203	//-------------------------------------------------------------------------
204	/** This interface is implemented according to the specification of
205		service <type>Content</type>.
206
207		<p>
208
209		A DCP Folder can create other DCP Folders and DCP Documents. To create
210		a new child of a PCP Folder:
211
212		<ol>
213		<li>
214		Let the parent folder create a new content by calling
215		<member>XContentCreator::createNewContent</member> on it. The content
216		type to use for new folders is
217		"application/vnd.sun.star.webdav-collection". To create a new DCP
218		Document, use the type "application/http-content".
219		</li>
220		<li>
221		Set a title at the new folder / document. ( Let the new child execute
222		the command "setPropertyValues", which sets at least the property
223		"Title" to a non-empty value ).
224		</li>
225		<li>
226		Let the new child ( not the parent! ) execute the command "insert".
227		This will commit the creation process and persist the newly created
228		content on the server. For documents, you need to supply the
229		implementation of an <type scope="com::sun::star::io">XInputStream</type>
230		with the command's parameters, that provides access to the stream data.
231		</li>
232		</ol>
233
234		</p>
235	 */
236	interface com::sun::star::ucb::XContentCreator;
237};
238
239//=============================================================================
240
241}; }; }; };
242
243#endif
244