/************************************************************** * * 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_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. */ published 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:

*/ 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