Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'jpa/plugins/org.eclipse.jpt.jpa.gen/src/org/eclipse/jpt/jpa/gen/internal/util/FileUtil.java')
-rw-r--r--jpa/plugins/org.eclipse.jpt.jpa.gen/src/org/eclipse/jpt/jpa/gen/internal/util/FileUtil.java218
1 files changed, 0 insertions, 218 deletions
diff --git a/jpa/plugins/org.eclipse.jpt.jpa.gen/src/org/eclipse/jpt/jpa/gen/internal/util/FileUtil.java b/jpa/plugins/org.eclipse.jpt.jpa.gen/src/org/eclipse/jpt/jpa/gen/internal/util/FileUtil.java
deleted file mode 100644
index 8cab9042d0..0000000000
--- a/jpa/plugins/org.eclipse.jpt.jpa.gen/src/org/eclipse/jpt/jpa/gen/internal/util/FileUtil.java
+++ /dev/null
@@ -1,218 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. 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:
- * Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.jpa.gen.internal.util;
-
-import java.io.File;
-import java.io.FileInputStream;
-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.util.jar.JarInputStream;
-import java.util.jar.Manifest;
-import java.util.zip.ZipEntry;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.core.runtime.Platform;
-
-import org.eclipse.jpt.jpa.gen.internal.JptGenMessages;
-
-import org.eclipse.osgi.service.datalocation.Location;
-import org.eclipse.osgi.util.NLS;
-import org.osgi.framework.Bundle;
-
-/**
- * Collections of utility methods handling files.
- *
- */
-public class FileUtil
-{
-
- public static void deleteFolder(File folder)
- throws IOException
- {
- File[] files = folder.listFiles();
- //empty the folder first (java.io.file.delete requires it empty)
- if (files != null) {
- for (int i = 0; i < files.length; ++i) {
- File f = files[i];
- if (f.isDirectory())
- deleteFolder(f);
- else
- deletePath(f);
- }
- }
- deletePath(folder);
- }
-
- public static void deletePath(File f)
- throws IOException
- {
- if (!f.delete()) {
- String msgId = f.isDirectory() ? JptGenMessages.Delete_Folder_Error : JptGenMessages.Delete_File_Error;
- throw new IOException( NLS.bind(msgId,f.getPath()));
- }
- }
-
- public static byte[] readFile(File src)
- throws IOException
- {
- java.io.FileInputStream fin = new java.io.FileInputStream(src);
- try {
- long fileLen = src.length();
- if (fileLen > Integer.MAX_VALUE)
- throw new IOException("file length too big to be read by FileUtil.readFile: " + fileLen);
-
- byte[] bytes = new byte[(int)fileLen];
- fin.read(bytes);
- return bytes;
- }
- finally {
- fin.close();
- }
- }
-
- public static void writeFile(File dest, byte[] bytes)
- throws IOException
- {
- if (dest.exists() && !dest.canWrite())
- throw new IOException( NLS.bind(JptGenMessages.File_Read_Only_Error, dest.getPath())); //throw with a clear error because otherwise FileOutputStream throws FileNotFoundException!
- java.io.FileOutputStream fout = new java.io.FileOutputStream(dest.getPath(), false/*append*/);
- try {
- fout.write(bytes);
- }
- finally {
- fout.flush();
- fout.close();
- }
- }
-
- /**
- * Returns the url for a file.
- * This basically the same as file.toUrl() but without the non-sense exception.
- */
- public static URL getFileUrl(File file) {
- try {
- return file.toURI().toURL();
- } catch (MalformedURLException e) {
- return null; //should not happen as file.toURL() does not really throw an exception
- }
- }
-
- public static void setFileContent(File file, java.io.InputStream contents) throws java.io.IOException {
- Path path = new Path(file.getAbsolutePath());
- try {
- IFile iFile = ResourcesPlugin.getWorkspace().getRoot().getFileForLocation(path);
- if (iFile == null) {
- throw new IOException("The path " + file + " does not seem to be a valid file path.");
- }
- iFile.setContents(contents, true/*force*/, true/*keepHistory*/, null/*monitor*/);
- } catch (CoreException ex) {
- throw new IOException(ex.getMessage());
- }
- }
-
- /**
- * Extract the contents of a Jar archive to the specified destination.
- */
- public static void unjar(InputStream in, File dest) throws IOException {
- if (!dest.exists()) {
- dest.mkdirs();
- }
- if (!dest.isDirectory()) {
- throw new IOException("Destination must be a directory.");//$NON-NLS-1$
- }
- JarInputStream jin = new JarInputStream(in);
- byte[] buffer = new byte[1024];
-
- ZipEntry entry = jin.getNextEntry();
- while (entry != null) {
- String fileName = entry.getName();
- if (fileName.charAt(fileName.length() - 1) == '/') {
- fileName = fileName.substring(0, fileName.length() - 1);
- }
- if (fileName.charAt(0) == '/') {
- fileName = fileName.substring(1);
- }
- if (File.separatorChar != '/') {
- fileName = fileName.replace('/', File.separatorChar);
- }
- File file = new File(dest, fileName);
- if (entry.isDirectory()) {
- // make sure the directory exists
- file.mkdirs();
- jin.closeEntry();
- } else {
- // make sure the directory exists
- File parent = file.getParentFile();
- if (parent != null && !parent.exists()) {
- parent.mkdirs();
- }
-
- // dump the file
- OutputStream out = new FileOutputStream(file);
- int len = 0;
- while ((len = jin.read(buffer, 0, buffer.length)) != -1) {
- out.write(buffer, 0, len);
- }
- out.flush();
- out.close();
- jin.closeEntry();
- file.setLastModified(entry.getTime());
- }
- entry = jin.getNextEntry();
- }
- /* Explicitly write out the META-INF/MANIFEST.MF so that any headers such
- as the Class-Path are seen for the unpackaged jar
- */
- Manifest mf = jin.getManifest();
- if (mf != null) {
- File file = new File(dest, "META-INF/MANIFEST.MF");//$NON-NLS-1$
- File parent = file.getParentFile();
- if (parent.exists() == false) {
- parent.mkdirs();
- }
- OutputStream out = new FileOutputStream(file);
- mf.write(out);
- out.flush();
- out.close();
- }
- jin.close();
- }
-
- //Used to Unzip the a specific folder packed inside a plug-in bundle to the plug-in state location
- public static File extractFilesFromBundle( URL url, Bundle bundle, String path ) throws Exception {
- URL jarUrl = UrlUtil.getJarFileUrl(url);
- File jarFile = new File(jarUrl.getFile() );
- Location configLocation = Platform.getConfigurationLocation();
- String pluginId = bundle.getSymbolicName();
- File configFolder = new File( configLocation.getURL().getFile(), pluginId);
- File templDir = new File( configFolder, path );
- if( !templDir.exists() ){
- FileUtil.unjar( new FileInputStream( jarFile ), configFolder );
- //Delete un-related files and folders
- File[] files = configFolder.listFiles();
- for( File f : files ){
- if( f.isFile() )
- f.delete();
- else if( templDir.getPath().indexOf( f.getPath() ) !=0 ){
- FileUtil.deleteFolder(f);
- }
- }
- }
- return templDir ;
- }
-}
-

Back to the top