/************************************************************************* * * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * Copyright 2000, 2010 Oracle and/or its affiliates. * * OpenOffice.org - a multi-platform office productivity suite * * This file is part of OpenOffice.org. * * OpenOffice.org is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License version 3 * only, as published by the Free Software Foundation. * * OpenOffice.org is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License version 3 for more details * (a copy is included in the LICENSE file that accompanied this code). * * You should have received a copy of the GNU Lesser General Public License * version 3 along with OpenOffice.org. If not, see * * for a copy of the LGPLv3 License. * ************************************************************************/ #ifndef __com_sun_star_configuration_backend_XSchemaHandler_idl__ #define __com_sun_star_configuration_backend_XSchemaHandler_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 schema as a sequence of events. @since OOo 1.1.2 */ published interface XSchemaHandler: ::com::sun::star::uno::XInterface { //------------------------------------------------------------------------- /** receives notification that a schema description is started.

The schema descrption may comprise components templates or both.

@throws com::sun::star::configuration::backend::MalformedDataException if a schema is already started (and has not been ended). @throws com::sun::star::lang::WrappedTargetException if an error occurs processing the event. */ void startSchema( ) raises( MalformedDataException, com::sun::star::lang::WrappedTargetException ); //------------------------------------------------------------------------- /** receives notification that the current schema description is complete.

Must match a previous call to startSchema.

@throws com::sun::star::configuration::backend::MalformedDataException
  • if invalid data is detected in the schema
  • if there is a unfinished component or template in progress
  • if no schema 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 endSchema( ) raises( MalformedDataException, com::sun::star::lang::WrappedTargetException ); //------------------------------------------------------------------------- /** receives notification that the schema depends on templates from a different component. @param aName specifies the name of the component. @throws com::sun::star::configuration::backend::MalformedDataException
  • if there is a unfinished component or template in progress
  • if no schema is started at all
  • if the name is not a valid component name
  • if the requested component is not found

Not every implementation can detect each condition

@throws com::sun::star::lang::WrappedTargetException if an error occurs processing the event. */ void importComponent( [in] string aName ) raises( MalformedDataException, com::sun::star::lang::WrappedTargetException ); //------------------------------------------------------------------------- /** receives notification that a component description is started.

Subsequent calls describe the schema of the component until a matching call to endComponent is encountered.

@param aName specifies the name of the component. @throws com::sun::star::configuration::backend::MalformedDataException
  • if there is a unfinished component or template in progress
  • if no schema is started at all
  • if there already is a component data tree of this name
  • if the name is not a valid component name
  • if the instance supports no component schemas (only templates)

Not every implementation can detect each condition

@throws com::sun::star::lang::WrappedTargetException if an error occurs processing the event. */ void startComponent( [in] string aName ) raises( MalformedDataException, com::sun::star::lang::WrappedTargetException ); //------------------------------------------------------------------------- /** receives notification that a component description is complete.

Must match a previous call to startComponent.

@throws com::sun::star::configuration::backend::MalformedDataException
  • if invalid data is detected in the component
  • if there is a unfinished subnode in progress
  • if no component has been started at all
  • if the instance supports no component schemas (only templates)

Not every implementation can detect each condition

@throws com::sun::star::lang::WrappedTargetException if an error occurs processing the event. */ void endComponent( ) raises( MalformedDataException, com::sun::star::lang::WrappedTargetException ); //------------------------------------------------------------------------- /** receives notification that a template description is started for a group.

Subsequent calls describe the members and properties of the template until a matching call to endTemplate is encountered.

@param aTemplate specifies the identity of the template. @param aAttributes specifies the attributes of the template.

The value is a combination of SchemaAttribute flags.

SchemaAttribute::EXTENSIBLE can be used to describe a template for a node with an extensible set of properties.

@throws com::sun::star::configuration::backend::MalformedDataException
  • if there is a unfinished component or template in progress
  • if no schema is started at all
  • if there already is a template with that identifier
  • if the name is not a valid template identifier
  • if the attributes are not valid for a group
  • if the instance supports no templates (only component schemas)

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 startGroupTemplate( [in] TemplateIdentifier aTemplate, [in] short aAttributes ) raises( MalformedDataException, com::sun::star::lang::WrappedTargetException ); //------------------------------------------------------------------------- /** receives notification that a template description is started for a set.

Subsequent calls describe the members and properties of the template until a matching call to endTemplate is encountered.

@param aTemplate specifies the identity of the template. @param aAttributes specifies the attributes of the template.

The value is a combination of SchemaAttribute flags.

SchemaAttribute::EXTENSIBLE can be used to describe a template for a node with an extensible set of properties.

@param aItemType specifies the (default) template for set items. @throws com::sun::star::configuration::backend::MalformedDataException
  • if there is a unfinished component or template in progress
  • if no schema is started at all
  • if there already is a template with that identifier
  • if the item-type template is not found
  • if the name or item-type are not valid template identifiers
  • if the attributes are not valid for a set
  • if the instance supports no templates (only component schemas).

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 startSetTemplate( [in] TemplateIdentifier aTemplate, [in] short aAttributes, [in] TemplateIdentifier aItemType ) raises( MalformedDataException, com::sun::star::lang::WrappedTargetException ); //------------------------------------------------------------------------- /** receives notification that a template description is complete.

Must match a previous call to startGroupTemplate or startSetTemplate.

@throws com::sun::star::configuration::backend::MalformedDataException
  • if invalid data is detected in the template
  • if there is a unfinished subnode in progress
  • if no template has been started at all
  • if the instance supports no templates (only component schemas)

Not every implementation can detect each condition

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

Subsequent calls describe the members and properties of the group until a matching call to endNode is encountered.

@param aName specifies the name of the group. @param aAttributes specifies the attributes of the node.

The value is a combination of SchemaAttribute flags.

SchemaAttribute::EXTENSIBLE can be used to describe a group with an extensible set of properties.

@throws com::sun::star::configuration::backend::MalformedDataException
  • if there isn't a group node in progress currently
  • if there already is a node with that name
  • if the name is not a valid node name
  • if the attributes are not valid for a group

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 startGroup( [in] string aName, [in] short aAttributes ) raises( MalformedDataException, com::sun::star::lang::WrappedTargetException ); //------------------------------------------------------------------------- /** receives notification that a set description is started.

Subsequent calls describe the item-types and properties of the set until a matching call to endNode is encountered.

@param aName specifies the name of the set. @param aAttributes specifies the attributes of the node.

The value is a combination of SchemaAttribute flags.

SchemaAttribute::EXTENSIBLE can be used to describe a set with an extensible set of properties.

@param aItemType specifies the (default) template for set items. @throws com::sun::star::configuration::backend::MalformedDataException
  • if there isn't a group node in progress currently
  • if there already is a node with that name
  • if the item-type template is not found
  • if the name is not a valid node name
  • if the item-type is not a valid template identifier
  • if the attributes are not valid for a set

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 startSet( [in] string aName, [in] short aAttributes, [in] TemplateIdentifier aItemType ) raises( MalformedDataException, com::sun::star::lang::WrappedTargetException ); //------------------------------------------------------------------------- /** receives notification that a node description is complete.

Must match the last open call to startGroup or startSet.

@throws com::sun::star::configuration::backend::MalformedDataException
  • if the name is not a the name of the node in progress
  • if invalid data is detected in the node
  • if no node has been 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 property is added to the current node.

The property will have a default value of (unless it is SchemaAttribute::REQUIRED).

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

The value is a combination of SchemaAttribute flags.

@param aType specifies the type of the new property. @throws com::sun::star::configuration::backend::MalformedDataException
  • if there isn't a group or extensible node in progress currently
  • if a property with the same name already exists
  • if the specified type is not allowed
  • if the name is not a valid property name
  • if the attributes are not valid for a 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 default value is added to the current node. @param aName specifies the name of the new property. @param aAttributes specifies the attributes of the new property.

The value is a combination of SchemaAttribute flags.

@param aDefaultValue 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 a group or extensible node in progress currently
  • if a property with the same name already exists
  • if the type of the default value is not an allowed type, or if the default value is
  • if the name is not a valid property name
  • if the attributes are not valid for a 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 addPropertyWithDefault( [in] string aName, [in] short aAttributes, [in] any aDefaultValue ) raises( MalformedDataException, com::sun::star::lang::WrappedTargetException ); //------------------------------------------------------------------------- /** receives notification that the current group has a child node that is an instance of a specified template. @param aName specifies the name of the new node. @param aTemplate specifies a template that describes the new node. @throws com::sun::star::configuration::backend::MalformedDataException
  • if there isn't a group node in progress currently
  • if there already is a node with that name
  • if the template is not found
  • if the name or template name are not valid

Not every implementation can detect each condition

@throws com::sun::star::lang::WrappedTargetException if an error occurs processing the event. */ void addInstance( [in] string aName, [in] TemplateIdentifier aTemplate ) raises( MalformedDataException, com::sun::star::lang::WrappedTargetException ); //------------------------------------------------------------------------- /** receives notification that the current set can contain items that are instances of a specified template. @param aItemType specifies a template that is accepted as valid item type for the current set node. @throws com::sun::star::configuration::backend::MalformedDataException
  • if there isn't a set node in progress currently
  • if the template is not found
  • if the name is not a valid template name

Not every implementation can detect each condition

@throws com::sun::star::lang::WrappedTargetException if an error occurs processing the event. */ void addItemType( [in] TemplateIdentifier aItemType ) raises( MalformedDataException, com::sun::star::lang::WrappedTargetException ); //------------------------------------------------------------------------- }; //============================================================================= }; }; }; }; }; //============================================================================= #endif