LuceneObjectPtr SegmentInfoCollection::clone(LuceneObjectPtr other) { LuceneObjectPtr clone = LuceneObject::clone(other ? other : newLucene<SegmentInfoCollection>()); SegmentInfoCollectionPtr cloneInfos(boost::dynamic_pointer_cast<SegmentInfoCollection>(clone)); for (Collection<SegmentInfoPtr>::iterator info = segmentInfos.begin(); info != segmentInfos.end(); ++info) cloneInfos->segmentInfos.add(*info); return cloneInfos; }
LuceneObjectPtr SegmentInfos::clone(LuceneObjectPtr other) { LuceneObjectPtr clone = SegmentInfoCollection::clone(other ? other : newLucene<SegmentInfos>()); SegmentInfosPtr cloneInfos(boost::dynamic_pointer_cast<SegmentInfos>(clone)); cloneInfos->counter = counter; cloneInfos->generation = generation; cloneInfos->lastGeneration = lastGeneration; cloneInfos->version = version; cloneInfos->pendingSegnOutput = pendingSegnOutput; for (int32_t i = 0; i < cloneInfos->size(); ++i) cloneInfos->segmentInfos[i] = boost::dynamic_pointer_cast<SegmentInfo>(cloneInfos->info(i)->clone()); cloneInfos->userData = MapStringString::newInstance(); cloneInfos->userData.putAll(userData.begin(), userData.end()); return cloneInfos; }