1*d1766043SAndrew Rist/**************************************************************
2cdf0e10cSrcweir *
3*d1766043SAndrew Rist * Licensed to the Apache Software Foundation (ASF) under one
4*d1766043SAndrew Rist * or more contributor license agreements.  See the NOTICE file
5*d1766043SAndrew Rist * distributed with this work for additional information
6*d1766043SAndrew Rist * regarding copyright ownership.  The ASF licenses this file
7*d1766043SAndrew Rist * to you under the Apache License, Version 2.0 (the
8*d1766043SAndrew Rist * "License"); you may not use this file except in compliance
9*d1766043SAndrew Rist * with the License.  You may obtain a copy of the License at
10*d1766043SAndrew Rist *
11*d1766043SAndrew Rist *   http://www.apache.org/licenses/LICENSE-2.0
12*d1766043SAndrew Rist *
13*d1766043SAndrew Rist * Unless required by applicable law or agreed to in writing,
14*d1766043SAndrew Rist * software distributed under the License is distributed on an
15*d1766043SAndrew Rist * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16*d1766043SAndrew Rist * KIND, either express or implied.  See the License for the
17*d1766043SAndrew Rist * specific language governing permissions and limitations
18*d1766043SAndrew Rist * under the License.
19*d1766043SAndrew Rist *
20*d1766043SAndrew Rist *************************************************************/
21*d1766043SAndrew Rist
22*d1766043SAndrew Rist
23cdf0e10cSrcweir#ifndef __com_sun_star_configuration_HierarchyElement_idl__
24cdf0e10cSrcweir#define __com_sun_star_configuration_HierarchyElement_idl__
25cdf0e10cSrcweir
26cdf0e10cSrcweir#ifndef __com_sun_star_container_XNamed_idl__
27cdf0e10cSrcweir#include <com/sun/star/container/XNamed.idl>
28cdf0e10cSrcweir#endif
29cdf0e10cSrcweir
30cdf0e10cSrcweir#ifndef __com_sun_star_container_XHierarchicalName_idl__
31cdf0e10cSrcweir#include <com/sun/star/container/XHierarchicalName.idl>
32cdf0e10cSrcweir#endif
33cdf0e10cSrcweir
34cdf0e10cSrcweir#ifndef __com_sun_star_beans_XProperty_idl__
35cdf0e10cSrcweir#include <com/sun/star/beans/XProperty.idl>
36cdf0e10cSrcweir#endif
37cdf0e10cSrcweir
38cdf0e10cSrcweir#ifndef __com_sun_star_beans_XPropertyWithState_idl__
39cdf0e10cSrcweir#include <com/sun/star/beans/XPropertyWithState.idl>
40cdf0e10cSrcweir#endif
41cdf0e10cSrcweir
42cdf0e10cSrcweir#ifndef __com_sun_star_container_XChild_idl__
43cdf0e10cSrcweir#include <com/sun/star/container/XChild.idl>
44cdf0e10cSrcweir#endif
45cdf0e10cSrcweir
46cdf0e10cSrcweir//=============================================================================
47cdf0e10cSrcweir
48cdf0e10cSrcweirmodule com { module sun { module star { module configuration {
49cdf0e10cSrcweir
50cdf0e10cSrcweir//=============================================================================
51cdf0e10cSrcweir/** provides information about an element within a hierarchy.
52cdf0e10cSrcweir
53cdf0e10cSrcweir <p>The local name and the full hierarchical name can be retrieved.
54cdf0e10cSrcweir Attributes detailing the role of the element can be queried.
55cdf0e10cSrcweir The state of the element (regarding defaults) can be accessed.
56cdf0e10cSrcweir </p>
57cdf0e10cSrcweir
58cdf0e10cSrcweir <p>Implementations of this service usually also implement
59cdf0e10cSrcweir service <type>HierarchyAccess</type>, which concerns the complementary role
60cdf0e10cSrcweir of providing access to subelements of the hierarchy.
61cdf0e10cSrcweir </p>
62cdf0e10cSrcweir*/
63cdf0e10cSrcweirpublished service HierarchyElement
64cdf0e10cSrcweir{
65cdf0e10cSrcweir/** provides the complete hierarchical name of this element
66cdf0e10cSrcweir within the hierarchy tree.
67cdf0e10cSrcweir*/
68cdf0e10cSrcweir	interface com::sun::star::container::XHierarchicalName;
69cdf0e10cSrcweir
70cdf0e10cSrcweir/** provides the local name of this element within its parent.
71cdf0e10cSrcweir
72cdf0e10cSrcweir <p><em>Renaming an element is generally not supported.</em></p>
73cdf0e10cSrcweir*/
74cdf0e10cSrcweir	interface com::sun::star::container::XNamed;
75cdf0e10cSrcweir
76cdf0e10cSrcweir/** provides a property descriptor for this element.[optional]
77cdf0e10cSrcweir
78cdf0e10cSrcweir <p>This interface may be missing, if the hierarchy supports no traits that are
79cdf0e10cSrcweir described by <type scope="com::sun::star::beans">PropertyAttribute</type>
80cdf0e10cSrcweir values.
81cdf0e10cSrcweir </p>
82cdf0e10cSrcweir
83cdf0e10cSrcweir <p>If the parent of this object implements
84cdf0e10cSrcweir <type scope="com::sun::star::beans">XPropertySetInfo</type>, then this returns
85cdf0e10cSrcweir the same <type scope="com::sun::star::beans">Property</type> as the
86cdf0e10cSrcweir <type scope="com::sun::star::beans">XPropertySetInfo</type> of the parent.
87cdf0e10cSrcweir </p>
88cdf0e10cSrcweir*/
89cdf0e10cSrcweir	[optional] interface com::sun::star::beans::XProperty;
90cdf0e10cSrcweir
91cdf0e10cSrcweir/** provides access to the default state of this element. [optional]
92cdf0e10cSrcweir
93cdf0e10cSrcweir <p>This interface may be missing, if the hierarchy supports access to
94cdf0e10cSrcweir a default state and values only for simple values or not at all.
95cdf0e10cSrcweir </p>
96cdf0e10cSrcweir
97cdf0e10cSrcweir <p>If the parent of this object implements
98cdf0e10cSrcweir <type scope="com::sun::star::beans">XPropertyState</type>, then members
99cdf0e10cSrcweir of this interface have the same effect as corresponding members of the parent.
100cdf0e10cSrcweir </p>
101cdf0e10cSrcweir
102cdf0e10cSrcweir <p>If an implementation is part of a <em>read-only</em> view of the hierarchy,
103cdf0e10cSrcweir attempts to change property states will fail.
104cdf0e10cSrcweir </p>
105cdf0e10cSrcweir*/
106cdf0e10cSrcweir	[optional] interface com::sun::star::beans::XPropertyWithState;
107cdf0e10cSrcweir
108cdf0e10cSrcweir/** provides access to the parent of this element [optional].
109cdf0e10cSrcweir
110cdf0e10cSrcweir <p>This interface may be missing if this object is not obtained
111cdf0e10cSrcweir as a child or descendant of another tree node, for example, directly from a factory or provider.
112cdf0e10cSrcweir </p>
113cdf0e10cSrcweir
114cdf0e10cSrcweir <p><member scope="com::sun::star::container">XChild::getParent()</member>
115cdf0e10cSrcweir returns NULL, if this object is currently not contained in another node.
116cdf0e10cSrcweir </p>
117cdf0e10cSrcweir
118cdf0e10cSrcweir <p><em>Setting a different parent is, generally, not supported.</em></p>
119cdf0e10cSrcweir*/
120cdf0e10cSrcweir	[optional] interface com::sun::star::container::XChild;
121cdf0e10cSrcweir
122cdf0e10cSrcweir};
123cdf0e10cSrcweir
124cdf0e10cSrcweir//=============================================================================
125cdf0e10cSrcweir
126cdf0e10cSrcweir}; }; }; };
127cdf0e10cSrcweir
128cdf0e10cSrcweir#endif
129