LibreOffice Module sc (master) 1
Public Member Functions | Protected Member Functions | Private Types | Private Member Functions | Private Attributes | List of all members
XclExpMultiCellBase Class Referenceabstract

Base class for all cell records supporting multiple contents. More...

#include <xetable.hxx>

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

Public Member Functions

virtual sal_uInt16 GetLastXclCol () const override
 Returns the column index of the last cell this record describes. More...
 
virtual sal_uInt32 GetFirstXFId () const override
 Return the XF identifier of the first contained cell. More...
 
virtual bool IsEmpty () const override
 Returns true, if this record does not contain at least one valid cell. More...
 
virtual void ConvertXFIndexes (const XclExpRoot &rRoot) override
 Convert all XF identifiers into the Excel XF indexes. More...
 
virtual void Save (XclExpStream &rStrm) override
 Writes the record, calls WriteContents() for each contained cell. More...
 
virtual void SaveXml (XclExpXmlStream &rStrm) override
 
- Public Member Functions inherited from XclExpCellBase
const XclAddressGetXclPos () const
 Returns the (first) address of the cell(s). More...
 
sal_uInt16 GetXclCol () const
 Returns the (first) Excel column index of the cell(s). More...
 
sal_uInt32 GetXclRow () const
 Returns the Excel row index of the cell. More...
 
virtual sal_uInt16 GetLastXclCol () const =0
 Derived classes return the column index of the last contained cell. More...
 
virtual sal_uInt32 GetFirstXFId () const =0
 Derived classes return the XF identifier of the first contained cell. More...
 
virtual bool IsEmpty () const =0
 Derived classes return true, if this record does not contain at least one valid cell. More...
 
virtual bool IsMultiLineText () const
 Derived classes return whether the cell contains multi-line text. More...
 
virtual bool TryMerge (const XclExpCellBase &rCell)
 Derived classes try to merge the contents of the passed cell to own data. More...
 
virtual void ConvertXFIndexes (const XclExpRoot &rRoot)=0
 Derived classes convert the XF identifier(s) into the Excel XF index(es). More...
 
virtual void GetBlankXFIndexes (ScfUInt16Vec &rXFIndexes) const
 Derived classes for blank cells insert the Excel XF index(es) into the passed vector. More...
 
virtual void RemoveUnusedBlankCells (const ScfUInt16Vec &rXFIndexes, size_t nStartAllNotFound)
 Derived classes for blank cells remove unused Excel XF index(es). 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 ()
 

Protected Member Functions

 XclExpMultiCellBase (sal_uInt16 nRecId, sal_uInt16 nMulRecId, std::size_t nContSize, const XclAddress &rXclPos)
 
sal_uInt16 GetCellCount () const
 Returns the number of cells this record represents. More...
 
void AppendXFId (const XclExpMultiXFId &rXFId)
 Appends the passed XF identifier nCount times to the list of XF identifiers. More...
 
void AppendXFId (const XclExpRoot &rRoot, const ScPatternAttr *pPattern, sal_uInt16 nScript, sal_uInt32 nForcedXFId, sal_uInt16 nCount=1)
 Appends the passed cell format nCount times to the list of XF identifiers. More...
 
bool TryMergeXFIds (const XclExpMultiCellBase &rCell)
 Tries to merge the XF ID list of the passed cell with the own list. More...
 
void GetXFIndexes (ScfUInt16Vec &rXFIndexes) const
 Inserts the Excel XF index(es) into the passed vector. More...
 
void RemoveUnusedXFIndexes (const ScfUInt16Vec &rXFIndexes, size_t nStartAllNotFound)
 Removes unused Excel XF index(es). More...
 
sal_uInt16 GetStartColAllDefaultCell () const
 Return starting column at which all indexes until the end are EXC_XF_DEFAULTCELL . More...
 
- Protected Member Functions inherited from XclExpCellBase
 XclExpCellBase (sal_uInt16 nRecId, std::size_t nContSize, const XclAddress &rXclPos)
 
void SetXclCol (sal_uInt16 nXclCol)
 Sets this record to a new column position. More...
 
- Protected Member Functions inherited from XclExpRecord
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
 

Private Types

typedef ::std::vector< XclExpMultiXFIdXclExpMultiXFIdDeq
 

Private Member Functions

virtual void WriteContents (XclExpStream &rStrm, sal_uInt16 nRelCol)=0
 Derived classes write the remaining contents of the specified cell (without XF index). More...
 
virtual void WriteXmlContents (XclExpXmlStream &rStrm, const XclAddress &rAddress, sal_uInt32 nXFId, sal_uInt16 nRelCol)=0
 

Private Attributes

sal_uInt16 mnMulRecId
 
std::size_t mnContSize
 Record ID for multiple record variant. More...
 
XclExpMultiXFIdDeq maXFIds
 Data size of contents for one cell. More...
 

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 Attributes inherited from salhelper::SimpleReferenceObject
oslInterlockedCount m_nCount
 

Detailed Description

Base class for all cell records supporting multiple contents.

Definition at line 466 of file xetable.hxx.

Member Typedef Documentation

◆ XclExpMultiXFIdDeq

typedef ::std::vector< XclExpMultiXFId > XclExpMultiCellBase::XclExpMultiXFIdDeq
private

Definition at line 518 of file xetable.hxx.

Constructor & Destructor Documentation

◆ XclExpMultiCellBase()

XclExpMultiCellBase::XclExpMultiCellBase ( sal_uInt16  nRecId,
sal_uInt16  nMulRecId,
std::size_t  nContSize,
const XclAddress rXclPos 
)
explicitprotected

Definition at line 1102 of file xetable.cxx.

Member Function Documentation

◆ AppendXFId() [1/2]

void XclExpMultiCellBase::AppendXFId ( const XclExpMultiXFId rXFId)
protected

Appends the passed XF identifier nCount times to the list of XF identifiers.

Definition at line 1243 of file xetable.cxx.

References maXFIds, XclExpMultiXFId::mnCount, and XclExpXFId::mnXFId.

Referenced by AppendXFId(), RemoveUnusedXFIndexes(), XclExpBlankCell::XclExpBlankCell(), and XclExpRkCell::XclExpRkCell().

◆ AppendXFId() [2/2]

void XclExpMultiCellBase::AppendXFId ( const XclExpRoot rRoot,
const ScPatternAttr pPattern,
sal_uInt16  nScript,
sal_uInt32  nForcedXFId,
sal_uInt16  nCount = 1 
)
protected

Appends the passed cell format nCount times to the list of XF identifiers.

Definition at line 1251 of file xetable.cxx.

References AppendXFId(), EXC_XFID_NOTFOUND, XclExpRoot::GetXFBuffer(), XclExpXFBuffer::Insert(), and nCount.

◆ ConvertXFIndexes()

void XclExpMultiCellBase::ConvertXFIndexes ( const XclExpRoot rRoot)
overridevirtual

Convert all XF identifiers into the Excel XF indexes.

Implements XclExpCellBase.

Definition at line 1125 of file xetable.cxx.

References maXFIds.

◆ GetCellCount()

sal_uInt16 XclExpMultiCellBase::GetCellCount ( ) const
protected

Returns the number of cells this record represents.

Definition at line 1237 of file xetable.cxx.

References maXFIds, and XclExpMultiXFId::mnCount.

Referenced by GetLastXclCol().

◆ GetFirstXFId()

sal_uInt32 XclExpMultiCellBase::GetFirstXFId ( ) const
overridevirtual

Return the XF identifier of the first contained cell.

Implements XclExpCellBase.

Definition at line 1115 of file xetable.cxx.

References XclExpXFBuffer::GetDefCellXFId(), and maXFIds.

◆ GetLastXclCol()

sal_uInt16 XclExpMultiCellBase::GetLastXclCol ( ) const
overridevirtual

Returns the column index of the last cell this record describes.

Implements XclExpCellBase.

Definition at line 1110 of file xetable.cxx.

References GetCellCount(), and XclExpCellBase::GetXclCol().

Referenced by XclExpRow::Finalize(), GetXFIndexes(), RemoveUnusedXFIndexes(), and TryMergeXFIds().

◆ GetStartColAllDefaultCell()

sal_uInt16 XclExpMultiCellBase::GetStartColAllDefaultCell ( ) const
protected

Return starting column at which all indexes until the end are EXC_XF_DEFAULTCELL .

Definition at line 1310 of file xetable.cxx.

References EXC_XF_DEFAULTCELL, XclExpCellBase::GetXclCol(), and maXFIds.

◆ GetXFIndexes()

void XclExpMultiCellBase::GetXFIndexes ( ScfUInt16Vec rXFIndexes) const
protected

Inserts the Excel XF index(es) into the passed vector.

Definition at line 1269 of file xetable.cxx.

References GetLastXclCol(), XclExpCellBase::GetXclCol(), and maXFIds.

Referenced by XclExpBlankCell::GetBlankXFIndexes().

◆ IsEmpty()

bool XclExpMultiCellBase::IsEmpty ( ) const
overridevirtual

Returns true, if this record does not contain at least one valid cell.

Implements XclExpCellBase.

Definition at line 1120 of file xetable.cxx.

References maXFIds.

◆ RemoveUnusedXFIndexes()

void XclExpMultiCellBase::RemoveUnusedXFIndexes ( const ScfUInt16Vec rXFIndexes,
size_t  nStartAllNotFound 
)
protected

Removes unused Excel XF index(es).

Parameters
rXFIndexesSpecifies which XF indexes are used.
nStartAllNotFoundIndex in rXFIndexes which starts EXC_XF_NOTFOUND until the end.

Definition at line 1280 of file xetable.cxx.

References AppendXFId(), EXC_XF_NOTFOUND, GetLastXclCol(), XclExpCellBase::GetXclCol(), i, maXFIds, XclExpXFId::mnXFId, XclExpXFId::mnXFIndex, and XclExpCellBase::SetXclCol().

Referenced by XclExpBlankCell::RemoveUnusedBlankCells().

◆ Save()

void XclExpMultiCellBase::Save ( XclExpStream rStrm)
overridevirtual

Writes the record, calls WriteContents() for each contained cell.

@descr May write several records, if unused XF indexes are contained.

Reimplemented from XclExpRecord.

Definition at line 1131 of file xetable.cxx.

References EXC_BIFF3, EXC_XF_NOTFOUND, XclExpRecord::GetRecId(), XclExpRecord::GetRecSize(), XclExpCellBase::GetXclCol(), XclExpCellBase::GetXclRow(), maXFIds, mnContSize, mnMulRecId, nCount, OSL_ENSURE_BIFF, rStrm, and WriteContents().

◆ SaveXml()

void XclExpMultiCellBase::SaveXml ( XclExpXmlStream rStrm)
overridevirtual

◆ TryMergeXFIds()

bool XclExpMultiCellBase::TryMergeXFIds ( const XclExpMultiCellBase rCell)
protected

Tries to merge the XF ID list of the passed cell with the own list.

Definition at line 1259 of file xetable.cxx.

References GetLastXclCol(), XclExpCellBase::GetXclCol(), and maXFIds.

Referenced by XclExpBlankCell::TryMerge(), and XclExpRkCell::TryMerge().

◆ WriteContents()

virtual void XclExpMultiCellBase::WriteContents ( XclExpStream rStrm,
sal_uInt16  nRelCol 
)
privatepure virtual

Derived classes write the remaining contents of the specified cell (without XF index).

Parameters
nRelColRelative column index (starts with 0 for first cell of this record).

Implemented in XclExpBlankCell, and XclExpRkCell.

Referenced by Save().

◆ WriteXmlContents()

virtual void XclExpMultiCellBase::WriteXmlContents ( XclExpXmlStream rStrm,
const XclAddress rAddress,
sal_uInt32  nXFId,
sal_uInt16  nRelCol 
)
privatepure virtual

Implemented in XclExpBlankCell, and XclExpRkCell.

Referenced by SaveXml().

Member Data Documentation

◆ maXFIds

XclExpMultiXFIdDeq XclExpMultiCellBase::maXFIds
private

◆ mnContSize

std::size_t XclExpMultiCellBase::mnContSize
private

Record ID for multiple record variant.

Definition at line 521 of file xetable.hxx.

Referenced by Save().

◆ mnMulRecId

sal_uInt16 XclExpMultiCellBase::mnMulRecId
private

Definition at line 520 of file xetable.hxx.

Referenced by Save().


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