/************************************************************************* * * 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_HierarchyDataSource_idl__ #define __com_sun_star_ucb_HierarchyDataSource_idl__ #ifndef __com_sun_star_lang_XMultiServiceFactory_idl__ #include #endif #ifndef __com_sun_star_lang_XComponent_idl__ #include #endif //============================================================================= module com { module sun { module star { module ucb { //============================================================================= /** manages one or more complete sets of hierarchy data and serves as a factory for objects that provide access to a subset of the data.

Note: This is an abstract service. This means, that there should never be implementations that can be instanciated using the service name com.sun.star.ucb.HierarchyDataSource. Each implementation must provide its own service name that can be used to create instances of that service implementation. Important for those service specifications is also to specify which of the optional parts are supported by the implementation. */ published service HierarchyDataSource { //------------------------------------------------------------------------- /** allows creating access objects for specific views such as subsets and fragments of the hierrachy data.

The parameter aServiceSpecifier passed to XMultiServiceFactory::createInstanceWithArguments supports at least the service specifier "com.sun.star.ucb.HierarchyDataReadAccess", which will create a read-only view to the data. The object that is created implements the service HierarchyDataReadAccess.

Optionally the factory may support writable views. A writable view is requested by passing the service specifier "com.sun.star.ucb.HierarchyDataReadWriteAccess" to XMultiServiceFactory::createInstanceWithArguments The object that is created implements the service HierarchyDataReadWriteAccess.

The arguments passed to XMultiServiceFactory::createInstanceWithArguments in parameter aArguments specify the view of the data that should be created. That is, they determine the subset of elements that can be accessed starting from the returned object. Each element of the argument sequence should be a PropertyValue, so that the parameters can be identified by name rather than by position.

With both of the standard service specifiers above, an implementation must accept a property named nodepath of type string. This property must contain the absolute path to an element of the data. The view that is selected consists of the named element and all its decendants. A path consists of segments that are separated by a single slash ('/'). There is neither a leading nor a trailing slash allowed. The root of the hierarchy data always has an empty path. Refer to HierarchyDataReadAccess for more informtion on hierarchical names.

Other arguments can be used to control the behavior of the view. These are different for different implementations. Whether and how they are used may also depend on the configuration store and configuration that were selected when the provider was created.

An implementation must ignore unknown arguments.

The implementation of XMultiServiceFactory::createInstance must behave exactly as if XMultiServiceFactory::createInstanceWithArguments were called passing one single property named nodepath where the property value is an empty string. Thus it always creates a view to the root of the hierarchy data. */ interface com::sun::star::lang::XMultiServiceFactory; //------------------------------------------------------------------------- /** allows controlling or observing the lifetime of the hierarchy data source and its views. */ interface com::sun::star::lang::XComponent; }; //============================================================================= }; }; }; }; #endif