| /************************************************************** |
| * |
| * 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 SC_RANGESEQ_HXX |
| #define SC_RANGESEQ_HXX |
| |
| #include <tools/solar.h> |
| #include <com/sun/star/uno/Any.h> |
| #include "scmatrix.hxx" |
| |
| class SvNumberFormatter; |
| class ScDocument; |
| class ScRange; |
| |
| class ScRangeToSequence |
| { |
| public: |
| static sal_Bool FillLongArray( com::sun::star::uno::Any& rAny, |
| ScDocument* pDoc, const ScRange& rRange ); |
| static sal_Bool FillLongArray( com::sun::star::uno::Any& rAny, |
| const ScMatrix* pMatrix ); |
| static sal_Bool FillDoubleArray( com::sun::star::uno::Any& rAny, |
| ScDocument* pDoc, const ScRange& rRange ); |
| static sal_Bool FillDoubleArray( com::sun::star::uno::Any& rAny, |
| const ScMatrix* pMatrix ); |
| static sal_Bool FillStringArray( com::sun::star::uno::Any& rAny, |
| ScDocument* pDoc, const ScRange& rRange ); |
| static sal_Bool FillStringArray( com::sun::star::uno::Any& rAny, |
| const ScMatrix* pMatrix, SvNumberFormatter* pFormatter ); |
| static sal_Bool FillMixedArray( com::sun::star::uno::Any& rAny, |
| ScDocument* pDoc, const ScRange& rRange, |
| sal_Bool bAllowNV = sal_False ); |
| |
| /** @param bDataTypes |
| Additionally to the differentiation between string and double allow |
| differentiation between other types such as as boolean. Needed for |
| implementation of XFormulaParser. If <FALSE/>, boolean values are |
| treated as ordinary double values 1 (true) and 0 (false). |
| */ |
| static sal_Bool FillMixedArray( com::sun::star::uno::Any& rAny, |
| const ScMatrix* pMatrix, bool bDataTypes = false ); |
| }; |
| |
| |
| class ScApiTypeConversion |
| { |
| public: |
| |
| /** Convert an uno::Any to double if possible, including integer types. |
| @param o_fVal |
| Out: the double value on successful conversion. |
| @param o_eClass |
| Out: the uno::TypeClass of rAny. |
| @returns <TRUE/> if successfully converted. |
| */ |
| static bool ConvertAnyToDouble( |
| double & o_fVal, |
| com::sun::star::uno::TypeClass & o_eClass, |
| const com::sun::star::uno::Any & rAny ); |
| |
| }; |
| |
| |
| class ScSequenceToMatrix |
| { |
| public: |
| |
| /** Convert a sequence of mixed elements to ScMatrix. |
| |
| Precondition: rAny.getValueType().equals( getCppuType( (uno::Sequence< uno::Sequence< uno::Any > > *)0)) |
| |
| @returns a new'd ScMatrix as ScMatrixRef, NULL if rAny couldn't be read |
| as type Sequence<Sequence<Any>> |
| */ |
| static ScMatrixRef CreateMixedMatrix( const com::sun::star::uno::Any & rAny ); |
| |
| }; |
| |
| |
| class ScByteSequenceToString |
| { |
| public: |
| // rAny must contain Sequence<sal_Int8>, |
| // may or may not contain 0-bytes at the end |
| static sal_Bool GetString( String& rString, const com::sun::star::uno::Any& rAny, |
| sal_uInt16 nEncoding ); |
| }; |
| |
| #endif |
| |