1*cdf0e10cSrcweir/*************************************************************************
2*cdf0e10cSrcweir *
3*cdf0e10cSrcweir * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4*cdf0e10cSrcweir *
5*cdf0e10cSrcweir * Copyright 2000, 2010 Oracle and/or its affiliates.
6*cdf0e10cSrcweir *
7*cdf0e10cSrcweir * OpenOffice.org - a multi-platform office productivity suite
8*cdf0e10cSrcweir *
9*cdf0e10cSrcweir * This file is part of OpenOffice.org.
10*cdf0e10cSrcweir *
11*cdf0e10cSrcweir * OpenOffice.org is free software: you can redistribute it and/or modify
12*cdf0e10cSrcweir * it under the terms of the GNU Lesser General Public License version 3
13*cdf0e10cSrcweir * only, as published by the Free Software Foundation.
14*cdf0e10cSrcweir *
15*cdf0e10cSrcweir * OpenOffice.org is distributed in the hope that it will be useful,
16*cdf0e10cSrcweir * but WITHOUT ANY WARRANTY; without even the implied warranty of
17*cdf0e10cSrcweir * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18*cdf0e10cSrcweir * GNU Lesser General Public License version 3 for more details
19*cdf0e10cSrcweir * (a copy is included in the LICENSE file that accompanied this code).
20*cdf0e10cSrcweir *
21*cdf0e10cSrcweir * You should have received a copy of the GNU Lesser General Public License
22*cdf0e10cSrcweir * version 3 along with OpenOffice.org.  If not, see
23*cdf0e10cSrcweir * <http://www.openoffice.org/license.html>
24*cdf0e10cSrcweir * for a copy of the LGPLv3 License.
25*cdf0e10cSrcweir *
26*cdf0e10cSrcweir ************************************************************************/
27*cdf0e10cSrcweir#ifndef __com_sun_star_configuration_HierarchyAccess_idl__
28*cdf0e10cSrcweir#define __com_sun_star_configuration_HierarchyAccess_idl__
29*cdf0e10cSrcweir
30*cdf0e10cSrcweir#ifndef __com_sun_star_container_XNameAccess_idl__
31*cdf0e10cSrcweir#include <com/sun/star/container/XNameAccess.idl>
32*cdf0e10cSrcweir#endif
33*cdf0e10cSrcweir
34*cdf0e10cSrcweir#ifndef __com_sun_star_container_XHierarchicalNameAccess_idl__
35*cdf0e10cSrcweir#include <com/sun/star/container/XHierarchicalNameAccess.idl>
36*cdf0e10cSrcweir#endif
37*cdf0e10cSrcweir
38*cdf0e10cSrcweir#ifndef __com_sun_star_container_XContainer_idl__
39*cdf0e10cSrcweir#include <com/sun/star/container/XContainer.idl>
40*cdf0e10cSrcweir#endif
41*cdf0e10cSrcweir
42*cdf0e10cSrcweir#ifndef __com_sun_star_beans_XExactName_idl__
43*cdf0e10cSrcweir#include <com/sun/star/beans/XExactName.idl>
44*cdf0e10cSrcweir#endif
45*cdf0e10cSrcweir
46*cdf0e10cSrcweir#ifndef __com_sun_star_beans_XPropertySetInfo_idl__
47*cdf0e10cSrcweir#include <com/sun/star/beans/XPropertySetInfo.idl>
48*cdf0e10cSrcweir#endif
49*cdf0e10cSrcweir
50*cdf0e10cSrcweir#ifndef __com_sun_star_beans_XPropertyState_idl__
51*cdf0e10cSrcweir#include <com/sun/star/beans/XPropertyState.idl>
52*cdf0e10cSrcweir#endif
53*cdf0e10cSrcweir
54*cdf0e10cSrcweir#ifndef __com_sun_star_beans_XMultiPropertyState_idl__
55*cdf0e10cSrcweir#include <com/sun/star/beans/XMultiPropertyStates.idl>
56*cdf0e10cSrcweir#endif
57*cdf0e10cSrcweir
58*cdf0e10cSrcweir//=============================================================================
59*cdf0e10cSrcweir
60*cdf0e10cSrcweirmodule com { module sun { module star { module configuration {
61*cdf0e10cSrcweir
62*cdf0e10cSrcweir//=============================================================================
63*cdf0e10cSrcweir/** provides access to a hierarchy of descendant elements.
64*cdf0e10cSrcweir
65*cdf0e10cSrcweir <p>Subnodes are accessed by their name. Values that are direct or indirect
66*cdf0e10cSrcweir descendants of this tree node can be retrieved. Non-value subnodes can be
67*cdf0e10cSrcweir navigated using container interfaces.
68*cdf0e10cSrcweir Other interfaces provide access to information about this node.
69*cdf0e10cSrcweir Changes to values in the subtree can be monitored by event listeners.
70*cdf0e10cSrcweir </p>
71*cdf0e10cSrcweir
72*cdf0e10cSrcweir <p>Elements of this container that are not simple values
73*cdf0e10cSrcweir are similar containers themselves, thus (recursively) forming a
74*cdf0e10cSrcweir hierarchical tree.
75*cdf0e10cSrcweir </p>
76*cdf0e10cSrcweir
77*cdf0e10cSrcweir <p>Implementations of this service usually also implement
78*cdf0e10cSrcweir service <type>HierarchyElement</type>, which concerns the complementary role
79*cdf0e10cSrcweir of being accessible as an element of the hierarchy.
80*cdf0e10cSrcweir </p>
81*cdf0e10cSrcweir*/
82*cdf0e10cSrcweirpublished service HierarchyAccess
83*cdf0e10cSrcweir{
84*cdf0e10cSrcweir/** allows access to immediate children of this node.
85*cdf0e10cSrcweir
86*cdf0e10cSrcweir <p><member scope="com::sun::star::container">XNameAccess::getByName()</member>
87*cdf0e10cSrcweir returns an <atom>any</atom> holding either a simple value or an interface
88*cdf0e10cSrcweir on another HierarchyAccess if the child is not a simple value.
89*cdf0e10cSrcweir </p>
90*cdf0e10cSrcweir*/
91*cdf0e10cSrcweir	interface com::sun::star::container::XNameAccess;
92*cdf0e10cSrcweir
93*cdf0e10cSrcweir/** allows access to all descendants of this node
94*cdf0e10cSrcweir
95*cdf0e10cSrcweir <p><member scope="com::sun::star::container">XHierarchicalNameAccess::getByHierarchicalName()</member>
96*cdf0e10cSrcweir returns an <atom>any</atom> holding either a simple value or an interface
97*cdf0e10cSrcweir on another HierarchyAccess if the descendant is not a simple value.
98*cdf0e10cSrcweir </p>
99*cdf0e10cSrcweir*/
100*cdf0e10cSrcweir	interface com::sun::star::container::XHierarchicalNameAccess;
101*cdf0e10cSrcweir
102*cdf0e10cSrcweir/** allows attaching listeners to this node to monitor changes to immediate child nodes.
103*cdf0e10cSrcweir*/
104*cdf0e10cSrcweir	interface com::sun::star::container::XContainer;
105*cdf0e10cSrcweir
106*cdf0e10cSrcweir/** provides support for inexact names.
107*cdf0e10cSrcweir <p>Exact names can be obtained for simple or hierarchical names for use in
108*cdf0e10cSrcweir <type scope="com::sun::star::container">XNameAccess</type>,
109*cdf0e10cSrcweir <type scope="com::sun::star::container">XHierarchicalNameAccess</type>,
110*cdf0e10cSrcweir <type scope="com::sun::star::beans">XPropertySet</type> or
111*cdf0e10cSrcweir any other interfaces that allow access to or manipulation of subnodes
112*cdf0e10cSrcweir selected by name or hierarchical name.
113*cdf0e10cSrcweir </p>
114*cdf0e10cSrcweir <p>If an inexact name could be matched to either a simple or a hierachical
115*cdf0e10cSrcweir name, the simple (immediate child) name is preferred.
116*cdf0e10cSrcweir </p>
117*cdf0e10cSrcweir*/
118*cdf0e10cSrcweir	interface com::sun::star::beans::XExactName;
119*cdf0e10cSrcweir
120*cdf0e10cSrcweir/** provides information about immediate children of this node. [optional]
121*cdf0e10cSrcweir
122*cdf0e10cSrcweir <p>This interface may be missing, if the hierarchy supports no traits that are
123*cdf0e10cSrcweir described by <type scope="com::sun::star::beans">PropertyAttribute</type>
124*cdf0e10cSrcweir values or if the same information is available by other means,
125*cdf0e10cSrcweir e.g. if the implementation supports
126*cdf0e10cSrcweir <member scope="com::sun::star::beans">XPropertySet::getPropertySetInfo()</member>.
127*cdf0e10cSrcweir </p>
128*cdf0e10cSrcweir
129*cdf0e10cSrcweir <p>If a child of this node is an object that implements
130*cdf0e10cSrcweir <type scope="com::sun::star::beans">XProperty</type>, then this implementation
131*cdf0e10cSrcweir returns the same <type scope="com::sun::star::beans">Property</type> for that
132*cdf0e10cSrcweir child as the child itself.
133*cdf0e10cSrcweir </p>
134*cdf0e10cSrcweir*/
135*cdf0e10cSrcweir	[optional] interface com::sun::star::beans::XPropertySetInfo;
136*cdf0e10cSrcweir
137*cdf0e10cSrcweir/** provides access to the state of child elements of an implementation. [optional]
138*cdf0e10cSrcweir
139*cdf0e10cSrcweir <p>This interface may be missing if the hierarchy (or a hierarchy fragment
140*cdf0e10cSrcweir that contains this implementation as element) does not support default values or
141*cdf0e10cSrcweir if the node does not support accessing the default state of individual children.
142*cdf0e10cSrcweir </p>
143*cdf0e10cSrcweir
144*cdf0e10cSrcweir <p>If elements that are not simple values, but objects themselves, support
145*cdf0e10cSrcweir a default state (as indicated by
146*cdf0e10cSrcweir <const scope="com::sun::star::beans">PropertyAttribute::MAYBEDEFAULT</const>),
147*cdf0e10cSrcweir they should implement
148*cdf0e10cSrcweir <type scope="com::sun::star::beans">XPropertyWithState</type>, in which case
149*cdf0e10cSrcweir the <type scope="com::sun::star::beans">PropertyState</type> applies to all
150*cdf0e10cSrcweir their children and recursively to all descendants.
151*cdf0e10cSrcweir </p>
152*cdf0e10cSrcweir
153*cdf0e10cSrcweir <p>If an implementation is part of a <em>read-only</em> view of the hierarchy,
154*cdf0e10cSrcweir attempts to change property states will fail.
155*cdf0e10cSrcweir </p>
156*cdf0e10cSrcweir*/
157*cdf0e10cSrcweir	[optional] interface com::sun::star::beans::XPropertyState;
158*cdf0e10cSrcweir
159*cdf0e10cSrcweir/** provides access to the states of multiple child elements of
160*cdf0e10cSrcweir an implementation. [optional]
161*cdf0e10cSrcweir
162*cdf0e10cSrcweir <p>This interface may be missing if the hierarchy (or a hierarchy fragment
163*cdf0e10cSrcweir that contains this implementation as element) does not support default values
164*cdf0e10cSrcweir if the node does not support accessing the default state of individual children.
165*cdf0e10cSrcweir </p>
166*cdf0e10cSrcweir
167*cdf0e10cSrcweir <p>If elements that are not simple values, but objects themselves, support
168*cdf0e10cSrcweir a default state (as indicated by
169*cdf0e10cSrcweir <const scope="com::sun::star::beans">PropertyAttribute::MAYBEDEFAULT</const>),
170*cdf0e10cSrcweir they should implement
171*cdf0e10cSrcweir <type scope="com::sun::star::beans">XPropertyWithState</type>, in which case
172*cdf0e10cSrcweir the <type scope="com::sun::star::beans">PropertyState</type> applies to all
173*cdf0e10cSrcweir their children and recursively to all descendants.
174*cdf0e10cSrcweir </p>
175*cdf0e10cSrcweir
176*cdf0e10cSrcweir <p>If an implementation is part of a <em>read-only</em> view of the hierarchy,
177*cdf0e10cSrcweir attempts to change property states will fail.
178*cdf0e10cSrcweir </p>
179*cdf0e10cSrcweir*/
180*cdf0e10cSrcweir	[optional] interface com::sun::star::beans::XMultiPropertyStates;
181*cdf0e10cSrcweir};
182*cdf0e10cSrcweir
183*cdf0e10cSrcweir//=============================================================================
184*cdf0e10cSrcweir
185*cdf0e10cSrcweir}; }; }; };
186*cdf0e10cSrcweir
187*cdf0e10cSrcweir#endif
188