/* -*- 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_sheet_XFormulaOpCodeMapper_idl__ #define __com_sun_star_sheet_XFormulaOpCodeMapper_idl__ #include #include 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 programmatic 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 ); }; }; }; }; }; #endif /* vim:set shiftwidth=4 softtabstop=4 expandtab: */