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_configuration_SetAccess_idl__
24#define __com_sun_star_configuration_SetAccess_idl__
25
26#ifndef __com_sun_star_configuration_HierarchyAccess_idl__
27#include <com/sun/star/configuration/HierarchyAccess.idl>
28#endif
29
30#ifndef __com_sun_star_configuration_SimpleSetAccess_idl__
31#include <com/sun/star/configuration/SimpleSetAccess.idl>
32#endif
33
34#ifndef __com_sun_star_container_XContainer_idl__
35#include <com/sun/star/container/XContainer.idl>
36#endif
37
38//=============================================================================
39
40module com { module sun { module star { module configuration {
41
42//=============================================================================
43/** provides access to a dynamic, homogeneous set of values or nested
44 trees within a hierarchy.
45
46 <p>Also provides information about the template for elements.
47 Allows normalizing externally generated names.
48 </p>
49
50 <p><em>Sets</em> are dynamic containers within the hierarchy.</p>
51
52 <p>The number and names of contained elements are not fixed in advance,
53 but all elements have to be of one predetermined type.
54 </p>
55
56 @see com::sun::star::configuration::SetElement
57	Child objects of this service generally implement <type>SetElement</type>.
58	The template name returned by the child from
59	<member>XTemplateInstance::getTemplateName()</member>
60	corresponds to the name returned by the set from
61	<member>XTemplateContainer::getElementTemplateName()</member>.
62
63 @see com::sun::star::configuration::GroupAccess
64	A complementary service that provides for static heterogeneous groups of
65	elements within the hierarchy.
66
67*/
68published service SetAccess
69{
70/** is the basic service for accessing child and descendent nodes in a hierarchy.
71
72 <p>External names (from foreign namespaces) should be normalized using
73 <member scope="com::sun::star::util">XStringEscape::escapeString()</member>
74 (if available) before using them as element names.
75 </p>
76*/
77	service HierarchyAccess;
78
79/** is the basic service providing information about and access to elements
80 of a not necessarily hierarchical <em>set</em>.
81
82 <p>Interface <type scope="com::sun::star::configuration">XTemplateContainer</type>,
83 which is optional in <type>SimpleSetAccess</type> must always be implemented
84 in this service, if the elements are of object type.  </p>
85*/
86	service SimpleSetAccess;
87
88/** allows attaching listeners to this node to monitor changes to the set.
89
90 <p>In this service, support for notifications is mandatory.
91 </p>
92*/
93	interface com::sun::star::container::XContainer;
94
95};
96
97//=============================================================================
98
99}; }; }; };
100
101#endif
102