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_packages_PackageFolder_idl__
24#define __com_sun_star_packages_PackageFolder_idl__
25
26#ifndef __com_sun_star_container_XNamed_idl__
27#include <com/sun/star/container/XNamed.idl>
28#endif
29
30#ifndef __com_sun_star_container_XChild_idl__
31#include <com/sun/star/container/XChild.idl>
32#endif
33
34#ifndef __com_sun_star_container_XNameContainer_idl__
35#include <com/sun/star/container/XNameContainer.idl>
36#endif
37
38#ifndef __com_sun_star_beans_XPropertySet_idl__
39#include <com/sun/star/beans/XPropertySet.idl>
40#endif
41
42#ifndef __com_sun_star_container_XEnumerationAccess_udl__
43#include <com/sun/star/container/XEnumerationAccess.idl>
44#endif
45//=============================================================================
46
47module com {  module sun {  module star {   module packages {
48
49//=============================================================================
50/**
51	The PackageFolder service represents a single folder or directory within
52	a Package. Instances of this service can only be constructed by an
53	implementation of the Package service and not via the service manager.
54*/
55published service PackageFolder
56{
57	/**
58	This interface is used to get or set the name of the folder.
59	*/
60	interface com::sun::star::container::XNamed;
61	/**
62	The getParent method of XChild will return the PackageFolder that
63	contains this PackageFolder or nothing if this PackageFolder is
64	the root PackageFolder.
65
66	setParent will move the PackageFolder.
67	*/
68	interface com::sun::star::container::XChild;
69	/**
70	This interface describes all of the PackageFolders and PackageStreams
71	which are contained within this instance of the PackageFolder service.
72
73	XElementAccess::getElementType returns service PackageStream
74	XNameAccess::getByName returns either a PackageFolder or a PackageStream
75		as a css::uno::Any
76	XNameAccess::getElementNames returns an uno::Sequence of strings containing
77		the names of all children stored in the PackageFolder
78	*/
79	interface com::sun::star::container::XNameContainer;
80	/**
81	This interface will return an implementation of service
82	PackageFolderEnumeration, which represents an iterator over the children
83	of the PackageFolder, or the PackageStreams and PackageFolders contained
84	within this instance of the PackageFolder service.
85
86	This provides a "snapshot" of the contents of the
87	PackageFolder at the time of construction. It is the responsibility of the
88	caller to ensure that any given member of the enumeration refers to a valid
89	PackageStream or PackageFolder.
90
91	*/
92	interface com::sun::star::container::XEnumerationAccess;
93
94	/**
95	This interface provides access to the properties of the package entry.
96	Currently, this only supports one entry which is a string called
97	MediaType. This contains the MIME type of the stream (eg. "text/html").
98	For PackageFolders, this is always an empty string.
99	*/
100	interface com::sun::star::beans::XPropertySet;
101};
102}; }; }; };
103
104#endif
105