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 Mapseach(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; } }