| /************************************************************** |
| * |
| * 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_ucb_HierarchyDataReadAccess_idl__ |
| #define __com_sun_star_ucb_HierarchyDataReadAccess_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_util_XChangesNotifier_idl__ |
| #include <com/sun/star/util/XChangesNotifier.idl> |
| #endif |
| #ifndef __com_sun_star_lang_XComponent_idl__ |
| #include <com/sun/star/lang/XComponent.idl> |
| #endif |
| |
| //============================================================================= |
| |
| module com { module sun { module star { module ucb { |
| |
| //============================================================================= |
| /** provides read access to a fragment of the hierarchy data. |
| |
| <p>A hierarchy data source provides access to a tree of hierarchy data |
| nodes. Each hierarchy data node, except the root node, has a parent that |
| is a hierarchy data node too. A hierarchy data node has a name. |
| |
| <p>Each hierarchy data node has three data members: |
| |
| <ul> |
| <li>"Title", which is of type <atom>string</atom>. It contains a title |
| for the node. This value must not be empty. |
| <li>"TargetURL", which is of type <atom>string</atom></li> It may contain |
| any URL, which will be treated as the target of a hierarchy link. |
| <li>"Children", which is of type <type>HierarchyDataReadAccess</type> or |
| of type <type>HierarchyDataReadWriteAccess</type></li>, depending on the |
| type of the node. This member provides access to the children of a node. |
| </ul> |
| */ |
| published service HierarchyDataReadAccess |
| { |
| //------------------------------------------------------------------------- |
| /** gives access to the data members of a hierarchy data node. |
| |
| <p>Examples: |
| <ul> |
| <li><code>getByName( "Title" )</code> will return an <atom>any</atom> |
| containing a string containing the title of the node. |
| </li> |
| <li><code>getByName( "Children" )</code> will return an <atom>any</atom> |
| containing an implementation of service |
| <type>HierarchyDataReadAccess</type>, if it was called on a read-only |
| node. It will return an implementation of service |
| <type>HierarchyDataReadWriteAccess</type> if it was called on a |
| writable node. |
| </li> |
| </ul> |
| */ |
| interface com::sun::star::container::XNameAccess; |
| |
| //------------------------------------------------------------------------- |
| /** gives access to the data members of a hierarchy data node as well |
| as to any child nodes or to the data members of child nodes using a |
| hierarchical name. |
| |
| <p>A hierarchical name consists of segments that are separated by a |
| single slash ('/'). There is neither a leading nor a trailing slash |
| allowed. |
| |
| <ul> |
| <li> |
| path = segment ( '/' segement )* |
| </li> |
| <li> |
| segment = '[' quoted-string ']' |
| </li> |
| <li> |
| quoted-string = "'" escaped-string "'" |
| </li> |
| <li> |
| escaped-string = escaped accoding to XML attribute naming conventions |
| </li> |
| </ul> |
| |
| <p>Examples: |
| <ul> |
| <li> |
| <code>getByHierarchicalName( "Title" )</code> will return an |
| <atom>any</atom> containing a string containing the title of the node |
| itself. |
| </li> |
| <li> |
| <code>getByHierarchicalName( "Children/['subnode1']" )</code> will give |
| access to the child node named "subnode1" of the node. It will return |
| an <atom>any</atom> containing an implementation of service |
| <type>HierarchyDataReadAccess</type>, if it was called on a read-only |
| node. It will return an implementation of service |
| <type>HierarchyDataReadWriteAccess</type> if it was called on a |
| writable node. |
| </li> |
| <li> |
| <code>getByHierarchicalName( "Children/['subnode2']/TargetURL" )</code> |
| will give direct access to the "TargetURL" data member of the child node |
| named "subnode2" of the node. It will return an <atom>any</atom> |
| containing a <atom>string</atom> containing the target URL of the node. |
| </li> |
| <li> |
| <code>getByHierarchicalName( "Children/['subnode3']/Children" )</code> |
| will give direct access to the "Children" data member of the child node |
| named "subnode3" of the node. It will return an <atom>any</atom> |
| conntaining an implementation of service |
| <type>HierarchyDataReadAccess</type>, if it was called on a read-only |
| node. It will return an implementation of service |
| <type>HierarchyDataReadWriteAccess</type> if it was called on a |
| writable node. |
| </li> |
| </ul> |
| */ |
| interface com::sun::star::container::XHierarchicalNameAccess; |
| |
| //------------------------------------------------------------------------- |
| /** allows registering listeners that observe the hierarchy data source. |
| |
| <p>A client can register an |
| <type scope="com::sun::star::util">XChangesListener</type>, which will |
| receive notifications for any changes within the hierarchy (fragment) |
| this object represents. |
| |
| <p>An implementation should collect as many changes as possible into a |
| single <type scope="com::sun::star::util">ChangesEvent</type>. |
| */ |
| interface com::sun::star::util::XChangesNotifier; |
| |
| //------------------------------------------------------------------------- |
| /** allows controlling or observing the lifetime of the hierarchy data |
| access object. |
| */ |
| interface com::sun::star::lang::XComponent; |
| }; |
| |
| //============================================================================= |
| |
| }; }; }; }; |
| |
| #endif |