| /************************************************************** |
| * |
| * Licensed to the Apache Software Foundation (ASF) under one |
| * or more contributor license agreements. See the NOTICE file |
| * distributed with this work for additional information |
| * regarding copyright ownership. The ASF licenses this file |
| * to you under the Apache License, Version 2.0 (the |
| * "License"); you may not use this file except in compliance |
| * with the License. You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, |
| * software distributed under the License is distributed on an |
| * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| * KIND, either express or implied. See the License for the |
| * specific language governing permissions and limitations |
| * under the License. |
| * |
| *************************************************************/ |
| |
| |
| #ifndef __com_sun_star_configuration_HierarchyAccess_idl__ |
| #define __com_sun_star_configuration_HierarchyAccess_idl__ |
| |
| #ifndef __com_sun_star_container_XNameAccess_idl__ |
| #include <com/sun/star/container/XNameAccess.idl> |
| #endif |
| |
| #ifndef __com_sun_star_container_XHierarchicalNameAccess_idl__ |
| #include <com/sun/star/container/XHierarchicalNameAccess.idl> |
| #endif |
| |
| #ifndef __com_sun_star_container_XContainer_idl__ |
| #include <com/sun/star/container/XContainer.idl> |
| #endif |
| |
| #ifndef __com_sun_star_beans_XExactName_idl__ |
| #include <com/sun/star/beans/XExactName.idl> |
| #endif |
| |
| #ifndef __com_sun_star_beans_XPropertySetInfo_idl__ |
| #include <com/sun/star/beans/XPropertySetInfo.idl> |
| #endif |
| |
| #ifndef __com_sun_star_beans_XPropertyState_idl__ |
| #include <com/sun/star/beans/XPropertyState.idl> |
| #endif |
| |
| #ifndef __com_sun_star_beans_XMultiPropertyState_idl__ |
| #include <com/sun/star/beans/XMultiPropertyStates.idl> |
| #endif |
| |
| //============================================================================= |
| |
| module com { module sun { module star { module configuration { |
| |
| //============================================================================= |
| /** provides access to a hierarchy of descendant elements. |
| |
| <p>Subnodes are accessed by their name. Values that are direct or indirect |
| descendants of this tree node can be retrieved. Non-value subnodes can be |
| navigated using container interfaces. |
| Other interfaces provide access to information about this node. |
| Changes to values in the subtree can be monitored by event listeners. |
| </p> |
| |
| <p>Elements of this container that are not simple values |
| are similar containers themselves, thus (recursively) forming a |
| hierarchical tree. |
| </p> |
| |
| <p>Implementations of this service usually also implement |
| service <type>HierarchyElement</type>, which concerns the complementary role |
| of being accessible as an element of the hierarchy. |
| </p> |
| */ |
| published service HierarchyAccess |
| { |
| /** allows access to immediate children of this node. |
| |
| <p><member scope="com::sun::star::container">XNameAccess::getByName()</member> |
| returns an <atom>any</atom> holding either a simple value or an interface |
| on another HierarchyAccess if the child is not a simple value. |
| </p> |
| */ |
| interface com::sun::star::container::XNameAccess; |
| |
| /** allows access to all descendants of this node |
| |
| <p><member scope="com::sun::star::container">XHierarchicalNameAccess::getByHierarchicalName()</member> |
| returns an <atom>any</atom> holding either a simple value or an interface |
| on another HierarchyAccess if the descendant is not a simple value. |
| </p> |
| */ |
| interface com::sun::star::container::XHierarchicalNameAccess; |
| |
| /** allows attaching listeners to this node to monitor changes to immediate child nodes. |
| */ |
| interface com::sun::star::container::XContainer; |
| |
| /** provides support for inexact names. |
| <p>Exact names can be obtained for simple or hierarchical names for use in |
| <type scope="com::sun::star::container">XNameAccess</type>, |
| <type scope="com::sun::star::container">XHierarchicalNameAccess</type>, |
| <type scope="com::sun::star::beans">XPropertySet</type> or |
| any other interfaces that allow access to or manipulation of subnodes |
| selected by name or hierarchical name. |
| </p> |
| <p>If an inexact name could be matched to either a simple or a hierarchical |
| name, the simple (immediate child) name is preferred. |
| </p> |
| */ |
| interface com::sun::star::beans::XExactName; |
| |
| /** provides information about immediate children of this node. [optional] |
| |
| <p>This interface may be missing, if the hierarchy supports no traits that are |
| described by <type scope="com::sun::star::beans">PropertyAttribute</type> |
| values or if the same information is available by other means, |
| e.g. if the implementation supports |
| <member scope="com::sun::star::beans">XPropertySet::getPropertySetInfo()</member>. |
| </p> |
| |
| <p>If a child of this node is an object that implements |
| <type scope="com::sun::star::beans">XProperty</type>, then this implementation |
| returns the same <type scope="com::sun::star::beans">Property</type> for that |
| child as the child itself. |
| </p> |
| */ |
| [optional] interface com::sun::star::beans::XPropertySetInfo; |
| |
| /** provides access to the state of child elements of an implementation. [optional] |
| |
| <p>This interface may be missing if the hierarchy (or a hierarchy fragment |
| that contains this implementation as element) does not support default values or |
| if the node does not support accessing the default state of individual children. |
| </p> |
| |
| <p>If elements that are not simple values, but objects themselves, support |
| a default state (as indicated by |
| <const scope="com::sun::star::beans">PropertyAttribute::MAYBEDEFAULT</const>), |
| they should implement |
| <type scope="com::sun::star::beans">XPropertyWithState</type>, in which case |
| the <type scope="com::sun::star::beans">PropertyState</type> applies to all |
| their children and recursively to all descendants. |
| </p> |
| |
| <p>If an implementation is part of a <em>read-only</em> view of the hierarchy, |
| attempts to change property states will fail. |
| </p> |
| */ |
| [optional] interface com::sun::star::beans::XPropertyState; |
| |
| /** provides access to the states of multiple child elements of |
| an implementation. [optional] |
| |
| <p>This interface may be missing if the hierarchy (or a hierarchy fragment |
| that contains this implementation as element) does not support default values |
| if the node does not support accessing the default state of individual children. |
| </p> |
| |
| <p>If elements that are not simple values, but objects themselves, support |
| a default state (as indicated by |
| <const scope="com::sun::star::beans">PropertyAttribute::MAYBEDEFAULT</const>), |
| they should implement |
| <type scope="com::sun::star::beans">XPropertyWithState</type>, in which case |
| the <type scope="com::sun::star::beans">PropertyState</type> applies to all |
| their children and recursively to all descendants. |
| </p> |
| |
| <p>If an implementation is part of a <em>read-only</em> view of the hierarchy, |
| attempts to change property states will fail. |
| </p> |
| */ |
| [optional] interface com::sun::star::beans::XMultiPropertyStates; |
| }; |
| |
| //============================================================================= |
| |
| }; }; }; }; |
| |
| #endif |