1/**************************************************************
2 *
3 * Licensed to the Apache Software Foundation (ASF) under one
4 * or more contributor license agreements.  See the NOTICE file
5 * distributed with this work for additional information
6 * regarding copyright ownership.  The ASF licenses this file
7 * to you under the Apache License, Version 2.0 (the
8 * "License"); you may not use this file except in compliance
9 * with the License.  You may obtain a copy of the License at
10 *
11 *   http://www.apache.org/licenses/LICENSE-2.0
12 *
13 * Unless required by applicable law or agreed to in writing,
14 * software distributed under the License is distributed on an
15 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16 * KIND, either express or implied.  See the License for the
17 * specific language governing permissions and limitations
18 * under the License.
19 *
20 *************************************************************/
21
22
23#ifndef __com_sun_star_ucb_TransientDocumentsFolderContent_idl__
24#define __com_sun_star_ucb_TransientDocumentsFolderContent_idl__
25
26#ifndef __com_sun_star_lang_XComponent_idl__
27#include <com/sun/star/lang/XComponent.idl>
28#endif
29
30#ifndef __com_sun_star_ucb_XContent_idl__
31#include <com/sun/star/ucb/XContent.idl>
32#endif
33
34#ifndef __com_sun_star_ucb_XCommandProcessor_idl__
35#include <com/sun/star/ucb/XCommandProcessor.idl>
36#endif
37
38#ifndef __com_sun_star_ucb_XCommandProcessor2_idl__
39#include <com/sun/star/ucb/XCommandProcessor2.idl>
40#endif
41
42#ifndef __com_sun_star_beans_XPropertiesChangeNotifier_idl__
43#include <com/sun/star/beans/XPropertiesChangeNotifier.idl>
44#endif
45
46#ifndef __com_sun_star_beans_XPropertyContainer_idl__
47#include <com/sun/star/beans/XPropertyContainer.idl>
48#endif
49
50#ifndef __com_sun_star_beans_XPropertySetInfoChangeNotifier_idl__
51#include <com/sun/star/beans/XPropertySetInfoChangeNotifier.idl>
52#endif
53
54#ifndef __com_sun_star_ucb_XCommandInfoChangeNotifier_idl__
55#include <com/sun/star/ucb/XCommandInfoChangeNotifier.idl>
56#endif
57
58#ifndef __com_sun_star_container_XChild_idl__
59#include <com/sun/star/container/XChild.idl>
60#endif
61
62#ifndef __com_sun_star_ucb_XContentCreator_idl__
63#include <com/sun/star/ucb/XContentCreator.idl>
64#endif
65
66//=============================================================================
67
68module com { module sun { module star { module ucb {
69
70//=============================================================================
71/** A TDCP Folder is a container for other TDCP Folders and TDCP Streams.
72
73    <p>It may be contained in another TDCP Folder or in a TDCP Document.
74
75    @see TransientDocumentsContentProvider
76    @see TransientDocumentsRootContent
77    @see TransientDocumentsDocumentContent
78    @see TransientDocumentsStreamContent
79
80    @since OpenOffice 2.0
81*/
82service TransientDocumentsFolderContent
83{
84	//-------------------------------------------------------------------------
85	/** This interface is implemented according to the specification of
86		service <type>Content</type>.
87	 */
88	interface com::sun::star::lang::XComponent;
89
90	//-------------------------------------------------------------------------
91	/** This interface is implemented according to the specification of
92		service <type>Content</type>.
93	 */
94	interface com::sun::star::ucb::XContent;
95
96	//-------------------------------------------------------------------------
97	/** This interface is implemented according to the specification of
98		service <type>Content</type>.
99
100		<p>
101
102		<b>Supported Commands</b>
103		<ul>
104		<li>
105		getCommandInfo
106		</li>
107		<li>
108		getPropertySetInfo
109		</li>
110		<li>
111		getPropertyValues
112		</li>
113		<li>
114		setPropertyValues
115		</li>
116		<li>
117		open
118		</li>
119        <li>
120        insert
121        </li>
122        <li>
123        delete
124        </li>
125        <li>
126        transfer (only transfers TDCP documents, TDCP folders and TDCP streams.
127        It does not handle contents with a URL scheme other than the TDOC URL
128        scheme)
129        </li>
130		</ul>
131
132		<b>Supported Properties</b>
133		<ul>
134		<li>
135        string ContentType ( read-only, always "application/vnd.sun.star.tdoc-folder" )
136		</li>
137		<li>
138		boolean IsDocument ( read-only, always false )
139		</li>
140		<li>
141		boolean IsFolder ( read-only, always true )
142		</li>
143		<li>
144        string Title
145		</li>
146        <li>
147        <type scope="com::sun::star::embed">XStorage</type> Storage ( read-only,
148        always a reference to a storage opened in read-only mode. No write
149        operations are possible. TDCP contents must be used for writing.)
150        </li>
151		</ul>
152
153		</p>
154	 */
155	interface com::sun::star::ucb::XCommandProcessor;
156
157    //-------------------------------------------------------------------------
158    /** is an enhanced version of <type>XCommandProcessor</type> that has an
159        additional method for releasing command identifiers obtained via
160        <member>XCommandProcessor::createCommandIdentifier</member> to avoid
161        resource leaks. For a detailed description of the problem refer to
162        <member>XCommandProcessor2::releaseCommandIdentifier</member>.
163
164        <p>Where many existing <type>Content</type> implementations do not
165        (yet), every new implementation should support this interface.
166     */
167    [optional] interface com::sun::star::ucb::XCommandProcessor2;
168
169	//-------------------------------------------------------------------------
170	/** This interface is implemented according to the specification of
171		service <type>Content</type>.
172	 */
173	interface com::sun::star::beans::XPropertiesChangeNotifier;
174
175	//-------------------------------------------------------------------------
176	/** This interface is implemented according to the specification of
177		service <type>Content</type>.
178	 */
179	interface com::sun::star::beans::XPropertyContainer;
180
181	//-------------------------------------------------------------------------
182	/** This interface is implemented according to the specification of
183		service <type>Content</type>.
184	 */
185	interface com::sun::star::beans::XPropertySetInfoChangeNotifier;
186
187	//-------------------------------------------------------------------------
188	/** This interface is implemented according to the specification of
189		service <type>Content</type>.
190	 */
191	interface com::sun::star::ucb::XCommandInfoChangeNotifier;
192
193	//-------------------------------------------------------------------------
194	/** This interface is implemented according to the specification of
195		service <type>Content</type>.
196	 */
197	interface com::sun::star::container::XChild;
198
199	//-------------------------------------------------------------------------
200	/** This interface is implemented according to the specification of
201		service <type>Content</type>.
202
203        <p>To create a new child of a TDCP Folder:
204
205		<ol>
206		<li>
207        Let the parent folder create a new content by calling
208        <member>XContentCreator::createNewContent</member> on it. The content
209        type to use for new folders is "application/vnd.sun.star.tdoc-folder".
210        To create a new stream, use the type string
211        "application/vnd.sun.star.tdoc-stream".
212		</li>
213		<li>
214        Set a title for the new folder/stream. (Let the new child execute the
215        command "setPropertyValues"; pass a non-empty value for the property
216        "Title").
217        </li>
218		<li>
219        Let the new child ( not the parent! ) execute the command "insert".
220        This will commit the creation process. For streams, you need to supply
221        the implementation of an
222        <type scope="com::sun::star::io">XInputStream</type> with the command's
223        parameters, that provides access to the stream data.
224		</li>
225		</ol>
226
227		</p>
228	 */
229	interface com::sun::star::ucb::XContentCreator;
230};
231
232//=============================================================================
233
234}; }; }; };
235
236#endif
237