summaryrefslogtreecommitdiff
path: root/scripting/java/org/openoffice/idesupport/zip/ParcelZipper.java
diff options
context:
space:
mode:
Diffstat (limited to 'scripting/java/org/openoffice/idesupport/zip/ParcelZipper.java')
-rw-r--r--scripting/java/org/openoffice/idesupport/zip/ParcelZipper.java159
1 files changed, 0 insertions, 159 deletions
diff --git a/scripting/java/org/openoffice/idesupport/zip/ParcelZipper.java b/scripting/java/org/openoffice/idesupport/zip/ParcelZipper.java
deleted file mode 100644
index 3c8d797f220c..000000000000
--- a/scripting/java/org/openoffice/idesupport/zip/ParcelZipper.java
+++ /dev/null
@@ -1,159 +0,0 @@
-/*
- * This file is part of the LibreOffice project.
- *
- * This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/.
- *
- * This file incorporates work covered by the following license notice:
- *
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed
- * with this work for additional information regarding copyright
- * ownership. The ASF licenses this file to you under the Apache
- * License, Version 2.0 (the "License"); you may not use this file
- * except in compliance with the License. You may obtain a copy of
- * the License at http://www.apache.org/licenses/LICENSE-2.0 .
- */
-
-package org.openoffice.idesupport.zip;
-
-import java.io.*;
-import java.util.zip.*;
-import org.openoffice.idesupport.filter.FileFilter;
-import org.openoffice.idesupport.filter.BinaryOnlyFilter;
-import org.openoffice.idesupport.xml.Manifest;
-
-public class ParcelZipper {
- public static final String PARCEL_PREFIX_DIR = "Scripts/";
- private static final String PARCEL_EXTENSION = "sxp";
- public static final String CONTENTS_DIRNAME = "Contents";
- public static final String PARCEL_DESCRIPTOR_XML = "parcel-descriptor.xml";
-
- private static ParcelZipper zipper = null;
-
- private static final FileFilter DEFAULT_FILTER =
- BinaryOnlyFilter.getInstance();
-
- private ParcelZipper() {
- }
-
- public static synchronized ParcelZipper getParcelZipper() {
- if (zipper == null)
- zipper = new ParcelZipper();
-
- return zipper;
- }
-
-
-
-
-
-
-
- public String removeParcel(File document, String parcelName)
- throws IOException {
-
- ZipInputStream documentStream = null;
- ZipOutputStream outStream = null;
- Manifest manifest = null;
-
- if (!parcelName.startsWith(PARCEL_PREFIX_DIR))
- parcelName = PARCEL_PREFIX_DIR + parcelName;
-
- manifest = removeParcelFromManifest(document, parcelName);
-
- // first write contents of document to tmpfile
- File tmpfile = new File(document.getAbsolutePath() + ".tmp");
-
- try {
- ZipEntry outEntry;
- ZipEntry inEntry;
- byte[] bytes = new byte[1024];
- int len;
-
- documentStream = new ZipInputStream(new FileInputStream(document));
- outStream = new ZipOutputStream(new FileOutputStream(tmpfile));
-
- while ((inEntry = documentStream.getNextEntry()) != null) {
-
- if (inEntry.getName().startsWith(parcelName))
- continue;
-
- outEntry = new ZipEntry(inEntry);
- outStream.putNextEntry(outEntry);
-
- if (inEntry.getName().equals("META-INF/manifest.xml") &&
- manifest != null) {
- InputStream manifestStream = null;
-
- try {
- manifestStream = manifest.getInputStream();
-
- while ((len = manifestStream.read(bytes)) != -1)
- outStream.write(bytes, 0, len);
- } finally {
- if (manifestStream != null)
- manifestStream.close();
- }
- } else if (!inEntry.isDirectory()) {
- while ((len = documentStream.read(bytes)) != -1)
- outStream.write(bytes, 0, len);
- }
-
- outStream.closeEntry();
- }
- } catch (IOException ioe) {
- tmpfile.delete();
- throw ioe;
- } finally {
- if (documentStream != null)
- documentStream.close();
-
- if (outStream != null)
- outStream.close();
- }
-
- if (!document.delete()) {
- tmpfile.delete();
- throw new IOException("Could not overwrite " + document);
- } else
- tmpfile.renameTo(document);
-
- return document.getAbsolutePath();
- }
-
- private Manifest getManifestFromDocument(File document) {
- ZipFile documentZip = null;
- Manifest result = null;
-
- try {
- documentZip = new ZipFile(document);
- ZipEntry original = documentZip.getEntry("META-INF/manifest.xml");
-
- if (original != null) {
- result = new Manifest(documentZip.getInputStream(original));
- }
- } catch (IOException ioe) {
- } finally {
- try {
- if (documentZip != null)
- documentZip.close();
- } catch (IOException ioe) {}
- }
-
- return result;
- }
-
- private Manifest removeParcelFromManifest(File document, String name) {
- Manifest result = null;
-
- result = getManifestFromDocument(document);
-
- if (result == null)
- return null;
-
- result.remove(name);
- return result;
- }
-}