diff options
Diffstat (limited to 'offapi/com/sun/star/configuration/backend/XMultiLayerStratum.idl')
-rw-r--r-- | offapi/com/sun/star/configuration/backend/XMultiLayerStratum.idl | 314 |
1 files changed, 314 insertions, 0 deletions
diff --git a/offapi/com/sun/star/configuration/backend/XMultiLayerStratum.idl b/offapi/com/sun/star/configuration/backend/XMultiLayerStratum.idl new file mode 100644 index 000000000..5c20f01bb --- /dev/null +++ b/offapi/com/sun/star/configuration/backend/XMultiLayerStratum.idl @@ -0,0 +1,314 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ +#ifndef __com_sun_star_configuration_backend_XMultiLayerStratum_idl__ +#define __com_sun_star_configuration_backend_XMultiLayerStratum_idl__ + +#include <com/sun/star/uno/XInterface.idl> +#include <com/sun/star/configuration/backend/XLayer.idl> +#include <com/sun/star/configuration/backend/XUpdatableLayer.idl> +#include <com/sun/star/configuration/backend/BackendAccessException.idl> +#include <com/sun/star/lang/IllegalArgumentException.idl> +#include <com/sun/star/lang/NoSupportException.idl> + + +module com { module sun { module star { module configuration { module backend { + + +/** + Handles access to a stratum consisting of multiple layers + in a single configuration data repository + + <p> The interface provides access to data for multiple entities and + timestamp-checking capabilities for efficient caching. + </p> + + @see com::sun::star::configuration::backend::XBackendEntities + @see com::sun::star::util::XTimeStamped + @see com::sun::star::configuration::backend::XSchemaSupplier + @see com::sun::star::configuration::backend::XSingleLayerStratum + + @since OOo 1.1.2 +*/ +published interface XMultiLayerStratum : ::com::sun::star::uno::XInterface +{ + + /** + identifies the layers within this stratum which should be read and + merged to determine data of a component for an entity + + + @param aComponent + The name of the component to access. + + @param aEntity + The name of an entity on behalf of which data will be accessed. + + @return + a list of layer identifiers that can be used to + retrieve Layer objects. + <p> The list is ordered by priority. Typically + the most general layers (global defaults, + entire organization) are first, more specific layers + (associated to specific groups or roles) are next + and the entity's own data is last. + </p> + + @throws com::sun::star::lang::IllegalArgumentException + if the component identifier is invalid or + if the entity doesn't exist. + + @throws com::sun::star::configuration::backend::BackendAccessException + if an error occurs while accessing the data. + + @see com::sun::star::configuration::backend::XMultiLayerStratum::getLayer() + @see com::sun::star::configuration::backend::XMultiLayerStratum::getLayers() + @see com::sun::star::configuration::backend::XMultiLayerStratum::getMultipleLayers() + @see com::sun::star::configuration::backend::XBackendEntities + */ + sequence<string> listLayerIds([in] string aComponent, + [in] string aEntity) + raises (BackendAccessException, + com::sun::star::lang::IllegalArgumentException) ; + + + /** + identifies the layer which should be modified + to update data of a component on behalf of an entity. + + <p> The layer id returned is one of the layer ids obtained from + XMultiLayerStratum::listLayerIds() for the same + component and entity. + </p> + + @param aComponent + The name of the component to access. + + @param aEntity + The name of an entity on behalf of which data will be accessed. + + @returns + a layer identifier that can be used to obtain + an UpdatableLayer object. + + @throws com::sun::star::lang::IllegalArgumentException + if the component identifier is invalid or + if the entity doesn't exist. + + @throws com::sun::star::lang::NoSupportException + if the implementation does not support updates. + + @throws com::sun::star::configuration::backend::BackendAccessException + if an error occurs while accessing the data. + + @see com::sun::star::configuration::backend::XMultiLayerStratum::getUpdatableLayer() + @see com::sun::star::configuration::backend::XBackendEntities + */ + string getUpdateLayerId([in] string aComponent, + [in] string aEntity) + raises (BackendAccessException, + com::sun::star::lang::NoSupportException, + com::sun::star::lang::IllegalArgumentException) ; + + + /** + retrieves a layer associated to a layer id, if newer than indicated. + + <p> A timestamp can be provided, which is used to indicate + a point in time. The layer should be returned only if is modified + since that time. + </p> + + @param aLayerId + identifier of the layers to be accessed. + <p>Layer ids can be obtained from + XMultiLayerStratum::listLayerIds() or + XMultiLayerStratum::getUpdateLayerId(). + </p> + + @param aTimestamp + a timestamp for the layer. + + <p> An empty timestamp indicates, that the layer should be + retrieved irrespective of its modification time. + </p> + <p> The format and meaning of a timestamp depends on + the implementation. Timestamps can be obtained using + com::sun::star::util::XTimeStamped::getTimestamp(). + </p> + + @returns + a Layer object providing access to the layer data, + `NULL` if the layer is newer than indicated by the timestamp. + + @throws com::sun::star::lang::IllegalArgumentException + if the layer id is invalid or + if the timestamp is invalid + + @throws com::sun::star::configuration::backend::BackendAccessException + if an error occurs while accessing the data. + + @see com::sun::star::util::XTimeStamped + */ + XLayer getLayer([in] string aLayerId, + [in] string aTimestamp) + raises (BackendAccessException, + com::sun::star::lang::IllegalArgumentException) ; + + + /** + retrieves the layers associated to a series of layer ids, + if newer than indicated. + <p> A timestamp can be provided, which is used to indicate + a point in time. Only layers that are modified since that time + should be returned. The same timestamp is used for all layers. + </p> + + @param aLayerIds + identifiers of the layers to be accessed. + <p>Layer ids can be obtained from + XMultiLayerStratum::listLayerIds(). + </p> + + @param aTimestamp + a timestamp for all of the layers. + <p> An empty timestamp indicates, that the layers should be + retrieved irrespective of their modification time. + </p> + <p> The format and meaning of a timestamp depends on + the implementation. Timestamps can be obtained using + com::sun::star::util::XTimeStamped::getTimestamp(). + </p> + + @returns + a list of Layer objects + providing access to the layer data. + <p> The list has the same length as aLayerIds. Each layer + object is associated to the layer id in the corresponding + position. + </p> + <p> For layers that are newer than indicated by the + timestamp, the list contains a `NULL` element. + </p> + + @throws com::sun::star::lang::IllegalArgumentException + if one of the layer ids is invalid or + if the timestamp is invalid + + @throws com::sun::star::configuration::backend::BackendAccessException + if an error occurs while accessing the data. + + @see com::sun::star::util::XTimeStamped + */ + sequence<XLayer> getLayers([in] sequence<string> aLayerIds, + [in] string aTimestamp) + raises (BackendAccessException, + com::sun::star::lang::IllegalArgumentException) ; + + + /** + retrieves the layers associated to a series of layer ids, + if newer than indicated for each layer. + <p> For each layer an individual timestamp can be provided, + which is used to indicate the last known version of the layer. + Only layers that are modified since that time should be returned. + </p> + + @param aLayerIds + identifiers of the layers to be accessed. + <p>Layer ids can be obtained from + XMultiLayerStratum::listLayerIds(). + </p> + + @param aTimestamps + timestamps for each of the layers. + + <p> This list must have the same length as aLayerIds. + Timestamps are matched to layer ids by their position. + </p> + <p> An empty timestamp indicates, that the associated layer + should be retrieved irrespective of its modification time. + </p> + <p> The format and meaning of a timestamp depends on + the implementation. Timestamps can be obtained using + com::sun::star::util::XTimeStamped::getTimestamp(). + </p> + + @returns + a list of Layer objects + providing access to the layer data. + <p> The list has the same length as aLayerIds. Each layer + object is associated to the layer id in the corresponding + position. + </p> + <p> For layers that are newer than indicated by the corresponding + timestamp, the list contains a `NULL` element. + </p> + + @throws com::sun::star::lang::IllegalArgumentException + if one of the layer ids is invalid or + if one of the timestamps is invalid or + if the lengths of the arguments don't match. + + @throws com::sun::star::configuration::backend::BackendAccessException + if an error occurs while accessing the data. + + @see com::sun::star::util::XTimeStamped + */ + sequence<XLayer> getMultipleLayers([in] sequence<string> aLayerIds, + [in] sequence<string> aTimestamps) + raises (BackendAccessException, + com::sun::star::lang::IllegalArgumentException) ; + + + /** + retrieves a writable representation of the layer + associated to a layer id. + + @param aLayerId + identifier of the layer to be accessed for writing. + <p>A layer id for writing can be obtained from + XMultiLayerStratum::getUpdateLayerId(). + </p> + + @return + an UpdatableLayer object providing + write access to the layer + + @throws com::sun::star::lang::IllegalArgumentException + if the layer id is invalid. + + @throws com::sun::star::lang::NoSupportException + if the implementation does not support updates. + + @throws com::sun::star::configuration::backend::BackendAccessException + if an error occurs while accessing the data. + */ + XUpdatableLayer getUpdatableLayer([in] string aLayerId) + raises (BackendAccessException, + com::sun::star::lang::NoSupportException, + com::sun::star::lang::IllegalArgumentException) ; + +} ; + + +} ; } ; } ; } ; } ; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ |