/* -*- 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_XLayerHandler_idl__ #define __com_sun_star_configuration_backend_XLayerHandler_idl__ #include #include #include #include module com { module sun { module star { module configuration { module backend { /** receives a description of a configuration layer as a sequence of events. @since OOo 1.1.2 */ published interface XLayerHandler: ::com::sun::star::uno::XInterface { /** receives notification that a layer description is started for a component.

Subsequent calls describe the contents of the layer until a matching call to XLayerHandler::endLayer() is encountered.

@throws com::sun::star::configuration::backend::MalformedDataException if there is an unfinished layer in progress @throws com::sun::star::lang::WrappedTargetException if an error occurs processing the event. */ void startLayer( ) raises( MalformedDataException, com::sun::star::lang::WrappedTargetException ); /** receives notification that a layer description is complete.

Must match a previous call to XLayerHandler::startLayer().

@throws com::sun::star::configuration::backend::MalformedDataException
  • if invalid data is detected in the layer
  • if there is an unfinished subnode in progress
  • if no layer is started at all
  • if the layer tries to override read-only or final data

Not every implementation can detect each condition

@throws com::sun::star::lang::WrappedTargetException if an error occurs processing the event. */ void endLayer( ) raises( MalformedDataException, com::sun::star::lang::WrappedTargetException ); /** receives notification that a description of a node override is started.

Subsequent calls describe overrides to properties and members or items of the node until a matching call to XLayerHandler::endNode()is encountered.

@param aName specifies the name of the node. @param aAttributes specifies attribute values to be applied to the node.

The value is a combination of NodeAttribute flags.

The attributes are combined cumulatively with those set on lower layers.

@param bClear if `TRUE`, specifies that the node should be cleared to an empty state by removing all non-mandatory children from lower layers prior to applying the overrides. @throws com::sun::star::configuration::backend::MalformedDataException
  • if there isn't a layer in progress
  • if there already was a change to that node
  • if there is no node with that name
  • if the node is marked read-only in a lower layer
  • if the name is not a valid node name
  • if the attributes are not valid for the node

Not every implementation can detect each condition

@throws com::sun::star::lang::WrappedTargetException if an error occurs processing the event. @see com::sun::star::configuration::backend::NodeAttribute */ void overrideNode( [in] string aName, [in] short aAttributes, [in] boolean bClear ) raises( MalformedDataException, com::sun::star::lang::WrappedTargetException ); /** receives notification that a new item is started.

The current node must be a set and a preexisting item (if any) must be removable.

The new item will be created from the default template of the set.

Subsequent calls describe the difference from the template of properties and members or items of the node until a matching call to XLayerHandler::endNode() is encountered.

@param aName specifies the name of the item. @param aAttributes specifies attribute values to be applied to the new node.

The value is a combination of NodeAttribute flags. Note that NodeAttribute::FUSE has an impact on the semantics of this method.

@throws com::sun::star::configuration::backend::MalformedDataException
  • if there isn't a set node in progress currently
  • if there already was a change to a node of that name
  • if the template for the new node is not found
  • if an item of that name on a lower layer is not removable
  • if the name is not a valid item name
  • if the attributes are not valid for the node

Not every implementation can detect each condition

@throws com::sun::star::lang::WrappedTargetException if an error occurs processing the event. @see com::sun::star::configuration::backend::NodeAttribute */ void addOrReplaceNode( [in] string aName, [in] short aAttributes ) raises( MalformedDataException, com::sun::star::lang::WrappedTargetException ); /** receives notification that a new item based on a particular template is started.

The current node must be a set and a preexisting item (if any) must be removable.

Subsequent calls describe the difference from the template of properties and members or items of the node until a matching call to XLayerHandler::endNode() is encountered.

@param aName specifies the name of the item. @param aTemplate specifies the template to use for the new node @param aAttributes specifies attribute values to be applied to the new node.

The value is a combination of NodeAttribute flags. Note that NodeAttribute::FUSE has an impact on the semantics of this method.

@throws com::sun::star::configuration::backend::MalformedDataException
  • if there isn't a set node in progress currently
  • if there already was a change to a node of that name
  • if the template for the new node is not found
  • if the template is not a valid item type for the containing set
  • if an item of that name on a lower layer is not removable
  • if the name is not a valid item name
  • if the attributes are not valid for the node

Not every implementation can detect each condition

@throws com::sun::star::lang::WrappedTargetException if an error occurs processing the event. @see com::sun::star::configuration::backend::NodeAttribute */ void addOrReplaceNodeFromTemplate( [in] string aName, [in] TemplateIdentifier aTemplate, [in] short aAttributes ) raises( MalformedDataException, com::sun::star::lang::WrappedTargetException ); /** receives notification that a node description is complete.

Must match the last open call to XLayerHandler::overrideNode(), XLayerHandler::addOrReplaceNode() or XLayerHandler::addOrReplaceNodeFromTemplate().

@throws com::sun::star::configuration::backend::MalformedDataException
  • if invalid data is detected in the node
  • if no node is started at all

Not every implementation can detect each condition

@throws com::sun::star::lang::WrappedTargetException if an error occurs processing the event. */ void endNode( ) raises( MalformedDataException, com::sun::star::lang::WrappedTargetException ); /** receives notification that a node is dropped from a set.

The current node must be a set and the item must be removable.

@param aName specifies the name of the node. @throws com::sun::star::configuration::backend::MalformedDataException
  • if there isn't a set node in progress currently
  • if there already was a change to a node of that name
  • if there is no item with that name
  • if the item is not removable
  • if the name is not a valid node name

Not every implementation can detect each condition

@throws com::sun::star::lang::WrappedTargetException if an error occurs processing the event. */ void dropNode( [in] string aName ) raises( MalformedDataException, com::sun::star::lang::WrappedTargetException ); /** receives notification that an existing property is modified.

Subsequent calls describe new value(s) for the property until a matching call to XLayerHandler::endProperty() is encountered.

@param aName specifies the name of the property. @param aAttributes specifies the new attributes of the property.

The value is a combination of NodeAttribute flags.

The attributes are combined cumulatively with those set on lower layers.

@param aType specifies the type of the property.

This must be the same type as is already defined in the schema or lower layers, unless the previous type was unspecified (as indicated by com::sun::star::uno::TypeClass::ANY.)

A `VOID` type indicates that the type is unspecified in this layer. In this case any subsequent value may be of a generic type (e.g. `string` or - for list values - `string[]`.) Such values may be converted to the type defined in the schema by the implementation.

@param bClear if `TRUE`, specifies that the property should be cleared to an empty state by discarding all values from lower layers prior to applying the overrides. @throws com::sun::star::configuration::backend::MalformedDataException
  • if there isn't a group or extensible node in progress currently
  • if there already was a change to a property of that name
  • if there is no property with that name
  • if the property is read-only
  • if the type does not match the type of the property
  • if a type is missing and cannot be determined otherwise
  • if the name is not a valid property name
  • if the attributes are not valid for the property

Not every implementation can detect each condition

@throws com::sun::star::lang::WrappedTargetException if an error occurs processing the event. @see com::sun::star::configuration::backend::NodeAttribute */ void overrideProperty( [in] string aName, [in] short aAttributes, [in] type aType, [in] boolean bClear ) raises( MalformedDataException, com::sun::star::lang::WrappedTargetException ); /** receives notification that the value of the current property is overridden. @param aValue specifies the new value of the property.

The value must match the type of the current property. If the property does not have the SchemaAttribute::REQUIRED flag set, the value can be `VOID`.

If the current property is localized, this value applies to the default locale.

@throws com::sun::star::configuration::backend::MalformedDataException
  • if there isn't a property in progress currently
  • if there already was a change to the value of that property
  • if the value does not have the proper type
  • if the value is not valid for the property

Not every implementation can detect each condition

@throws com::sun::star::lang::WrappedTargetException if an error occurs processing the event. @see com::sun::star::configuration::backend::NodeAttribute */ void setPropertyValue( [in] any aValue ) raises( MalformedDataException, com::sun::star::lang::WrappedTargetException ); /** receives notification that the value of the current localized property is overridden for a specific locale . @param aValue specifies the new value of the property.

The value must match the type of the current property. If the property does not have the SchemaAttribute::REQUIRED flag set, the value can be `VOID`.

@param aLocale specifies the locale this value should apply to. @throws com::sun::star::configuration::backend::MalformedDataException
  • if there isn't a property in progress currently
  • if the current property isn't localized
  • if there already was a change to the property for that locale
  • if the value does not have the proper type
  • if the value is not valid for the property
  • if the locale is not a valid locale

Not every implementation can detect each condition

@throws com::sun::star::lang::WrappedTargetException if an error occurs processing the event. @see com::sun::star::configuration::backend::NodeAttribute */ void setPropertyValueForLocale([in] any aValue, [in] string aLocale ) raises( MalformedDataException, com::sun::star::lang::WrappedTargetException ); /** receives notification that a property description is complete.

Must match an open call to XLayerHandler::overrideProperty(),

@throws com::sun::star::configuration::backend::MalformedDataException
  • if invalid data is detected in the property
  • if no property is started at all

Not every implementation can detect each condition

@throws com::sun::star::lang::WrappedTargetException if an error occurs processing the event. */ void endProperty( ) raises( MalformedDataException, com::sun::star::lang::WrappedTargetException ); /** receives notification that a property having a `VOID` value is added to the current node.

The current node must be extensible.

@param aName specifies the name of the new property. @param aAttributes specifies the attributes of the new property.

The value is a combination of NodeAttribute flags and may also contain the SchemaAttribute::REQUIRED flag.

NodeAttribute::MANDATORY need not be set, as dynamically added properties always are mandatory in subsequent layers.

@param aType specifies the type of the new property. @throws com::sun::star::configuration::backend::MalformedDataException
  • if there isn't an extensible node in progress currently
  • if a property with that name already exists
  • if the specified type is not allowed for a property
  • if the name is not a valid property name
  • if the attributes are not valid for the property

Not every implementation can detect each condition

@throws com::sun::star::lang::WrappedTargetException if an error occurs processing the event. @see com::sun::star::configuration::backend::SchemaAttribute */ void addProperty( [in] string aName, [in] short aAttributes, [in] type aType ) raises( MalformedDataException, com::sun::star::lang::WrappedTargetException ); /** receives notification that a property having a non-`VOID` value is added to the current node.

The current node must be extensible.

@param aName specifies the name of the new property. @param aAttributes specifies the attributes of the new property.

The value is a combination of NodeAttribute flags and may also contain the SchemaAttribute::REQUIRED flag.

NodeAttribute::MANDATORY need not be set, as dynamic properties always are mandatory in subsequent layers.

@param aValue specifies the value of the new property.

The value also determines the type. Therefore the value must not be `VOID`.

@throws com::sun::star::configuration::backend::MalformedDataException
  • if there isn't an extensible node in progress currently
  • if a property with that name already exists
  • if the type of the value is not an allowed type or if the value is `VOID`
  • if the name is not a valid property name
  • if the value is not valid for the property
  • if the attributes are not valid for the property

Not every implementation can detect each condition

@throws com::sun::star::lang::WrappedTargetException if an error occurs processing the event. @see com::sun::star::configuration::backend::SchemaAttribute */ void addPropertyWithValue( [in] string aName, [in] short aAttributes, [in] any aValue ) raises( MalformedDataException, com::sun::star::lang::WrappedTargetException ); }; }; }; }; }; }; #endif /* vim:set shiftwidth=4 softtabstop=4 expandtab: */