1/**************************************************************
2 *
3 * Licensed to the Apache Software Foundation (ASF) under one
4 * or more contributor license agreements.  See the NOTICE file
5 * distributed with this work for additional information
6 * regarding copyright ownership.  The ASF licenses this file
7 * to you under the Apache License, Version 2.0 (the
8 * "License"); you may not use this file except in compliance
9 * with the License.  You may obtain a copy of the License at
10 *
11 *   http://www.apache.org/licenses/LICENSE-2.0
12 *
13 * Unless required by applicable law or agreed to in writing,
14 * software distributed under the License is distributed on an
15 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16 * KIND, either express or implied.  See the License for the
17 * specific language governing permissions and limitations
18 * under the License.
19 *
20 *************************************************************/
21
22
23#ifndef __com_sun_star_configuration_backend_LayerUpdateMerger_idl__
24#define __com_sun_star_configuration_backend_LayerUpdateMerger_idl__
25
26#ifndef __com_sun_star_lang_XInitialization_idl__
27#include <com/sun/star/lang/XInitialization.idl>
28#endif
29
30#ifndef __com_sun_star_configuration_backend_XUpdateHandler_idl__
31#include <com/sun/star/configuration/backend/XUpdateHandler.idl>
32#endif
33
34//=============================================================================
35
36module com { module sun { module star { module configuration { module backend {
37
38//=============================================================================
39
40/**
41    applies updates to a configuration layer.
42
43    <p> The configuration layer data is read from a <type>XLayer</type>
44    and the changed layer is provided as <type>XLayer</type> again or
45    described to a <type>XLayerHandler</type>.
46    </p>
47
48    @see com::sun::star::configuration::backend::UpdatableLayer
49        Service describes a layer and accepts a changed layer..
50
51    @since OOo 1.1.2
52*/
53published service LayerUpdateMerger
54{
55	//-------------------------------------------------------------------------
56
57    /** accepts events describing the changes.
58      */
59    interface com::sun::star::configuration::backend::XUpdateHandler ;
60
61	//-------------------------------------------------------------------------
62
63    /** allows initializing layer data source and target.
64
65        <p> Both source and target of the update can be provided by passing a
66            <type>XUpdatableLayer</type> object. Alternatively they can be
67            provided individually by providing a <type>XLayer</type> object as
68            data source and an <type>XLayerHandler</type> object to receive the
69            updated data.
70        </p>
71        <p> Implementations can provide more arguments to finetune the behavior.
72            Such arguments are provided as
73            <type scope="com::sun::star::beans">NamedValue</type>.
74            Implementations should support the following named arguments:
75        <dl>
76            <dt><code>Overwrite</code> : <atom>boolean</atom></dt>
77            <dd>If <FALSE/>, specifies that changes should be applied
78                only if the existing layer is empty.
79            </dd>
80            <dt><code>Truncate</code> : <atom>boolean</atom></dt>
81            <dd>If <TRUE/> requests that changes should not be merged onto
82                existing data, but that the changes should be applied
83                to a layer that is completely empty.
84            </dd>
85        </dl>
86        </p>
87      */
88    interface com::sun::star::lang::XInitialization ;
89
90	//-------------------------------------------------------------------------
91} ;
92
93//=============================================================================
94
95} ; } ; } ; } ; } ;
96
97#endif
98