package org.eclipse.iee.export; import java.io.IOException; import java.io.OutputStreamWriter; import java.util.HashMap; import java.util.Map; import java.util.Map.Entry; import java.util.zip.ZipEntry; import java.util.zip.ZipOutputStream; import org.eclipse.iee.export.model.Worksheet; import com.google.common.base.Charsets; import com.google.common.base.Strings; import com.google.gson.Gson; public class PackageBuilder { private Worksheet ws; private Map<String, IResourceProvider> resources = new HashMap<>(); private String bundleName; private String bundleVersion; private String bundleDescription; public PackageBuilder setWorksheet(Worksheet ws) { this.ws = ws; return this; } public PackageBuilder setBundleName(String bundleName) { this.bundleName = bundleName; return this; } public PackageBuilder setBundleVersion(String bundleVersion) { this.bundleVersion = bundleVersion; return this; } public PackageBuilder setBundleDescription(String bundleDescription) { this.bundleDescription = bundleDescription; return this; } public void addResource(String resourcePath, IResourceProvider packageResourceProvider) { resources.put(resourcePath, packageResourceProvider); } public void writeToStream(ZipOutputStream zos) throws IOException { for (Entry<String, IResourceProvider> entry : resources .entrySet()) { String path = entry.getKey(); IResourceProvider provider = entry.getValue(); ZipEntry resourceEntry = new ZipEntry(path); zos.putNextEntry(resourceEntry); provider.writeToStream(zos); zos.closeEntry(); } } }