summaryrefslogtreecommitdiff
path: root/offapi/com/sun/star/ucb/HierarchyDataSource.idl
diff options
context:
space:
mode:
Diffstat (limited to 'offapi/com/sun/star/ucb/HierarchyDataSource.idl')
-rw-r--r--offapi/com/sun/star/ucb/HierarchyDataSource.idl119
1 files changed, 119 insertions, 0 deletions
diff --git a/offapi/com/sun/star/ucb/HierarchyDataSource.idl b/offapi/com/sun/star/ucb/HierarchyDataSource.idl
new file mode 100644
index 000000000000..31ec3ea91ca1
--- /dev/null
+++ b/offapi/com/sun/star/ucb/HierarchyDataSource.idl
@@ -0,0 +1,119 @@
+/*************************************************************************
+ *
+ * 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
+ * <http://www.openoffice.org/license.html>
+ * 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 <com/sun/star/lang/XMultiServiceFactory.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 {
+
+//=============================================================================
+/** 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.
+
+ <p><b>Note:</b> This is an abstract service. This means, that there should
+ never be implementations that can be instanciated using the service name
+ <code>com.sun.star.ucb.HierarchyDataSource</code>. 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.
+
+ <p>The parameter <var>aServiceSpecifier</var> passed to
+ <member scope="com::sun::star::lang">XMultiServiceFactory::createInstanceWithArguments</member>
+ supports at least the service specifier
+ <code>"com.sun.star.ucb.HierarchyDataReadAccess"</code>, which will
+ create a <b>read-only view</b> to the data. The object that is created
+ implements the service <type>HierarchyDataReadAccess</type>.
+
+ <p><b>Optionally</b> the factory may support <b>writable views</b>. A
+ writable view is requested by passing the service specifier
+ <code>"com.sun.star.ucb.HierarchyDataReadWriteAccess"</code> to
+ <member scope="com::sun::star::lang">XMultiServiceFactory::createInstanceWithArguments</member>
+ The object that is created implements the service
+ <type>HierarchyDataReadWriteAccess</type>.
+
+ <p>The arguments passed to
+ <member scope="com::sun::star::lang">XMultiServiceFactory::createInstanceWithArguments</member>
+ in parameter <var>aArguments</var> 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
+ <type scope="com::sun::star::beans">PropertyValue</type>, so that the
+ parameters can be identified by name rather than by position.
+
+ <p>With both of the standard service specifiers above, an implementation
+ must accept a property named <code>nodepath</code> of type
+ <atom>string</atom>. 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 <b>root</b> of the hierarchy data always
+ has an empty path. Refer to <type>HierarchyDataReadAccess</type> for
+ more informtion on hierarchical names.
+
+ <p>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.
+
+ <p>An implementation must ignore unknown arguments.
+
+ <p>The implementation of
+ <member scope="com::sun::star::lang">XMultiServiceFactory::createInstance</member>
+ must behave exactly as if
+ <member scope="com::sun::star::lang">XMultiServiceFactory::createInstanceWithArguments</member>
+ were called passing one single property named <code>nodepath</code>
+ 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