LibreOffice Module sc (master) 1
Public Member Functions | Private Member Functions | Private Attributes | List of all members
XclExpArray Class Reference

Represents an ARRAY record that contains the token array of a matrix formula. More...

#include <xetable.hxx>

Inheritance diagram for XclExpArray:
[legend]
Collaboration diagram for XclExpArray:
[legend]

Public Member Functions

 XclExpArray (const XclTokenArrayRef &xTokArr, const ScRange &rScRange)
 
virtual XclTokenArrayRef CreateCellTokenArray (const XclExpRoot &rRoot) const override
 Creates and returns the token array for a corresponding FORMULA cell record. More...
 
virtual bool IsVolatile () const override
 Returns true, if the array formula contains volatile functions. More...
 
- Public Member Functions inherited from XclExpRangeFmlaBase
bool IsBasePos (sal_uInt16 nXclCol, sal_uInt32 nXclRow) const
 Returns true, if the passed cell position is equal to own base position. More...
 
virtual XclTokenArrayRef CreateCellTokenArray (const XclExpRoot &rRoot) const =0
 Derived classes create the token array for a corresponding FORMULA cell record. More...
 
virtual bool IsVolatile () const =0
 Derived classes return true, if the own formula contains volatile functions. More...
 
- Public Member Functions inherited from XclExpRecord
 XclExpRecord (sal_uInt16 nRecId=EXC_ID_UNKNOWN, std::size_t nRecSize=0)
 
 XclExpRecord (XclExpRecord const &)=default
 
virtual ~XclExpRecord () override
 
sal_uInt16 GetRecId () const
 Returns the current record ID. More...
 
std::size_t GetRecSize () const
 Returns the current record size prediction. More...
 
void SetRecId (sal_uInt16 nRecId)
 Sets a new record ID. More...
 
void SetRecSize (std::size_t nRecSize)
 Sets a new record size prediction. More...
 
void AddRecSize (std::size_t nRecSize)
 Adds a size value to the record size prediction. More...
 
void SetRecHeader (sal_uInt16 nRecId, std::size_t nRecSize)
 Sets record ID and size with one call. More...
 
virtual void Save (XclExpStream &rStrm) override
 Writes the record header and calls WriteBody(). More...
 
- Public Member Functions inherited from XclExpRecordBase
 XclExpRecordBase ()
 
 XclExpRecordBase (XclExpRecordBase const &)
 
 XclExpRecordBase (XclExpRecordBase &&)
 
XclExpRecordBaseoperator= (XclExpRecordBase const &)
 
XclExpRecordBaseoperator= (XclExpRecordBase &&) noexcept
 
virtual ~XclExpRecordBase ()
 
virtual void Save (XclExpStream &rStrm)
 Overwrite this method to do any operation while saving the record. More...
 
virtual void SaveXml (XclExpXmlStream &rStrm)
 
- Public Member Functions inherited from salhelper::SimpleReferenceObject
 SimpleReferenceObject ()
 
void acquire ()
 
void release ()
 

Private Member Functions

virtual void WriteBody (XclExpStream &rStrm) override
 Writes the body of the record (without record header). More...
 

Private Attributes

XclTokenArrayRef mxTokArr
 

Additional Inherited Members

- Static Public Member Functions inherited from salhelper::SimpleReferenceObject
static void * operator new (std::size_t nSize)
 
static void * operator new (std::size_t nSize, std::nothrow_t const &rNothrow)
 
static void operator delete (void *pPtr)
 
static void operator delete (void *pPtr, std::nothrow_t const &rNothrow)
 
- Protected Member Functions inherited from XclExpRangeFmlaBase
 XclExpRangeFmlaBase (sal_uInt16 nRecId, sal_uInt32 nRecSize, const ScAddress &rScPos)
 Constructs the record with a single cell. More...
 
 XclExpRangeFmlaBase (sal_uInt16 nRecId, sal_uInt32 nRecSize, const ScRange &rScRange)
 Constructs the record with a cell range. More...
 
void Extend (const ScAddress &rScPos)
 Extends the cell range to include the passed cell address. More...
 
void WriteRangeAddress (XclExpStream &rStrm) const
 Writes the range address covered by this record. More...
 
virtual void WriteBody (XclExpStream &rStrm)
 Writes the body of the record (without record header). More...
 
- Protected Member Functions inherited from salhelper::SimpleReferenceObject
virtual ~SimpleReferenceObject () COVERITY_NOEXCEPT_FALSE
 
- Protected Attributes inherited from XclExpRangeFmlaBase
XclRange maXclRange
 
XclAddress maBaseXclPos
 Range described by this record. More...
 
- Protected Attributes inherited from salhelper::SimpleReferenceObject
oslInterlockedCount m_nCount
 

Detailed Description

Represents an ARRAY record that contains the token array of a matrix formula.

An ARRAY record is stored following the first FORMULA record that is part of a matrix formula. All FORMULA records of a matrix formula contain a reference to the ARRAY record, while the ARRAY record contains the formula token array used by all formulas.

Definition at line 107 of file xetable.hxx.

Constructor & Destructor Documentation

◆ XclExpArray()

XclExpArray::XclExpArray ( const XclTokenArrayRef xTokArr,
const ScRange rScRange 
)
explicit

Definition at line 118 of file xetable.cxx.

Member Function Documentation

◆ CreateCellTokenArray()

XclTokenArrayRef XclExpArray::CreateCellTokenArray ( const XclExpRoot rRoot) const
overridevirtual

Creates and returns the token array for a corresponding FORMULA cell record.

Implements XclExpRangeFmlaBase.

Definition at line 124 of file xetable.cxx.

References XclExpFormulaCompiler::CreateSpecialRefFormula(), EXC_TOKID_EXP, XclExpRoot::GetFormulaCompiler(), and XclExpRangeFmlaBase::maBaseXclPos.

◆ IsVolatile()

bool XclExpArray::IsVolatile ( ) const
overridevirtual

Returns true, if the array formula contains volatile functions.

Implements XclExpRangeFmlaBase.

Definition at line 129 of file xetable.cxx.

References mxTokArr.

Referenced by WriteBody().

◆ WriteBody()

void XclExpArray::WriteBody ( XclExpStream rStrm)
overrideprivatevirtual

Writes the body of the record (without record header).

@descr Usually this method will be overwritten by derived classes.

Reimplemented from XclExpRecord.

Definition at line 134 of file xetable.cxx.

References EXC_ARRAY_DEFAULTFLAGS, EXC_ARRAY_RECALC_ALWAYS, IsVolatile(), mxTokArr, rStrm, set_flag(), and XclExpRangeFmlaBase::WriteRangeAddress().

Member Data Documentation

◆ mxTokArr

XclTokenArrayRef XclExpArray::mxTokArr
private

Definition at line 121 of file xetable.hxx.

Referenced by IsVolatile(), and WriteBody().


The documentation for this class was generated from the following files: