[jboss-cvs] jbosside/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/util ...
Robert Stryker
rob.stryker at jboss.com
Mon Mar 19 18:49:34 EDT 2007
User: rawb
Date: 07/03/19 18:49:34
Modified: as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/util
FileUtil.java
Log:
Integration with packages
Removal of path publisher for individual files
Changes to event log label providers
Revision Changes Path
1.6 +46 -20 jbosside/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/util/FileUtil.java
(In the diff below, changes in quantity of whitespace are not shown.)
Index: FileUtil.java
===================================================================
RCS file: /cvsroot/jboss/jbosside/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/util/FileUtil.java,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -b -r1.5 -r1.6
--- FileUtil.java 9 Mar 2007 01:52:28 -0000 1.5
+++ FileUtil.java 19 Mar 2007 22:49:34 -0000 1.6
@@ -25,54 +25,78 @@
import java.io.FileInputStream;
import java.io.FileOutputStream;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.jboss.ide.eclipse.as.core.JBossServerCorePlugin;
-
public class FileUtil {
+ public static interface IFileUtilListener {
+ public void fileDeleted(File file, boolean result, Exception e);
+ public void folderDeleted(File file, boolean result, Exception e);
+ public void fileCoppied(File source, File dest, boolean result, Exception e);
+ }
+
+
// Delete the file. If it's a folder, delete all children.
// Also, if parent is now empty, delete that as well.
- public static boolean safeDelete(File file) {
+ public static void safeDelete(File file) {
+ safeDelete(file, null);
+ }
+ public static void safeDelete(File file, IFileUtilListener listener) {
boolean ret = true;
if( file.isDirectory() ) {
File[] children = file.listFiles();
for( int i = 0; i < children.length; i++ ) {
- ret = ret && safeDelete(children[i]);
+ safeDelete(children[i], listener);
+ }
+ try {
+ boolean tmp = file.delete();
+ if( listener != null ) listener.folderDeleted(file, tmp, null);
+ } catch( SecurityException sex) {
+ if( listener != null ) listener.folderDeleted(file, false, sex);
+ }
}
+
+ // files only
+ try {
+ boolean tmp = file.delete();
+ if( listener != null ) listener.fileDeleted(file, tmp, null);
+ } catch( SecurityException sex) {
+ if( listener != null ) listener.fileDeleted(file, false, sex);
}
- ret = ret && file.delete();
- return ret;
}
- public static boolean completeDelete(File file) {
- boolean ret = safeDelete(file);
+ public static void completeDelete(File file) {
+ completeDelete(file, null);
+ }
+ public static void completeDelete(File file, IFileUtilListener listener) {
+ safeDelete(file, listener);
//delete all empty parent folders
while(file.getParentFile().listFiles().length == 0 ) {
file = file.getParentFile();
- ret = ret && file.delete();
+ try {
+ boolean tmp = file.delete();
+ if( listener != null ) listener.folderDeleted(file, tmp, null);
+ } catch( SecurityException sex ) {
+ listener.folderDeleted(file, false, sex);
+ }
}
- return ret;
}
public static boolean fileSafeCopy(File src, File dest) {
+ return fileSafeCopy(src, dest, null);
+ }
+ public static boolean fileSafeCopy(File src, File dest, IFileUtilListener listener) {
File parent = dest.getParentFile();
parent.mkdirs();
- if (src.isDirectory())
- {
+ if (src.isDirectory()) {
File[] subFiles = src.listFiles();
boolean copied = true;
- for (int i = 0; i < subFiles.length; i++)
- {
+ for (int i = 0; i < subFiles.length; i++) {
File newDest = new File(dest, subFiles[i].getName());
-
- copied = copied && fileSafeCopy(subFiles[i], newDest);
+ copied = copied && fileSafeCopy(subFiles[i], newDest, listener);
}
return copied;
- }
- else {
+ } else {
try {
FileInputStream fis = new FileInputStream(src);
FileOutputStream fos = new FileOutputStream(dest);
@@ -83,8 +107,10 @@
}
fis.close();
fos.close();
+ if( listener != null ) listener.fileCoppied(src, dest, true, null);
return true;
} catch( Exception e ) {
+ if( listener != null ) listener.fileCoppied(src, dest, false, e);
return false;
}
}
More information about the jboss-cvs-commits
mailing list