package org.fastcatsearch.ir.search;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import org.fastcatsearch.ir.common.IRException;
import org.fastcatsearch.ir.settings.GroupIndexSetting;
import org.fastcatsearch.ir.settings.Schema;
public class GroupIndexesReader extends SelectableIndexesReader<GroupIndexReader, GroupIndexSetting> {
public GroupIndexesReader(){ }
public GroupIndexesReader(Schema schema, File dir, int revision) throws IOException, IRException{
indexSettingList = schema.schemaSetting().getGroupIndexSettingList();
int indexCount = indexSettingList == null ? 0 : indexSettingList.size();
//색인파일열기.
readerList = new ArrayList<GroupIndexReader>(indexCount);
for (int i = 0; i < indexCount; i++) {
GroupIndexSetting setting = indexSettingList.get(i);
GroupIndexReader reader = null;
try{
reader = new GroupIndexReader(setting, schema.fieldSettingMap(), dir, revision);
}catch(Exception e){
logger.error("그룹색인 {}로딩중 에러 >> {}", setting.getId(), e);
}
readerList.add(reader);
}
}
@Override
public GroupIndexesReader clone(){
GroupIndexesReader reader = new GroupIndexesReader();
reader.indexSettingList = indexSettingList;
reader.readerList = new ArrayList<GroupIndexReader>(readerList.size());
for (GroupIndexReader r : readerList) {
GroupIndexReader newReader = null;
if(r != null){
newReader = r.clone();
}
reader.readerList.add(newReader);
}
return reader;
}
@Override
protected GroupIndexReader cloneReader(int sequence) {
return readerList.get(sequence).clone();
}
}