private List<JarEntryData> filterEntries(List<JarEntryData> entries,
			JarEntryFilter[] filters) {
		List<JarEntryData> filteredEntries = new ArrayList<JarEntryData>(entries.size());
		for (JarEntryData entry : entries) {
			AsciiBytes name = entry.getName();
			for (JarEntryFilter filter : filters) {
				name = (filter == null || name == null ? name : filter.apply(name, entry));
			}
			if (name != null) {
				JarEntryData filteredCopy = entry.createFilteredCopy(this, name);
				filteredEntries.add(filteredCopy);
				processEntry(filteredCopy);
			}
		}
		return filteredEntries;
	}