org.symbian.tools.mtw.core/src/org/symbian/tools/mtw/core/utilities/ZipApplicationVisitor.java
changeset 461 7a8f9fa8d278
parent 460 c0bff5ed874c
child 462 cdc4995b1677
--- a/org.symbian.tools.mtw.core/src/org/symbian/tools/mtw/core/utilities/ZipApplicationVisitor.java	Thu Jul 29 15:59:01 2010 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,99 +0,0 @@
-/**
- * Copyright (c) 2010 Symbian Foundation and/or its subsidiary(-ies).
- * All rights reserved.
- * This component and the accompanying materials are made available
- * under the terms of the License "Eclipse Public License v1.0"
- * which accompanies this distribution, and is available
- * at the URL "http://www.eclipse.org/legal/epl-v10.html".
- *
- * Initial Contributors:
- * Symbian Foundation - initial contribution.
- * Contributors:
- * Description:
- * Overview:
- * Details:
- * Platforms/Drives/Compatibility:
- * Assumptions/Requirement/Pre-requisites:
- * Failures and causes:
- */
-package org.symbian.tools.mtw.core.utilities;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
-import java.util.zip.ZipEntry;
-import java.util.zip.ZipOutputStream;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.IResourceVisitor;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.symbian.tools.mtw.core.MTWCore;
-import org.symbian.tools.mtw.core.runtimes.IPackagerDelegate;
-
-/**
- * Use this visitor to zip application if the web runtime uses zip archive as application
- * distribution format.
- * 
- * @author Eugene Ostroukhov (eugeneo@symbian.org)
- */
-public class ZipApplicationVisitor implements IResourceVisitor {
-    private static final int DEFAULT_BUFFER_SIZE = 65536;
-    private final ZipOutputStream zipStream;
-    private final IPackagerDelegate packager;
-
-    public ZipApplicationVisitor(ZipOutputStream zipStream, IPackagerDelegate packager) {
-        this.zipStream = zipStream;
-        this.packager = packager;
-    }
-
-    public boolean visit(IResource resource) throws CoreException {
-        IPath path = packager.getPathInPackage(resource);
-        if (path != null && resource.getType() == IResource.FILE) {
-            zip(path, resource);
-        }
-        return true;
-    }
-
-    private void zip(IPath path, IResource file) throws CoreException {
-        ZipEntry zipEntry = new ZipEntry(path.toString());
-        try {
-            zipStream.putNextEntry(zipEntry);
-            if (file.getType() == IResource.FILE) {
-                InputStream contents = ((IFile) file).getContents();
-                try {
-                    copy(contents, zipStream);
-                } finally {
-                    contents.close();
-                }
-            }
-            zipStream.closeEntry();
-        } catch (IOException e) {
-            throw new CoreException(new Status(IStatus.ERROR, MTWCore.PLUGIN_ID, String.format("Can't package %s", file
-                    .getFullPath().toString()), e));
-        }
-    }
-
-    public static int copy(InputStream input, OutputStream output) throws IOException {
-        long count = copyLarge(input, output);
-        if (count > Integer.MAX_VALUE) {
-            return -1;
-        }
-        return (int) count;
-    }
-
-    public static long copyLarge(InputStream input, OutputStream output) throws IOException {
-        byte[] buffer = new byte[DEFAULT_BUFFER_SIZE];
-        long count = 0;
-        int n = 0;
-        while (-1 != (n = input.read(buffer))) {
-            output.write(buffer, 0, n);
-            count += n;
-        }
-        return count;
-    }
-
-}