package sk.tomsik68.mclauncher.impl.versions.mcdownload; import net.minidev.json.JSONArray; import net.minidev.json.JSONObject; import sk.tomsik68.mclauncher.util.IExtractRules; import java.util.ArrayList; import java.util.zip.ZipEntry; /** * Library extraction filter */ final class LibraryExtractRules implements IExtractRules { private ArrayList<String> exclude = new ArrayList<String>(); public LibraryExtractRules(JSONObject object) { JSONArray excludeArray = (JSONArray) object.get("exclude"); for (Object obj : excludeArray) { exclude.add(obj.toString()); } } /** * * @param entry Entry that is being thinked about right now * @return True if entry may be extracted, otherwise false */ @Override public boolean accepts(ZipEntry entry) { String path = entry.getName(); if (exclude != null && !exclude.isEmpty()) { for (String p : exclude) { if (path.startsWith(p)) return false; } } return true; } }