X-Git-Url: http://secure.phpeclipse.com diff --git a/net.sourceforge.phpeclipse.tests/src/net/sourceforge/phpdt/core/tests/util/Util.java b/net.sourceforge.phpeclipse.tests/src/net/sourceforge/phpdt/core/tests/util/Util.java deleted file mode 100644 index 5316029..0000000 --- a/net.sourceforge.phpeclipse.tests/src/net/sourceforge/phpdt/core/tests/util/Util.java +++ /dev/null @@ -1,504 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2000, 2004 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Common Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/cpl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package net.sourceforge.phpdt.core.tests.util; - -import java.io.File; -import java.io.FileInputStream; -import java.io.FileNotFoundException; -import java.io.FileOutputStream; -import java.io.IOException; -import java.io.PrintWriter; -import java.net.ServerSocket; - -import net.sourceforge.phpdt.internal.compiler.batch.CompilationUnit; - -public class Util { - public static String OUTPUT_DIRECTORY = "comptest"; - - public static CompilationUnit[] compilationUnits(String[] testFiles) { - int length = testFiles.length / 2; - CompilationUnit[] result = new CompilationUnit[length]; - int index = 0; - for (int i = 0; i < length; i++) { - result[i] = new CompilationUnit(testFiles[index + 1].toCharArray(), - testFiles[index], null); - index += 2; - } - return result; - } - - public static String[] concatWithClassLibs(String classpath, boolean inFront) { - String[] classLibs = getJavaClassLibs(); - final int length = classLibs.length; - String[] defaultClassPaths = new String[length + 1]; - if (inFront) { - System.arraycopy(classLibs, 0, defaultClassPaths, 1, length); - defaultClassPaths[0] = classpath; - } else { - System.arraycopy(classLibs, 0, defaultClassPaths, 0, length); - defaultClassPaths[length] = classpath; - } - return defaultClassPaths; - } - - public static String convertToIndependantLineDelimiter(String source) { - StringBuffer buffer = new StringBuffer(); - for (int i = 0, length = source.length(); i < length; i++) { - char car = source.charAt(i); - if (car == '\r') { - buffer.append('\n'); - if (i < length - 1 && source.charAt(i + 1) == '\n') { - i++; // skip \n after \r - } - } else { - buffer.append(car); - } - } - return buffer.toString(); - } - - /** - * Copy the given source (a file or a directory that must exists) to the - * given destination (a directory that must exists). - */ - public static void copy(String sourcePath, String destPath) { - sourcePath = toNativePath(sourcePath); - destPath = toNativePath(destPath); - File source = new File(sourcePath); - if (!source.exists()) - return; - File dest = new File(destPath); - if (!dest.exists()) - return; - if (source.isDirectory()) { - String[] files = source.list(); - if (files != null) { - for (int i = 0; i < files.length; i++) { - String file = files[i]; - File sourceFile = new File(source, file); - if (sourceFile.isDirectory()) { - File destSubDir = new File(dest, file); - destSubDir.mkdir(); - copy(sourceFile.getPath(), destSubDir.getPath()); - } else { - copy(sourceFile.getPath(), dest.getPath()); - } - } - } - } else { - FileInputStream in = null; - FileOutputStream out = null; - try { - in = new FileInputStream(source); - File destFile = new File(dest, source.getName()); - if (destFile.exists() && !destFile.delete()) { - throw new IOException(destFile + " is in use"); - } - out = new FileOutputStream(destFile); - int bufferLength = 1024; - byte[] buffer = new byte[bufferLength]; - int read = 0; - while (read != -1) { - read = in.read(buffer, 0, bufferLength); - if (read != -1) { - out.write(buffer, 0, read); - } - } - } catch (IOException e) { - throw new Error(e.toString()); - } finally { - if (in != null) { - try { - in.close(); - } catch (IOException e) { - } - } - if (out != null) { - try { - out.close(); - } catch (IOException e) { - } - } - } - } - } - - // public static void createJar(String[] pathsAndContents, Map options, - // String - // jarPath) throws IOException { - // String classesPath = getOutputDirectory() + File.separator + "classes"; - // File classesDir = new File(classesPath); - // flushDirectoryContent(classesDir); - // compile(pathsAndContents, options, classesPath); - // zip(classesDir, jarPath); - // } - /** - * Generate a display string from the given String. - * - * @param indent - * number of tabs are added at the begining of each line. - * - * Example of use: - * [org.eclipse.jdt.core.tests.util.Util.displayString("abc\ndef\tghi")] - */ - public static String displayString(String inputString) { - return displayString(inputString, 0); - } - - /** - * Generate a display string from the given String. It converts: - * - * This method doesn't convert \r\n to \n. - *

- * Example of use: - *

  • - * - *
    -	 *   input string = "abc\ndef\tghi",
    -	 *   indent = 3
    -	 *   result = "\"\t\t\tabc\\n" +
    -	 *   			"\t\t\tdef\tghi\""
    -	 * 
    - * - *
  • - *
  • - * - *
    -	 *   input string = "abc\ndef\tghi\n",
    -	 *   indent = 3
    -	 *   result = "\"\t\t\tabc\\n" +
    -	 *   			"\t\t\tdef\tghi\\n\""
    -	 * 
    - * - *
  • - *
  • - * - *
    -	 *   input string = "abc\r\ndef\tghi\r\n",
    -	 *   indent = 3
    -	 *   result = "\"\t\t\tabc\\r\\n" +
    -	 *   			"\t\t\tdef\tghi\\r\\n\""
    -	 * 
    - * - *
  • - * - *

    - * - * @param inputString - * the given input string - * @param indent - * number of tabs are added at the begining of each line. - * - * @return the displayed string - */ - public static String displayString(String inputString, int indent) { - int length = inputString.length(); - StringBuffer buffer = new StringBuffer(length); - java.util.StringTokenizer tokenizer = new java.util.StringTokenizer( - inputString, "\n\r", true); - for (int i = 0; i < indent; i++) - buffer.append("\t"); - buffer.append("\""); - while (tokenizer.hasMoreTokens()) { - - String token = tokenizer.nextToken(); - if (token.equals("\r")) { - buffer.append("\\r"); - if (tokenizer.hasMoreTokens()) { - token = tokenizer.nextToken(); - if (token.equals("\n")) { - buffer.append("\\n"); - if (tokenizer.hasMoreTokens()) { - buffer.append("\" + \n"); - for (int i = 0; i < indent; i++) - buffer.append("\t"); - buffer.append("\""); - } - continue; - } else { - buffer.append("\" + \n"); - for (int i = 0; i < indent; i++) - buffer.append("\t"); - buffer.append("\""); - } - } else { - continue; - } - } else if (token.equals("\n")) { - buffer.append("\\n"); - if (tokenizer.hasMoreTokens()) { - buffer.append("\" + \n"); - for (int i = 0; i < indent; i++) - buffer.append("\t"); - buffer.append("\""); - } - continue; - } - - StringBuffer tokenBuffer = new StringBuffer(); - for (int i = 0; i < token.length(); i++) { - char c = token.charAt(i); - switch (c) { - case '\r': - tokenBuffer.append("\\r"); - break; - case '\n': - tokenBuffer.append("\\n"); - break; - case '\b': - tokenBuffer.append("\\b"); - break; - case '\t': - tokenBuffer.append("\t"); - break; - case '\f': - tokenBuffer.append("\\f"); - break; - case '\"': - tokenBuffer.append("\\\""); - break; - case '\'': - tokenBuffer.append("\\'"); - break; - case '\\': - tokenBuffer.append("\\\\"); - break; - default: - tokenBuffer.append(c); - } - } - buffer.append(tokenBuffer.toString()); - } - buffer.append("\""); - return buffer.toString(); - } - - /** - * Reads the content of the given source file and converts it to a display - * string. - * - * Example of use: - * [org.eclipse.jdt.core.tests.util.Util.fileContentToDisplayString("c:/temp/X.java", - * 0)] - */ - public static String fileContentToDisplayString(String sourceFilePath, - int indent, boolean independantLineDelimiter) { - File sourceFile = new File(sourceFilePath); - if (!sourceFile.exists()) { - System.out.println("File " + sourceFilePath + " does not exists."); - return null; - } - if (!sourceFile.isFile()) { - System.out.println(sourceFilePath + " is not a file."); - return null; - } - StringBuffer sourceContentBuffer = new StringBuffer(); - FileInputStream input = null; - try { - input = new FileInputStream(sourceFile); - } catch (FileNotFoundException e) { - return null; - } - try { - int read; - do { - read = input.read(); - if (read != -1) { - sourceContentBuffer.append((char) read); - } - } while (read != -1); - input.close(); - } catch (IOException e) { - e.printStackTrace(); - return null; - } finally { - try { - input.close(); - } catch (IOException e2) { - } - } - String sourceString = sourceContentBuffer.toString(); - if (independantLineDelimiter) { - sourceString = convertToIndependantLineDelimiter(sourceString); - } - return displayString(sourceString, indent); - } - - /** - * Reads the content of the given source file, converts it to a display - * string. If the destination file path is not null, writes the result to - * this file. Otherwise writes it to the console. - * - * Example of use: - * [org.eclipse.jdt.core.tests.util.Util.fileContentToDisplayString("c:/temp/X.java", - * 0, null)] - */ - public static void fileContentToDisplayString(String sourceFilePath, - int indent, String destinationFilePath, - boolean independantLineDelimiter) { - String displayString = fileContentToDisplayString(sourceFilePath, - indent, independantLineDelimiter); - if (destinationFilePath == null) { - System.out.println(displayString); - return; - } - writeToFile(displayString, destinationFilePath); - } - - /** - * Flush content of a given directory (leaving it empty), no-op if not a - * directory. - */ - public static void flushDirectoryContent(File dir) { - if (dir.isDirectory()) { - String[] files = dir.list(); - if (files == null) - return; - for (int i = 0, max = files.length; i < max; i++) { - File current = new File(dir, files[i]); - if (current.isDirectory()) { - flushDirectoryContent(current); - } - current.delete(); - } - } - } - - /** - * Search the user hard-drive for a Java class library. Returns null if none - * could be found. - * - * Example of use: [org.eclipse.jdt.core.tests.util.Util.getJavaClassLib()] - */ - public static String[] getJavaClassLibs() { - String jreDir = getJREDirectory(); - if (jreDir == null) { - return new String[] {}; - } else { - final String vmName = System.getProperty("java.vm.name"); - if ("J9".equals(vmName)) { - return new String[] { toNativePath(jreDir - + "/lib/jclMax/classes.zip") }; - } else { - File file = new File(jreDir + "/lib/rt.jar"); - if (file.exists()) { - return new String[] { toNativePath(jreDir + "/lib/rt.jar") }; - } else { - return new String[] { - toNativePath(jreDir + "/lib/core.jar"), - toNativePath(jreDir + "/lib/security.jar"), - toNativePath(jreDir + "/lib/graphics.jar") }; - } - } - } - } - - public static String getJavaClassLibsAsString() { - String[] classLibs = getJavaClassLibs(); - StringBuffer buffer = new StringBuffer(); - for (int i = 0, max = classLibs.length; i < max; i++) { - buffer.append(classLibs[i]).append(File.pathSeparatorChar); - - } - return buffer.toString(); - } - - /** - * Returns the JRE directory this tests are running on. Returns null if none - * could be found. - * - * Example of use: [org.eclipse.jdt.core.tests.util.Util.getJREDirectory()] - */ - public static String getJREDirectory() { - return System.getProperty("java.home"); - } - - /** - * Search the user hard-drive for a possible output directory. Returns null - * if none could be found. - * - * Example of use: - * [org.eclipse.jdt.core.tests.util.Util.getOutputDirectory()] - */ - public static String getOutputDirectory() { - String container = System.getProperty("user.home"); - if (container == null) { - return null; - } else { - return toNativePath(container) + File.separator + OUTPUT_DIRECTORY; - } - } - - /** - * Returns the next available port number on the local host. - */ - public static int getFreePort() { - ServerSocket socket = null; - try { - socket = new ServerSocket(0); - return socket.getLocalPort(); - } catch (IOException e) { - // ignore - } finally { - if (socket != null) { - try { - socket.close(); - } catch (IOException e) { - // ignore - } - } - } - return -1; - } - - /** - * Makes the given path a path using native path separators as returned by - * File.getPath() and trimming any extra slash. - */ - public static String toNativePath(String path) { - String nativePath = path.replace('\\', File.separatorChar).replace('/', - File.separatorChar); - return nativePath.endsWith("/") || nativePath.endsWith("\\") ? nativePath - .substring(0, nativePath.length() - 1) - : nativePath; - } - - public static void writeToFile(String contents, String destinationFilePath) { - File destFile = new File(destinationFilePath); - FileOutputStream output = null; - try { - output = new FileOutputStream(destFile); - PrintWriter writer = new PrintWriter(output); - writer.print(contents); - writer.flush(); - } catch (IOException e) { - e.printStackTrace(); - return; - } finally { - if (output != null) { - try { - output.close(); - } catch (IOException e2) { - } - } - } - } -}