1d1766043SAndrew Rist/**************************************************************
2cdf0e10cSrcweir *
3d1766043SAndrew Rist * Licensed to the Apache Software Foundation (ASF) under one
4d1766043SAndrew Rist * or more contributor license agreements.  See the NOTICE file
5d1766043SAndrew Rist * distributed with this work for additional information
6d1766043SAndrew Rist * regarding copyright ownership.  The ASF licenses this file
7d1766043SAndrew Rist * to you under the Apache License, Version 2.0 (the
8d1766043SAndrew Rist * "License"); you may not use this file except in compliance
9d1766043SAndrew Rist * with the License.  You may obtain a copy of the License at
10d1766043SAndrew Rist *
11d1766043SAndrew Rist *   http://www.apache.org/licenses/LICENSE-2.0
12d1766043SAndrew Rist *
13d1766043SAndrew Rist * Unless required by applicable law or agreed to in writing,
14d1766043SAndrew Rist * software distributed under the License is distributed on an
15d1766043SAndrew Rist * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16d1766043SAndrew Rist * KIND, either express or implied.  See the License for the
17d1766043SAndrew Rist * specific language governing permissions and limitations
18d1766043SAndrew Rist * under the License.
19d1766043SAndrew Rist *
20d1766043SAndrew Rist *************************************************************/
21d1766043SAndrew Rist
22d1766043SAndrew Rist
23cdf0e10cSrcweir#ifndef __com_sun_star_configuration_HierarchyAccess_idl__
24cdf0e10cSrcweir#define __com_sun_star_configuration_HierarchyAccess_idl__
25cdf0e10cSrcweir
26cdf0e10cSrcweir#ifndef __com_sun_star_container_XNameAccess_idl__
27cdf0e10cSrcweir#include <com/sun/star/container/XNameAccess.idl>
28cdf0e10cSrcweir#endif
29cdf0e10cSrcweir
30cdf0e10cSrcweir#ifndef __com_sun_star_container_XHierarchicalNameAccess_idl__
31cdf0e10cSrcweir#include <com/sun/star/container/XHierarchicalNameAccess.idl>
32cdf0e10cSrcweir#endif
33cdf0e10cSrcweir
34cdf0e10cSrcweir#ifndef __com_sun_star_container_XContainer_idl__
35cdf0e10cSrcweir#include <com/sun/star/container/XContainer.idl>
36cdf0e10cSrcweir#endif
37cdf0e10cSrcweir
38cdf0e10cSrcweir#ifndef __com_sun_star_beans_XExactName_idl__
39cdf0e10cSrcweir#include <com/sun/star/beans/XExactName.idl>
40cdf0e10cSrcweir#endif
41cdf0e10cSrcweir
42cdf0e10cSrcweir#ifndef __com_sun_star_beans_XPropertySetInfo_idl__
43cdf0e10cSrcweir#include <com/sun/star/beans/XPropertySetInfo.idl>
44cdf0e10cSrcweir#endif
45cdf0e10cSrcweir
46cdf0e10cSrcweir#ifndef __com_sun_star_beans_XPropertyState_idl__
47cdf0e10cSrcweir#include <com/sun/star/beans/XPropertyState.idl>
48cdf0e10cSrcweir#endif
49cdf0e10cSrcweir
50cdf0e10cSrcweir#ifndef __com_sun_star_beans_XMultiPropertyState_idl__
51cdf0e10cSrcweir#include <com/sun/star/beans/XMultiPropertyStates.idl>
52cdf0e10cSrcweir#endif
53cdf0e10cSrcweir
54cdf0e10cSrcweir//=============================================================================
55cdf0e10cSrcweir
56cdf0e10cSrcweirmodule com { module sun { module star { module configuration {
57cdf0e10cSrcweir
58cdf0e10cSrcweir//=============================================================================
59cdf0e10cSrcweir/** provides access to a hierarchy of descendant elements.
60cdf0e10cSrcweir
61cdf0e10cSrcweir <p>Subnodes are accessed by their name. Values that are direct or indirect
62cdf0e10cSrcweir descendants of this tree node can be retrieved. Non-value subnodes can be
63cdf0e10cSrcweir navigated using container interfaces.
64cdf0e10cSrcweir Other interfaces provide access to information about this node.
65cdf0e10cSrcweir Changes to values in the subtree can be monitored by event listeners.
66cdf0e10cSrcweir </p>
67cdf0e10cSrcweir
68cdf0e10cSrcweir <p>Elements of this container that are not simple values
69cdf0e10cSrcweir are similar containers themselves, thus (recursively) forming a
70cdf0e10cSrcweir hierarchical tree.
71cdf0e10cSrcweir </p>
72cdf0e10cSrcweir
73cdf0e10cSrcweir <p>Implementations of this service usually also implement
74cdf0e10cSrcweir service <type>HierarchyElement</type>, which concerns the complementary role
75cdf0e10cSrcweir of being accessible as an element of the hierarchy.
76cdf0e10cSrcweir </p>
77cdf0e10cSrcweir*/
78cdf0e10cSrcweirpublished service HierarchyAccess
79cdf0e10cSrcweir{
80cdf0e10cSrcweir/** allows access to immediate children of this node.
81cdf0e10cSrcweir
82cdf0e10cSrcweir <p><member scope="com::sun::star::container">XNameAccess::getByName()</member>
83cdf0e10cSrcweir returns an <atom>any</atom> holding either a simple value or an interface
84cdf0e10cSrcweir on another HierarchyAccess if the child is not a simple value.
85cdf0e10cSrcweir </p>
86cdf0e10cSrcweir*/
87cdf0e10cSrcweir	interface com::sun::star::container::XNameAccess;
88cdf0e10cSrcweir
89cdf0e10cSrcweir/** allows access to all descendants of this node
90cdf0e10cSrcweir
91cdf0e10cSrcweir <p><member scope="com::sun::star::container">XHierarchicalNameAccess::getByHierarchicalName()</member>
92cdf0e10cSrcweir returns an <atom>any</atom> holding either a simple value or an interface
93cdf0e10cSrcweir on another HierarchyAccess if the descendant is not a simple value.
94cdf0e10cSrcweir </p>
95cdf0e10cSrcweir*/
96cdf0e10cSrcweir	interface com::sun::star::container::XHierarchicalNameAccess;
97cdf0e10cSrcweir
98cdf0e10cSrcweir/** allows attaching listeners to this node to monitor changes to immediate child nodes.
99cdf0e10cSrcweir*/
100cdf0e10cSrcweir	interface com::sun::star::container::XContainer;
101cdf0e10cSrcweir
102cdf0e10cSrcweir/** provides support for inexact names.
103cdf0e10cSrcweir <p>Exact names can be obtained for simple or hierarchical names for use in
104cdf0e10cSrcweir <type scope="com::sun::star::container">XNameAccess</type>,
105cdf0e10cSrcweir <type scope="com::sun::star::container">XHierarchicalNameAccess</type>,
106cdf0e10cSrcweir <type scope="com::sun::star::beans">XPropertySet</type> or
107cdf0e10cSrcweir any other interfaces that allow access to or manipulation of subnodes
108cdf0e10cSrcweir selected by name or hierarchical name.
109cdf0e10cSrcweir </p>
110*a893be29SPedro Giffuni <p>If an inexact name could be matched to either a simple or a hierarchical
111cdf0e10cSrcweir name, the simple (immediate child) name is preferred.
112cdf0e10cSrcweir </p>
113cdf0e10cSrcweir*/
114cdf0e10cSrcweir	interface com::sun::star::beans::XExactName;
115cdf0e10cSrcweir
116cdf0e10cSrcweir/** provides information about immediate children of this node. [optional]
117cdf0e10cSrcweir
118cdf0e10cSrcweir <p>This interface may be missing, if the hierarchy supports no traits that are
119cdf0e10cSrcweir described by <type scope="com::sun::star::beans">PropertyAttribute</type>
120cdf0e10cSrcweir values or if the same information is available by other means,
121cdf0e10cSrcweir e.g. if the implementation supports
122cdf0e10cSrcweir <member scope="com::sun::star::beans">XPropertySet::getPropertySetInfo()</member>.
123cdf0e10cSrcweir </p>
124cdf0e10cSrcweir
125cdf0e10cSrcweir <p>If a child of this node is an object that implements
126cdf0e10cSrcweir <type scope="com::sun::star::beans">XProperty</type>, then this implementation
127cdf0e10cSrcweir returns the same <type scope="com::sun::star::beans">Property</type> for that
128cdf0e10cSrcweir child as the child itself.
129cdf0e10cSrcweir </p>
130cdf0e10cSrcweir*/
131cdf0e10cSrcweir	[optional] interface com::sun::star::beans::XPropertySetInfo;
132cdf0e10cSrcweir
133cdf0e10cSrcweir/** provides access to the state of child elements of an implementation. [optional]
134cdf0e10cSrcweir
135cdf0e10cSrcweir <p>This interface may be missing if the hierarchy (or a hierarchy fragment
136cdf0e10cSrcweir that contains this implementation as element) does not support default values or
137cdf0e10cSrcweir if the node does not support accessing the default state of individual children.
138cdf0e10cSrcweir </p>
139cdf0e10cSrcweir
140cdf0e10cSrcweir <p>If elements that are not simple values, but objects themselves, support
141cdf0e10cSrcweir a default state (as indicated by
142cdf0e10cSrcweir <const scope="com::sun::star::beans">PropertyAttribute::MAYBEDEFAULT</const>),
143cdf0e10cSrcweir they should implement
144cdf0e10cSrcweir <type scope="com::sun::star::beans">XPropertyWithState</type>, in which case
145cdf0e10cSrcweir the <type scope="com::sun::star::beans">PropertyState</type> applies to all
146cdf0e10cSrcweir their children and recursively to all descendants.
147cdf0e10cSrcweir </p>
148cdf0e10cSrcweir
149cdf0e10cSrcweir <p>If an implementation is part of a <em>read-only</em> view of the hierarchy,
150cdf0e10cSrcweir attempts to change property states will fail.
151cdf0e10cSrcweir </p>
152cdf0e10cSrcweir*/
153cdf0e10cSrcweir	[optional] interface com::sun::star::beans::XPropertyState;
154cdf0e10cSrcweir
155cdf0e10cSrcweir/** provides access to the states of multiple child elements of
156cdf0e10cSrcweir an implementation. [optional]
157cdf0e10cSrcweir
158cdf0e10cSrcweir <p>This interface may be missing if the hierarchy (or a hierarchy fragment
159cdf0e10cSrcweir that contains this implementation as element) does not support default values
160cdf0e10cSrcweir if the node does not support accessing the default state of individual children.
161cdf0e10cSrcweir </p>
162cdf0e10cSrcweir
163cdf0e10cSrcweir <p>If elements that are not simple values, but objects themselves, support
164cdf0e10cSrcweir a default state (as indicated by
165cdf0e10cSrcweir <const scope="com::sun::star::beans">PropertyAttribute::MAYBEDEFAULT</const>),
166cdf0e10cSrcweir they should implement
167cdf0e10cSrcweir <type scope="com::sun::star::beans">XPropertyWithState</type>, in which case
168cdf0e10cSrcweir the <type scope="com::sun::star::beans">PropertyState</type> applies to all
169cdf0e10cSrcweir their children and recursively to all descendants.
170cdf0e10cSrcweir </p>
171cdf0e10cSrcweir
172cdf0e10cSrcweir <p>If an implementation is part of a <em>read-only</em> view of the hierarchy,
173cdf0e10cSrcweir attempts to change property states will fail.
174cdf0e10cSrcweir </p>
175cdf0e10cSrcweir*/
176cdf0e10cSrcweir	[optional] interface com::sun::star::beans::XMultiPropertyStates;
177cdf0e10cSrcweir};
178cdf0e10cSrcweir
179cdf0e10cSrcweir//=============================================================================
180cdf0e10cSrcweir
181cdf0e10cSrcweir}; }; }; };
182cdf0e10cSrcweir
183cdf0e10cSrcweir#endif
184