/************************************************************************* * * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * Copyright 2000, 2010 Oracle and/or its affiliates. * * OpenOffice.org - a multi-platform office productivity suite * * This file is part of OpenOffice.org. * * OpenOffice.org is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License version 3 * only, as published by the Free Software Foundation. * * OpenOffice.org is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License version 3 for more details * (a copy is included in the LICENSE file that accompanied this code). * * You should have received a copy of the GNU Lesser General Public License * version 3 along with OpenOffice.org. If not, see * * for a copy of the LGPLv3 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