gistfile1.txt package cn.huawei.com.CompressedSeacher.impl.tar;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.IOException;import java.util.Collections;import java.util.HashMap;import java.util.Map;import
package cn.huawei.com.CompressedSeacher.impl.tar;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.Collections;
import java.util.HashMap;
import java.util.Map;
import org.apache.tools.tar.TarEntry;
import org.apache.tools.tar.TarInputStream;
import cn.huawei.com.CompressedSeacher.inter.ISeacher;
import cn.huawei.com.CompressedSeacher.util.SeachUtil;
import cn.huawei.com.CompressedSeacher.util.logger.GUIPrintstream;
import cn.huawei.com.CompressedSeacher.util.logger.LoggerUtil;
import cn.huawei.com.CompressedSeacher.view.StartUp;
/**
* **
*
* @author l00358914
*/
public class TarSeacherImpl implements ISeacher {
private static TarSeacherImpl instance = new TarSeacherImpl();
private TarSeacherImpl() {
}
public static TarSeacherImpl getInstance() {
return instance;
}
/*
* (non-Javadoc)
*
* @see cn.ibm.com.CompressedSeacher.inter.ISeacher#seach(java.lang.String,
* java.lang.String)
*/
@Override
public Map
seach(String path, String conditions) {
if (path == null || path.trim().length() <= 0) {
return Collections.EMPTY_MAP;
}
String[] cons = conditions.split(",");
Map
result = new HashMap
(); TarInputStream taris = null; TarEntry te = null; try { taris = new TarInputStream(new FileInputStream(path)); while ((te = taris.getNextEntry()) != null) { if (cons.length > 0) { if (SeachUtil.isOkToAdd(te.getName(), cons)) { result.put(te.getName(), path); } } } } catch (FileNotFoundException e) { StartUp.logger = LoggerUtil.getLogger(GUIPrintstream.class); StartUp.logger.error("Failed to open this tar file !", e); LoggerUtil.appLog(); return Collections.EMPTY_MAP; } catch (IOException e) { e.printStackTrace(); } return result; } }
