1 /*************************************************************************
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
5 * Copyright 2000, 2010 Oracle and/or its affiliates.
7 * OpenOffice.org - a multi-platform office productivity suite
9 * This file is part of OpenOffice.org.
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.
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).
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.
26 ************************************************************************/
27 #ifndef __com_sun_star_ucb_TransientDocumentsDocumentContent_idl__
28 #define __com_sun_star_ucb_TransientDocumentsDocumentContent_idl__
30 #ifndef __com_sun_star_lang_XComponent_idl__
31 #include
<com
/sun
/star
/lang
/XComponent.idl
>
34 #ifndef __com_sun_star_ucb_XContent_idl__
35 #include
<com
/sun
/star
/ucb
/XContent.idl
>
38 #ifndef __com_sun_star_ucb_XCommandProcessor_idl__
39 #include
<com
/sun
/star
/ucb
/XCommandProcessor.idl
>
42 #ifndef __com_sun_star_ucb_XCommandProcessor2_idl__
43 #include
<com
/sun
/star
/ucb
/XCommandProcessor2.idl
>
46 #ifndef __com_sun_star_beans_XPropertiesChangeNotifier_idl__
47 #include
<com
/sun
/star
/beans
/XPropertiesChangeNotifier.idl
>
50 #ifndef __com_sun_star_beans_XPropertyContainer_idl__
51 #include
<com
/sun
/star
/beans
/XPropertyContainer.idl
>
54 #ifndef __com_sun_star_beans_XPropertySetInfoChangeNotifier_idl__
55 #include
<com
/sun
/star
/beans
/XPropertySetInfoChangeNotifier.idl
>
58 #ifndef __com_sun_star_ucb_XCommandInfoChangeNotifier_idl__
59 #include
<com
/sun
/star
/ucb
/XCommandInfoChangeNotifier.idl
>
62 #ifndef __com_sun_star_container_XChild_idl__
63 #include
<com
/sun
/star
/container
/XChild.idl
>
66 #ifndef __com_sun_star_ucb_XContentCreator_idl__
67 #include
<com
/sun
/star
/ucb
/XContentCreator.idl
>
70 //=============================================================================
72 module com
{ module sun
{ module star
{ module ucb
{
74 //=============================================================================
75 /** A TDCP Document represents the root folder of a transient document.
77 <p>It is a container for other TDCP Folders and TDCP Streams. It is always
78 a child of the TDCP Root.
80 @see TransientDocumentsContentProvider
81 @see TransientDocumentsRootContent
82 @see TransientDocumentsFolderContent
83 @see TransientDocumentsStreamContent
87 service TransientDocumentsDocumentContent
89 //-------------------------------------------------------------------------
90 /** This interface is implemented according to the specification of
91 service <type>Content</type>.
93 interface com
::sun
::star
::lang
::XComponent
;
95 //-------------------------------------------------------------------------
96 /** This interface is implemented according to the specification of
97 service <type>Content</type>.
99 interface com
::sun
::star
::ucb
::XContent
;
101 //-------------------------------------------------------------------------
102 /** This interface is implemented according to the specification of
103 service <type>Content</type>.
107 <b>Supported Commands</b>
125 transfer (only transfers TDCP documents, TDCP folders and TDCP streams.
126 It does not handle contents with a URL scheme other than the TDOC URL
131 <b>Supported Properties</b>
134 string ContentType ( read-only, always "application/vnd.sun.star.tdoc-document" )
137 boolean IsDocument ( read-only, always false )
140 boolean IsFolder ( read-only, always true )
143 string Title ( read-only )
149 interface com
::sun
::star
::ucb
::XCommandProcessor
;
151 //-------------------------------------------------------------------------
152 /** is an enhanced version of <type>XCommandProcessor</type> that has an
153 additional method for releasing command identifiers obtained via
154 <member>XCommandProcessor::createCommandIdentifier</member> to avoid
155 resource leaks. For a detailed description of the problem refer to
156 <member>XCommandProcessor2::releaseCommandIdentifier</member>.
158 <p>Where many existing <type>Content</type> implementations do not
159 (yet), every new implementation should support this interface.
161 [optional] interface com
::sun
::star
::ucb
::XCommandProcessor2
;
163 //-------------------------------------------------------------------------
164 /** This interface is implemented according to the specification of
165 service <type>Content</type>.
167 interface com
::sun
::star
::beans
::XPropertiesChangeNotifier
;
169 //-------------------------------------------------------------------------
170 /** This interface is implemented according to the specification of
171 service <type>Content</type>.
173 interface com
::sun
::star
::beans
::XPropertyContainer
;
175 //-------------------------------------------------------------------------
176 /** This interface is implemented according to the specification of
177 service <type>Content</type>.
179 interface com
::sun
::star
::beans
::XPropertySetInfoChangeNotifier
;
181 //-------------------------------------------------------------------------
182 /** This interface is implemented according to the specification of
183 service <type>Content</type>.
185 interface com
::sun
::star
::ucb
::XCommandInfoChangeNotifier
;
187 //-------------------------------------------------------------------------
188 /** This interface is implemented according to the specification of
189 service <type>Content</type>.
191 interface com
::sun
::star
::container
::XChild
;
193 //-------------------------------------------------------------------------
194 /** This interface is implemented according to the specification of
195 service <type>Content</type>.
197 <p>To create a new child of a TDCP Document:
201 Let the parent folder create a new content by calling
202 <member>XContentCreator::createNewContent</member> on it. The content
203 type to use for new folders is "application/vnd.sun.star.tdoc-folder".
204 To create a new stream, use the type string
205 "application/vnd.sun.star.tdoc-stream".
208 Set a title for the new folder/stream. (Let the new child execute the
209 command "setPropertyValues"; pass a non-empty value for the property
213 Let the new child ( not the parent! ) execute the command "insert".
214 This will commit the creation process. For streams, you need to supply
215 the implementation of an
216 <type scope="com::sun::star::io">XInputStream</type> with the command's
217 parameters, that provides access to the stream data.
223 interface com
::sun
::star
::ucb
::XContentCreator
;
226 //=============================================================================