/************************************************************** * * 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 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. * *************************************************************/ #ifndef __com_sun_star_configuration_backend_XLayerHandler_idl__ #define __com_sun_star_configuration_backend_XLayerHandler_idl__ #ifndef __com_sun_star_uno_XInterface_idl__ #include #endif #ifndef __com_sun_star_configuration_backend_TemplateIdentifier_idl__ #include #endif #ifndef __com_sun_star_configuration_backend_MalformedDataException_idl__ #include #endif #ifndef __com_sun_star_lang_WrappedTargetException_idl__ #include #endif //============================================================================= 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 a 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 , 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 removeable.

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 removeable
  • 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 removeable.

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 removeable
  • 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 removeable.

@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 removeable
  • 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 TypeClass::ANY.)

A 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 , 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 .

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 .

@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 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- 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 .

@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
  • 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