Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/org.eclipse.jst.j2ee.core/commonArchive/org/eclipse/jst/j2ee/commonarchivecore/internal/helpers/ArchiveURIConverterImpl.java')
-rw-r--r--plugins/org.eclipse.jst.j2ee.core/commonArchive/org/eclipse/jst/j2ee/commonarchivecore/internal/helpers/ArchiveURIConverterImpl.java309
1 files changed, 0 insertions, 309 deletions
diff --git a/plugins/org.eclipse.jst.j2ee.core/commonArchive/org/eclipse/jst/j2ee/commonarchivecore/internal/helpers/ArchiveURIConverterImpl.java b/plugins/org.eclipse.jst.j2ee.core/commonArchive/org/eclipse/jst/j2ee/commonarchivecore/internal/helpers/ArchiveURIConverterImpl.java
deleted file mode 100644
index 2285f55ec..000000000
--- a/plugins/org.eclipse.jst.j2ee.core/commonArchive/org/eclipse/jst/j2ee/commonarchivecore/internal/helpers/ArchiveURIConverterImpl.java
+++ /dev/null
@@ -1,309 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jst.j2ee.commonarchivecore.internal.helpers;
-
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileNotFoundException;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.net.URLConnection;
-import java.util.StringTokenizer;
-import java.util.zip.ZipEntry;
-import java.util.zip.ZipFile;
-
-import org.eclipse.emf.common.util.URI;
-import org.eclipse.emf.ecore.resource.impl.URIConverterImpl;
-import org.eclipse.jst.j2ee.commonarchivecore.internal.strategy.LoadStrategy;
-
-
-/**
- * Helper class used for loading of mof resources contained within an archive; knows how to retrieve
- * an input stream for a given uri
- */
-public class ArchiveURIConverterImpl extends URIConverterImpl {
- protected static final String fileProtocol = "file"; //$NON-NLS-1$
- protected static final String platformProtocol = "platform"; //$NON-NLS-1$
- private String inFilepath, outFilepath;
-
- public ArchiveURIConverterImpl(org.eclipse.jst.j2ee.commonarchivecore.internal.Archive anArchive, String resourcesPath) {
- setArchive(anArchive);
- this.resourcesPath = resourcesPath;
- setInputFilepath(resourcesPath);
- String outpath = resourcesPath;
- if (outpath == null) {
- LoadStrategy l = anArchive.getLoadStrategy();
- if (l != null && l.isDirectory()) {
- try {
- outpath = l.getAbsolutePath();
- } catch (FileNotFoundException ignore) {
- //Ignore
- }
- }
- }
- setOutputFilepath(outpath);
- }
-
- /** The archive from which resources will be loaded */
- protected org.eclipse.jst.j2ee.commonarchivecore.internal.Archive archive;
- protected String resourcesPath;
-
- public org.eclipse.jst.j2ee.commonarchivecore.internal.Archive getArchive() {
- return archive;
- }
-
- public InputStream createInputStream(URI uri) throws IOException {
- InputStream in = null;
- if (resourcesPath != null)
- in = makeInputStream(uri);
- if (in != null)
- return in;
- return getArchive().getInputStream(uri.toString());
- }
-
- public void setArchive(org.eclipse.jst.j2ee.commonarchivecore.internal.Archive newArchive) {
- archive = newArchive;
- }
-
- /**
- * Gets the resourcesPath.
- *
- * @return Returns a String
- */
- public String getResourcesPath() {
- return resourcesPath;
- }
-
- /**
- * Sets the resourcesPath.
- *
- * @param resourcesPath
- * The resourcesPath to set
- */
- public void setResourcesPath(String resourcesPath) {
- this.resourcesPath = resourcesPath;
- setInputFilepath(resourcesPath);
- setOutputFilepath(resourcesPath);
- }
-
- public URI normalize(URI uri) {
- return getInternalURIMap().getURI(uri);
- }
-
- /**
- * The input file path consists of a string of directories or zip files separated by semi-colons
- * that are searched when an input stream is constructed.
- *
- * @return The file path
- */
- public String getInputFilepath() {
- return inFilepath;
- }
-
- /**
- * @param filepath
- * The file path
- */
- public void setInputFilepath(String filepath) {
- inFilepath = filepath;
- }
-
- /**
- * @return The output file path
- */
- public String getOutputFilepath() {
- return outFilepath;
- }
-
- /**
- * The output file path is the path name of a directory to prepend to relative file path names
- * when an output stream is constructed.
- *
- * @param filepath
- * The output file path
- */
- public void setOutputFilepath(String filepath) {
- outFilepath = filepath;
- }
-
- /**
- * Convert the URI to an input stream.
- *
- * @param uri
- * The uri
- */
- public InputStream makeInputStream(URI uri) throws IOException {
- URI converted = uri;
-
- if ((fileProtocol.equals(converted.scheme()) || converted.scheme() == null) && inFilepath != null) {
- return searchFilePath(converted.toString());
- }
- URL url = createURL(converted.toString());
- URLConnection urlConnection = url.openConnection();
- return urlConnection.getInputStream();
- }
-
- /**
- * Search the file path if the file portion of the URL is not absolute (does not begin with "/";
- * otherwise, attempt to create an input stream for the file.
- */
- protected InputStream searchFilePath(String filename) throws IOException {
- File file = new File(filename);
- if (file.isAbsolute())
- return new FileInputStream(file);
- StringTokenizer st = new StringTokenizer(inFilepath, ";"); //$NON-NLS-1$
- while (st.hasMoreTokens()) {
- String f = st.nextToken();
- ZipFile zf = null;
- try {
- zf = new ZipFile(f);
- } catch (Exception e) {
- //Ignore
- }
- InputStream in = null;
- if (zf != null) {
- in = searchZipFile(zf, filename);
- if (in == null)
- try {
- zf.close();
- } catch (Exception e) {
- //Ignore
- }
- } else {
- in = searchDirectory(f, filename);
- }
- if (in != null)
- return in;
- }
- return null;
- }
-
- /**
- * This method determines whether the file with the relative path name of filename exists in the
- * given directory. If not, it returns null; otherwise, it opens the file up and returns the
- * input source.
- *
- * @param dir
- * java.lang.String
- * @return java.io.InputSource
- */
- protected InputStream searchDirectory(String dir, String filename) throws IOException {
- if (dir.equals(".")) //$NON-NLS-1$
- dir = System.getProperty("user.dir"); //$NON-NLS-1$
- File f = new File(dir + System.getProperty("file.separator") + filename.replace('/', File.separatorChar)); //$NON-NLS-1$
- if (!f.exists())
- return null;
- return new FileInputStream(f);
- }
-
- /**
- * This method determines whether there is a ZipEntry whose name is filename in the given
- * ZipFile. If not, it returns null; otherwise, it returns an input source to read from the
- * ZipEntry.
- *
- * @param zip
- * java.util.zip.ZipFile
- * @return java.io.InputSource
- */
- protected InputStream searchZipFile(ZipFile zip, String filename) throws IOException {
- ZipEntry entry = zip.getEntry(filename);
- if (entry == null)
- return null;
- return zip.getInputStream(entry);
- }
-
- /**
- * Make a URL from the uri; if the attempt fails, attempt to append "file:" to the URI; if the
- * attempt still fails, attempt to replace the protocol with the file protocol.
- *
- * @param uri
- * The string uri
- */
- public URL createURL(String uri) throws MalformedURLException {
- MalformedURLException m = null;
- if (uri == null)
- return null;
- URL url = null;
- try {
- url = new URL(uri);
- } catch (Exception e) {
- m = (MalformedURLException) e;
- }
- if (url != null)
- return url;
- // Either treat the URI as a filepath (if there are no : or
- // a : in position 1) or replace the given protocol with the
- // file protocol.
- int index = uri.indexOf(":"); //$NON-NLS-1$
- if (index == -1 || index == 1)
- uri = fileProtocol + ":" + uri; //$NON-NLS-1$
- else if (index > 0)
- uri = fileProtocol + ":" + uri.substring(index + 1); //$NON-NLS-1$
- try {
- url = new URL(uri);
- } catch (Exception e) {
- //Ignore
- }
- if (url != null)
- return url;
- throw m;
- }
-
- /**
- * Convert the URI to an output stream.
- *
- * @param uri
- * The uri
- */
- public OutputStream createOutputStream(URI uri) throws IOException {
- URI converted = uri;
- if (platformProtocol.equals(converted.scheme())) {
- URL resolvedURL = resolvePlatform(new URL(converted.toString()));
- if (resolvedURL != null) {
- converted = URI.createFileURI(resolvedURL.getFile());
- }
- }
- if (fileProtocol.equals(converted.scheme()) || converted.scheme() == null) {
- return openFileOutputStream(converted);
- }
- URL url = createURL(converted.toString());
- URLConnection urlConnection = url.openConnection();
- urlConnection.setDoOutput(true);
- return urlConnection.getOutputStream();
- }
-
- protected URL resolvePlatform(URL url) throws IOException {
- // let WorkbenchURIConverter implement this one.
- return null;
- }
-
- /**
- * Open a file output stream for the given uri (the uri has file protocol). If an output file
- * path is specified and the file name is relative, prepend the output file path to the file
- * name. Make the directories that contain the file if they do not exist.
- */
- protected OutputStream openFileOutputStream(URI uri) throws IOException {
- File file = new File(uri.toFileString());
- if (!file.isAbsolute() && outFilepath != null) {
- file = new File(outFilepath + File.separator + uri.toFileString());
- }
- String parent = file.getParent();
- if (parent != null) {
- new File(parent).mkdirs();
- }
- OutputStream outputStream = new FileOutputStream(file);
- return outputStream;
- }
-}

Back to the top