1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
3 * This file is part of the LibreOffice project.
5 * This Source Code Form is subject to the terms of the Mozilla Public
6 * License, v. 2.0. If a copy of the MPL was not distributed with this
7 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
9 * This file incorporates work covered by the following license notice:
11 * Licensed to the Apache Software Foundation (ASF) under one or more
12 * contributor license agreements. See the NOTICE file distributed
13 * with this work for additional information regarding copyright
14 * ownership. The ASF licenses this file to you under the Apache
15 * License, Version 2.0 (the "License"); you may not use this file
16 * except in compliance with the License. You may obtain a copy of
17 * the License at http://www.apache.org/licenses/LICENSE-2.0 .
19 #ifndef __com_sun_star_ucb_HierarchyDataReadWriteAccess_idl__
20 #define __com_sun_star_ucb_HierarchyDataReadWriteAccess_idl__
22 #include
<com
/sun
/star
/ucb
/HierarchyDataReadAccess.idl
>
23 #include
<com
/sun
/star
/container
/XNameContainer.idl
>
24 #include
<com
/sun
/star
/lang
/XSingleServiceFactory.idl
>
25 #include
<com
/sun
/star
/util
/XChangesBatch.idl
>
28 module com
{ module sun
{ module star
{ module ucb
{
30 /** provides read and write access to a fragment of the hierarchy data.
32 published service HierarchyDataReadWriteAccess
34 /** provides read access to a fragment of the hierarchy data
36 service HierarchyDataReadAccess
;
38 /** allows adding and removing of hierarchy data nodes, replacing of
39 the value of hierarchy data node members, as well as obtaining the
40 value of hierarchy data node members.
42 <p>Adding and removing must only be supported if the access object
43 points to the "Children" data member of a node or to the root node.
44 It will insert a new node or remove an existing one. If supported
45 on data nodes, adding must add new data members to the node, removing
46 must remove data members. However, the mandatory data members (Title,
47 TargetURL, Children) must never be removable.
49 <p>Replacing and getting values must be supported be every data node.
51 interface com
::sun
::star
::container
::XNameContainer
;
53 /** gives access to all contents provided by this provider.
55 <p>com::sun::star::lang::XSingleServiceFactory::createInstance()
56 will create a new empty hierarchy data node. After it was created
57 it's data members can be filled. Last, the node can be inserted as child
59 com::sun::star::container::XNameContainer::insertByName().
61 <p>There are no special arguments that must be supported by
62 com::sun::star::lang::XSingleServiceFactory::createInstanceWithArguments()
64 interface com
::sun
::star
::lang
::XSingleServiceFactory
;
66 /** allows managing changes within the hierarchy.
68 <p>com::sun::star::util::XChangesBatch::getPendingChanges()
69 reports all changes within the hierarchy that are done through (direct
70 or indirect) descendants of this element. The same set of changes is
71 committed to persistent storage and/or made visible to other objects
72 accessing the same data set, when
73 com::sun::star::util::XChangesBatch::commitChanges()
76 interface com
::sun
::star
::util
::XChangesBatch
;
84 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */