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