void
CPersistTabularDistribFun::TraverseSubobject(CPNLBase *pObj, CContext *pContext)
{
    CTabularDistribFun *pDF = dynamic_cast<CTabularDistribFun*>(pObj);

    TraverseDistribFunSubobjects(pDF, pContext);

    if(pDF->IsDistributionSpecific() == 1)
    {
	return;
    }

    pContext->Put(pDF->GetMatrix(matTable), "MatTable");
}
void
CPersistTabularDistribFun::Save(CPNLBase *pObj, CContextSave *pContext)
{
    CTabularDistribFun *pDF = dynamic_cast<CTabularDistribFun*>(pObj);
    bool isUnitFun = pDF->IsDistributionSpecific() == 1 ? true:false;

    SaveForDistribFun(pDF, pContext);

    if(isUnitFun)
    {
        pContext->AddAttribute("IsDense", pDF->IsDense() ? true:false);
	return;
    }
}