package jp.crwdev.app.container.rar;
import java.util.List;
import com.github.junrar.Archive;
import com.github.junrar.rarfile.FileHeader;
import jp.crwdev.app.BufferedImageIO;
import jp.crwdev.app.container.ImageFileInfoList;
import jp.crwdev.app.interfaces.IImageFileInfoList;
public class RarImageFileInfoList extends ImageFileInfoList {
/** 入力Zipファイル */
protected Archive mRarArchive;
/**
* コンストラクタ
* @param zipFile 入力Zipファイル
*/
public RarImageFileInfoList(Archive rarArchive) {
super();
setList(rarArchive);
}
/**
* コンストラクタ
*/
protected RarImageFileInfoList(){
super();
}
private void setList(Archive rarArchive){
mRarArchive = rarArchive;
clear();
List<FileHeader> headers = rarArchive.getFileHeaders();
for(FileHeader header : headers){
String filename = header.getFileNameString();
if(BufferedImageIO.isSupport(getSuffix(filename))){
try {
add(new RarImageFileInfo(header, mRarArchive));
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
@Override
public IImageFileInfoList renew() {
RarImageFileInfoList list = new RarImageFileInfoList();
list.mRarArchive = mRarArchive;
return renewInternal(list);
}
}