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