Kaydet (Commit) 16bbecab authored tarafından Kohei Yoshida's avatar Kohei Yoshida

ScDPDateGroupHelper class is no more.

üst 7a1401e9
......@@ -41,28 +41,6 @@
class ScDocument;
class SvNumberFormatter;
// ScDPDateGroupHelper is used as part of ScDPGroupDimension (additional dim.)
// or ScDPNumGroupDimension (innermost, replaces the original dim.).
// Source index, name and result collection are stored at the parent.
class ScDPDateGroupHelper
{
ScDPNumGroupInfo aNumInfo; // only start and end (incl. auto flags) are used
sal_Int32 nDatePart; // single part
long mnGroupDim;
public:
ScDPDateGroupHelper( const ScDPNumGroupInfo& rInfo, long nDim, sal_Int32 nPart );
~ScDPDateGroupHelper();
void SetGroupDim(long nDim);
sal_Int32 GetDatePart() const { return nDatePart; }
const ScDPNumGroupInfo& GetNumInfo() const { return aNumInfo; }
void FillColumnEntries(const ScDPCache* pCache, std::vector<SCROW>& rEntries) const;
};
typedef ::std::vector<ScDPItemData> ScDPItemDataVec;
class ScDPGroupItem
......@@ -90,9 +68,9 @@ class ScDPGroupDimension
long nSourceDim;
long nGroupDim;
rtl::OUString aGroupName;
ScDPDateGroupHelper* pDateHelper;
ScDPGroupItemVec aItems;
mutable ::std::vector< SCROW > maMemberEntries;
mutable std::vector<SCROW> maMemberEntries;
bool mbDateDimension;
public:
ScDPGroupDimension( long nSource, const String& rNewName );
ScDPGroupDimension( const ScDPGroupDimension& rOther );
......@@ -112,12 +90,11 @@ public:
const ScDPGroupItem* GetGroupForName( const ScDPItemData& rName ) const; // rName = entry in group dim.
const ScDPGroupItem* GetGroupByIndex( size_t nIndex ) const;
void MakeDateHelper( const ScDPNumGroupInfo& rInfo, sal_Int32 nPart );
void DisposeData();
size_t GetItemCount() const { return aItems.size(); }
void SetDateDimension();
bool IsDateDimension() const;
};
......@@ -126,8 +103,8 @@ typedef ::std::vector<ScDPGroupDimension> ScDPGroupDimensionVec;
class SC_DLLPUBLIC ScDPNumGroupDimension
{
mutable ScDPNumGroupInfo aGroupInfo; // settings
ScDPDateGroupHelper* pDateHelper;
mutable std::vector<SCROW> maMemberEntries;
bool mbDateDimension;
public:
ScDPNumGroupDimension();
......@@ -141,7 +118,7 @@ public:
const std::vector<SCROW>& GetNumEntries(SCCOL nSourceDim, const ScDPCache* pCache) const;
void MakeDateHelper( const ScDPNumGroupInfo& rInfo, long nDim, sal_Int32 nPart );
void SetDateDimension();
void DisposeData();
......
......@@ -379,7 +379,7 @@ void ScDPSaveGroupDimension::AddToData( ScDPGroupTableData& rData ) const
{
// date grouping
aDim.MakeDateHelper( aDateInfo, nDatePart );
aDim.SetDateDimension();
}
else
{
......@@ -459,7 +459,7 @@ void ScDPSaveNumGroupDimension::AddToData( ScDPGroupTableData& rData ) const
{
ScDPNumGroupDimension aDim( aGroupInfo ); // aGroupInfo: value grouping
if ( nDatePart )
aDim.MakeDateHelper( aDateInfo, nSource, nDatePart ); // date grouping
aDim.SetDateDimension();
rData.SetNumGroupDimension( nSource, aDim );
}
......
......@@ -240,19 +240,6 @@ bool ScDPGroupDateFilter::match( const ScDPItemData & rCellData ) const
return false;
}
// -----------------------------------------------------------------------
ScDPDateGroupHelper::ScDPDateGroupHelper(
const ScDPNumGroupInfo& rInfo, long nDim, sal_Int32 nPart ) :
aNumInfo( rInfo ),
nDatePart( nPart ),
mnGroupDim(nDim)
{
}
ScDPDateGroupHelper::~ScDPDateGroupHelper()
{
}
namespace {
......@@ -304,18 +291,6 @@ bool isDateInGroup(const ScDPItemData& rGroupItem, const ScDPItemData& rChildIte
}
void ScDPDateGroupHelper::SetGroupDim(long nDim)
{
mnGroupDim = nDim;
}
void ScDPDateGroupHelper::FillColumnEntries(const ScDPCache* pCache, std::vector<SCROW>& rEntries) const
{
pCache->GetGroupDimMemberIds(mnGroupDim, rEntries);
}
// -----------------------------------------------------------------------
ScDPGroupItem::ScDPGroupItem( const ScDPItemData& rName ) :
aGroupName( rName )
{
......@@ -361,13 +336,12 @@ ScDPGroupDimension::ScDPGroupDimension( long nSource, const String& rNewName ) :
nSourceDim( nSource ),
nGroupDim( -1 ),
aGroupName( rNewName ),
pDateHelper( NULL )
mbDateDimension(false)
{
}
ScDPGroupDimension::~ScDPGroupDimension()
{
delete pDateHelper;
maMemberEntries.clear();
}
......@@ -375,11 +349,9 @@ ScDPGroupDimension::ScDPGroupDimension( const ScDPGroupDimension& rOther ) :
nSourceDim( rOther.nSourceDim ),
nGroupDim( rOther.nGroupDim ),
aGroupName( rOther.aGroupName ),
pDateHelper( NULL ),
aItems( rOther.aItems )
aItems( rOther.aItems ),
mbDateDimension(rOther.mbDateDimension)
{
if ( rOther.pDateHelper )
pDateHelper = new ScDPDateGroupHelper( *rOther.pDateHelper );
}
ScDPGroupDimension& ScDPGroupDimension::operator=( const ScDPGroupDimension& rOther )
......@@ -388,22 +360,10 @@ ScDPGroupDimension& ScDPGroupDimension::operator=( const ScDPGroupDimension& rOt
nGroupDim = rOther.nGroupDim;
aGroupName = rOther.aGroupName;
aItems = rOther.aItems;
delete pDateHelper;
if ( rOther.pDateHelper )
pDateHelper = new ScDPDateGroupHelper( *rOther.pDateHelper );
else
pDateHelper = NULL;
mbDateDimension = rOther.mbDateDimension;
return *this;
}
void ScDPGroupDimension::MakeDateHelper( const ScDPNumGroupInfo& rInfo, sal_Int32 nPart )
{
delete pDateHelper;
pDateHelper = new ScDPDateGroupHelper(rInfo, nGroupDim, nPart);
}
void ScDPGroupDimension::AddItem( const ScDPGroupItem& rItem )
{
aItems.push_back( rItem );
......@@ -412,8 +372,6 @@ void ScDPGroupDimension::AddItem( const ScDPGroupItem& rItem )
void ScDPGroupDimension::SetGroupDim( long nDim )
{
nGroupDim = nDim;
if (pDateHelper)
pDateHelper->SetGroupDim(nDim);
}
const std::vector<SCROW>& ScDPGroupDimension::GetColumnEntries(
......@@ -422,12 +380,6 @@ const std::vector<SCROW>& ScDPGroupDimension::GetColumnEntries(
if (!maMemberEntries.empty())
return maMemberEntries;
if (pDateHelper)
{
pDateHelper->FillColumnEntries(rCacheTable.getCache(), maMemberEntries);
return maMemberEntries;
}
rCacheTable.getCache()->GetGroupDimMemberIds(nGroupDim, maMemberEntries);
return maMemberEntries;
}
......@@ -465,37 +417,30 @@ void ScDPGroupDimension::DisposeData()
maMemberEntries.clear();
}
void ScDPGroupDimension::SetDateDimension()
{
mbDateDimension = true;
}
bool ScDPGroupDimension::IsDateDimension() const
{
return pDateHelper != NULL;
return mbDateDimension;
}
// -----------------------------------------------------------------------
ScDPNumGroupDimension::ScDPNumGroupDimension() :
pDateHelper(NULL) {}
ScDPNumGroupDimension::ScDPNumGroupDimension() : mbDateDimension(false) {}
ScDPNumGroupDimension::ScDPNumGroupDimension( const ScDPNumGroupInfo& rInfo ) :
aGroupInfo(rInfo), pDateHelper(NULL) {}
aGroupInfo(rInfo), mbDateDimension(false) {}
ScDPNumGroupDimension::ScDPNumGroupDimension( const ScDPNumGroupDimension& rOther ) :
aGroupInfo( rOther.aGroupInfo ),
pDateHelper(NULL)
{
if ( rOther.pDateHelper )
pDateHelper = new ScDPDateGroupHelper( *rOther.pDateHelper );
}
aGroupInfo(rOther.aGroupInfo), mbDateDimension(rOther.mbDateDimension) {}
ScDPNumGroupDimension& ScDPNumGroupDimension::operator=( const ScDPNumGroupDimension& rOther )
{
aGroupInfo = rOther.aGroupInfo;
delete pDateHelper;
if ( rOther.pDateHelper )
pDateHelper = new ScDPDateGroupHelper( *rOther.pDateHelper );
else
pDateHelper = NULL;
mbDateDimension = rOther.mbDateDimension;
return *this;
}
......@@ -507,20 +452,17 @@ void ScDPNumGroupDimension::DisposeData()
bool ScDPNumGroupDimension::IsDateDimension() const
{
return pDateHelper != NULL;
return mbDateDimension;
}
ScDPNumGroupDimension::~ScDPNumGroupDimension()
{
delete pDateHelper;
}
void ScDPNumGroupDimension::MakeDateHelper( const ScDPNumGroupInfo& rInfo, long nDim, sal_Int32 nPart )
void ScDPNumGroupDimension::SetDateDimension()
{
delete pDateHelper;
pDateHelper = new ScDPDateGroupHelper(rInfo, nDim, nPart);
aGroupInfo.mbEnable = true; //! or query both?
mbDateDimension = true;
}
const std::vector<SCROW>& ScDPNumGroupDimension::GetNumEntries(
......@@ -529,13 +471,6 @@ const std::vector<SCROW>& ScDPNumGroupDimension::GetNumEntries(
if (!maMemberEntries.empty())
return maMemberEntries;
if (pDateHelper)
{
// Grouped by dates.
pDateHelper->FillColumnEntries(pCache, maMemberEntries);
return maMemberEntries;
}
pCache->GetGroupDimMemberIds(nSourceDim, maMemberEntries);
return maMemberEntries;
}
......
......@@ -553,7 +553,7 @@ void XclExpPCField::InsertNumDateGroupItems( const ScDPObject& rDPObj, const ScD
// get the string collection with generated grouping elements
ScDPNumGroupDimension aTmpDim( rNumInfo );
if( nDatePart != 0 )
aTmpDim.MakeDateHelper( rNumInfo, mnFieldIdx, nDatePart );
aTmpDim.SetDateDimension();
const std::vector<SCROW>& aMemberIds = aTmpDim.GetNumEntries(
static_cast<SCCOL>(nDim), pCache);
for ( size_t nIdx = 0 ; nIdx < aMemberIds.size(); nIdx++ )
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment