package ru.gravit.launchserver.binary; import ru.gravit.utils.helper.IOHelper; import java.io.IOException; import java.io.InputStream; import java.util.Set; import java.util.jar.JarInputStream; import java.util.zip.ZipEntry; import java.util.zip.ZipOutputStream; public class BuildContext { public final ZipOutputStream output; public final JAConfigurator config; public BuildContext(ZipOutputStream output, JAConfigurator config) { this.output = output; this.config = config; } public void pushFile(String filename, InputStream inputStream) throws IOException { ZipEntry zip = IOHelper.newZipEntry(filename); output.putNextEntry(zip); IOHelper.transfer(inputStream, output); } public void pushJarFile(JarInputStream input) throws IOException { ZipEntry e = input.getNextEntry(); while (e != null) { output.putNextEntry(e); IOHelper.transfer(input, output); e = input.getNextEntry(); } } public void pushJarFile(JarInputStream input, Set blacklist) throws IOException { ZipEntry e = input.getNextEntry(); while (e != null) { if (blacklist.contains(e.getName())) { e = input.getNextEntry(); continue; } output.putNextEntry(e); IOHelper.transfer(input, output); e = input.getNextEntry(); } } }