/************************************************************************* * * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * Copyright 2008 by Sun Microsystems, Inc. * * OpenOffice.org - a multi-platform office productivity suite * * $RCSfile: XFormulaOpCodeMapper.idl,v $ * $Revision: 1.3 $ * * 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_sheet_XFormulaOpCodeMapper_idl__ #define __com_sun_star_sheet_XFormulaOpCodeMapper_idl__ #ifndef __com_sun_star_sheet_FormulaOpCodeMapEntry_idl__ #include #endif #ifndef __com_sun_star_lang_IllegalArgumentException_idl__ #include #endif //============================================================================= module com { module sun { module star { module sheet { //============================================================================= /** gives access to spreadsheet compiler token interns. */ interface XFormulaOpCodeMapper { //------------------------------------------------------------------------- /** OpCode value used for external Add-In functions.

Needed to be able to identify which of the function names map to an Add-In implementation where this OpCode is used in the returned mapping and the programmatical name is available as additional information.

*/ [attribute, readonly] long OpCodeExternal; //------------------------------------------------------------------------- /** OpCode value used for unknown functions.

Used to identify which of the function names queried with getMappings are unknown to the implementation.

*/ [attribute, readonly] long OpCodeUnknown; //------------------------------------------------------------------------- /** returns a sequence of tokens matching the input sequence of strings in order. @param Names Sequence of names to be mapped. These can be function names, operators, separators and other symbols the formula compiler knows. @param Language Formula language to be used, one of FormulaLanguage constants. If a constant unknown to the implementation is passed, IllegalArgumentException is thrown. @returns a sequence of FormulaToken matching the input sequence in order.

Each string element in parameter Names according to the formula language in parameter Language is mapped to a FormulaToken containing the internal OpCode used by the spreadsheet application in FormulaToken::OpCode and by contract maybe additional information in FormulaToken::Data.

The order of the FormulaToken sequence returned matches the input order of the string sequence.

An unknown Name string gets the OpCode value of OpCodeUnknown assigned.

Additional information in FormulaToken::Data is returned for:

  • Add-in names: the programmatical name. The OpCode value used for add-ins can be queried with the OpCodeExternal getter method.

*/ sequence< FormulaToken > getMappings( [in] sequence< string > Names, [in] long Language ) raises( com::sun::star::lang::IllegalArgumentException ); //------------------------------------------------------------------------- /** returns a sequence of map entries for all available elements of a given formula language. @param Language Formula language to be used, one of FormulaLanguage constants. If a constant unknown to the implementation is passed, IllegalArgumentException is thrown. @param Groups Group of mappings to be returned, a bit mask of FormulaMapGroup constants. @returns Sequence of FormulaOpCodeMapEntry.

Each element of the formula language in parameter Language is mapped to a FormulaToken containing the internal OpCode used by the spreadsheet application in FormulaToken::OpCode and by contract maybe additional information in FormulaToken::Data. See getMappings for more details.

*/ sequence< FormulaOpCodeMapEntry > getAvailableMappings( [in] long Language, [in] long Groups ) raises( com::sun::star::lang::IllegalArgumentException ); }; //============================================================================= service FormulaOpCodeMapper : XFormulaOpCodeMapper; //============================================================================= }; }; }; }; #endif