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_WebDAVDocumentContent_idl__
24#define __com_sun_star_ucb_WebDAVDocumentContent_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//=============================================================================
63
64module com { module sun { module star { module ucb {
65
66//=============================================================================
67/** A DCP Document is a container for Document data/content.
68
69    <p>The data/content may be anything, a WebDAV server, like an HTTP server,
70	does not necessarily mandate what type of data/content may be contained
71	within Documents. The type of data/content is defined by the MediaType
72	property which is different from the content type returned from the
73	<member>XContent::getContentType</member> method. The MediaType property
74	is mapped to the equivalent WebDAV property and	the WebDAV server calculates
75	the value.
76
77	@see com::sun::star::ucb::WebDAVContentProvider
78	@see com::sun::star::ucb::WebDAVFolderContent
79*/
80published service WebDAVDocumentContent
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 document persistent )
116		</li>
117		<li>
118		delete
119		</li>
120		<li>
121		open
122		</li>
123		<li>
124        post ( Argument: <type>PostCommandArgument2</type> - does a HTTP POST )
125		</li>
126		</ul>
127
128		<b>Supported Properties</b>
129		<ul>
130		<li>
131		string ContentType ( read-only, always "application/http-content" )
132		</li>
133		<li>
134		boolean IsDocument ( read-only, always true )
135		</li>
136		<li>
137		boolean IsFolder ( read-only, always false )
138		</li>
139		<li>
140		<type scope="com::sun::star::util">DateTime</type> DateCreated ( read-only )
141		</li>
142		<li>
143		<type scope="com::sun::star::util">DateTime</type> DateModified ( read-only )
144		</li>
145		<li>
146		string MediaType ( read-only, the MIME type - as delivered by the server )
147		</li>
148		<li>
149		string Size ( read-only )
150		</li>
151		<li>
152		string Title
153		</li>
154		</ul>
155
156		</p>
157	 */
158	interface com::sun::star::ucb::XCommandProcessor;
159
160    //-------------------------------------------------------------------------
161    /** is an enhanced version of <type>XCommandProcessor</type> that has an
162        additional method for releasing command identifiers obtained via
163        <member>XCommandProcessor::createCommandIdentifier</member> to avoid
164        resource leaks. For a detailed description of the problem refer to
165        <member>XCommandProcessor2::releaseCommandIdentifier</member>.
166
167        <p>Where many existing <type>Content</type> implementations do not
168        (yet), every new implementation should support this interface.
169     */
170    [optional] interface com::sun::star::ucb::XCommandProcessor2;
171
172	//-------------------------------------------------------------------------
173	/** This interface is implemented according to the specification of
174		service <type>Content</type>.
175	 */
176	interface com::sun::star::beans::XPropertiesChangeNotifier;
177
178	//-------------------------------------------------------------------------
179	/** This interface is implemented according to the specification of
180		service <type>Content</type>.
181	 */
182	interface com::sun::star::beans::XPropertyContainer;
183
184	//-------------------------------------------------------------------------
185	/** This interface is implemented according to the specification of
186		service <type>Content</type>.
187	 */
188	interface com::sun::star::beans::XPropertySetInfoChangeNotifier;
189
190	//-------------------------------------------------------------------------
191	/** This interface is implemented according to the specification of
192		service <type>Content</type>.
193	 */
194	interface com::sun::star::ucb::XCommandInfoChangeNotifier;
195
196	//-------------------------------------------------------------------------
197	/** This interface is implemented according to the specification of
198		service <type>Content</type>.
199	 */
200	interface com::sun::star::container::XChild;
201};
202
203//=============================================================================
204
205}; }; }; };
206
207#endif
208