Definition at line 736 of file SimilarityTableSetRank.h. References Impala::Core::Table::Copy(), Impala::Core::Table::TableTem< Col1T, Col2T, Col3T, Col4T, Col5T, Col6T, Col7T, Col8T, Col9T >::Get1(), Impala::Core::Database::DataDocument::GetConcept(), Impala::Core::Database::DataDocument::GetDataSet(), Impala::Core::Database::RawDataSet::GetLocator(), Impala::Core::Table::AnnotationTable::GetQualification(), Impala::Core::Table::SimilarityTableSet::GetQuidClass(), Impala::Core::Table::SimilarityTableSet::GetRankTable(), ILOG_ERROR, ILOG_INFO, mAnno, mAnnoConcept, mAnnoSet, mCorrections, mCorrectionSet, mCurConcept, mDataDoc, mQualifiedRanking, mSimSet, SaveCorrections(), Impala::Core::Table::TableTem< Col1T, Col2T, Col3T, Col4T, Col5T, Col6T, Col7T, Col8T, Col9T >::Set2(), and Impala::Core::Table::Table::Size(). Referenced by HandleUpdate(). 00737 { 00738 if (mAnnoSet.empty()) 00739 { 00740 Core::Table::Copy(mQualifiedRanking, 00741 mSimSet->GetRankTable(mCurConcept)); 00742 return; 00743 } 00744 if (mAnnoConcept == mCurConcept) 00745 return; 00746 00747 if (mAnno) 00748 { 00749 delete mAnno; 00750 mAnno = 0; 00751 } 00752 if (mCorrections) 00753 { 00754 SaveCorrections(); 00755 delete mCorrections; 00756 mCorrections = 0; 00757 } 00758 00759 Core::Database::RawDataSet* dataSet = mDataDoc->GetDataSet(); 00760 int qClass = mSimSet->GetQuidClass(); 00761 typedef Persistency::AnnotationTableLocator Loc; 00762 String concept = mDataDoc->GetConcept(); 00763 Loc aLoc(dataSet->GetLocator(), qClass, mAnnoSet, concept); 00764 if (! Persistency::AnnotationTableRepository().Exists(aLoc)) 00765 { 00766 ILOG_ERROR("No annations for " << concept); 00767 mAnnoConcept = -2; 00768 Core::Table::Copy(mQualifiedRanking, 00769 mSimSet->GetRankTable(mCurConcept)); 00770 return; 00771 } 00772 mAnno = Persistency::AnnotationTableRepository().Get(aLoc); 00773 00774 if (!mCorrectionSet.empty()) 00775 { 00776 aLoc.SetConceptSet(mCorrectionSet); 00777 if (Persistency::AnnotationTableRepository().Exists(aLoc)) 00778 { 00779 ILOG_INFO("Loading corrections for " << concept); 00780 mCorrections = Persistency::AnnotationTableRepository().Get(aLoc); 00781 } 00782 else 00783 { 00784 ILOG_INFO("No existing corrections for " << concept); 00785 mCorrections = new AnnotationTable(concept, 0); 00786 } 00787 } 00788 00789 mAnnoConcept = mCurConcept; 00790 Core::Table::Copy(mQualifiedRanking, mSimSet->GetRankTable(mCurConcept)); 00791 for (int i=0 ; i<mQualifiedRanking->Size() ; i++) 00792 { 00793 Quid quid = mQualifiedRanking->Get1(i); 00794 mQualifiedRanking->Set2(i, mAnno->GetQualification(quid)); 00795 if (mCorrections) 00796 { 00797 int index = mCorrections->GetIndex(quid); 00798 if (index != mCorrections->Size()) 00799 mQualifiedRanking->Set2(i, mCorrections->Get2(index)); 00800 } 00801 } 00802 }
Here is the call graph for this function: ![]()
|