/************************************************************** * * 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 #endif #ifndef __com_sun_star_container_XHierarchicalNameAccess_idl__ #include #endif #ifndef __com_sun_star_util_XChangesNotifier_idl__ #include #endif #ifndef __com_sun_star_lang_XComponent_idl__ #include #endif //============================================================================= module com { module sun { module star { module ucb { //============================================================================= /** provides read access to a fragment of the hierarchy data.

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.

Each hierarchy data node has three data members:

  • "Title", which is of type string. It contains a title for the node. This value must not be empty.
  • "TargetURL", which is of type string
  • It may contain any URL, which will be treated as the target of a hierarchy link.
  • "Children", which is of type HierarchyDataReadAccess or of type HierarchyDataReadWriteAccess
  • , depending on the type of the node. This member provides access to the children of a node.
*/ published service HierarchyDataReadAccess { //------------------------------------------------------------------------- /** gives access to the data members of a hierarchy data node.

Examples:

  • getByName( "Title" ) will return an any containing a string containing the title of the node.
  • getByName( "Children" ) will return an any containing an implementation of service HierarchyDataReadAccess, if it was called on a read-only node. It will return an implementation of service HierarchyDataReadWriteAccess if it was called on a writable node.
*/ 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.

A hierarchical name consists of segments that are separated by a single slash ('/'). There is neither a leading nor a trailing slash allowed.

  • path = segment ( '/' segement )*
  • segment = '[' quoted-string ']'
  • quoted-string = "'" escaped-string "'"
  • escaped-string = escaped accoding to XML attribute naming conventions

Examples:

  • getByHierarchicalName( "Title" ) will return an any containing a string containing the title of the node itself.
  • getByHierarchicalName( "Children/['subnode1']" ) will give access to the child node named "subnode1" of the node. It will return an any containing an implementation of service HierarchyDataReadAccess, if it was called on a read-only node. It will return an implementation of service HierarchyDataReadWriteAccess if it was called on a writable node.
  • getByHierarchicalName( "Children/['subnode2']/TargetURL" ) will give direct access to the "TargetURL" data member of the child node named "subnode2" of the node. It will return an any containing a string containing the target URL of the node.
  • getByHierarchicalName( "Children/['subnode3']/Children" ) will give direct access to the "Children" data member of the child node named "subnode3" of the node. It will return an any conntaining an implementation of service HierarchyDataReadAccess, if it was called on a read-only node. It will return an implementation of service HierarchyDataReadWriteAccess if it was called on a writable node.
*/ interface com::sun::star::container::XHierarchicalNameAccess; //------------------------------------------------------------------------- /** allows registering listeners that observe the hierarchy data source.

A client can register an XChangesListener, which will receive notifications for any changes within the hierarchy (fragment) this object represents.

An implementation should collect as many changes as possible into a single ChangesEvent. */ 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