You are viewing a plain text version of this content. The canonical link for it is here.
Posted to scm@geronimo.apache.org by jd...@apache.org on 2008/10/06 05:30:43 UTC

svn commit: r701924 - /geronimo/gshell/trunk/gshell-support/gshell-vfs/src/main/java/org/apache/geronimo/gshell/vfs/FileObjects.java

Author: jdillon
Date: Sun Oct  5 20:30:42 2008
New Revision: 701924

URL: http://svn.apache.org/viewvc?rev=701924&view=rev
Log:
Helper for FileObject stuff

Added:
    geronimo/gshell/trunk/gshell-support/gshell-vfs/src/main/java/org/apache/geronimo/gshell/vfs/FileObjects.java   (contents, props changed)
      - copied, changed from r701826, geronimo/gshell/trunk/gshell-support/gshell-vfs/src/main/java/org/apache/geronimo/gshell/vfs/FileSystemAccess.java

Copied: geronimo/gshell/trunk/gshell-support/gshell-vfs/src/main/java/org/apache/geronimo/gshell/vfs/FileObjects.java (from r701826, geronimo/gshell/trunk/gshell-support/gshell-vfs/src/main/java/org/apache/geronimo/gshell/vfs/FileSystemAccess.java)
URL: http://svn.apache.org/viewvc/geronimo/gshell/trunk/gshell-support/gshell-vfs/src/main/java/org/apache/geronimo/gshell/vfs/FileObjects.java?p2=geronimo/gshell/trunk/gshell-support/gshell-vfs/src/main/java/org/apache/geronimo/gshell/vfs/FileObjects.java&p1=geronimo/gshell/trunk/gshell-support/gshell-vfs/src/main/java/org/apache/geronimo/gshell/vfs/FileSystemAccess.java&r1=701826&r2=701924&rev=701924&view=diff
==============================================================================
--- geronimo/gshell/trunk/gshell-support/gshell-vfs/src/main/java/org/apache/geronimo/gshell/vfs/FileSystemAccess.java (original)
+++ geronimo/gshell/trunk/gshell-support/gshell-vfs/src/main/java/org/apache/geronimo/gshell/vfs/FileObjects.java Sun Oct  5 20:30:42 2008
@@ -21,28 +21,48 @@
 
 import org.apache.commons.vfs.FileObject;
 import org.apache.commons.vfs.FileSystemException;
-import org.apache.commons.vfs.FileSystemManager;
-import org.apache.geronimo.gshell.command.Variables;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
- * Provides access to VFS file systems.
+ * Utility methods for operating on {@link FileObject} instances.
  *
  * @version $Rev$ $Date$
  */
-public interface FileSystemAccess
+public class FileObjects
 {
-    String CWD = "vfs.cwd";
+    private static final Logger log = LoggerFactory.getLogger(FileObjects.class);
 
-    FileSystemManager getManager();
+    public static boolean hasChildren(final FileObject file) throws FileSystemException {
+        assert file != null;
 
-    FileObject getCurrentDirectory(Variables vars) throws FileSystemException;
-
-    FileObject getCurrentDirectory() throws FileSystemException;
-
-    void setCurrentDirectory(Variables vars, FileObject dir) throws FileSystemException;
-
-    FileObject resolveFile(FileObject baseFile, String name) throws FileSystemException;
-
-    FileObject resolveFile(String name) throws FileSystemException;
-
-}
+        if (file.getType().hasChildren()) {
+            FileObject[] children = file.getChildren();
+            
+            if (children != null && children.length != 0) {
+                return true;
+            }
+        }
+
+        return false;
+    }
+
+    public static void close(final FileObject file) {
+        if (file != null) {
+            try {
+                file.close();
+            }
+            catch (FileSystemException e) {
+                log.trace("Failed to close file: " + file, e);
+            }
+        }
+    }
+
+    public static void closeAll(final FileObject... files) {
+        if (files != null && files.length != 0) {
+            for (FileObject file : files) {
+                close(file);
+            }
+        }
+    }
+}
\ No newline at end of file

Propchange: geronimo/gshell/trunk/gshell-support/gshell-vfs/src/main/java/org/apache/geronimo/gshell/vfs/FileObjects.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: geronimo/gshell/trunk/gshell-support/gshell-vfs/src/main/java/org/apache/geronimo/gshell/vfs/FileObjects.java
------------------------------------------------------------------------------
    svn:keywords = Date Author Id Revision HeadURL

Propchange: geronimo/gshell/trunk/gshell-support/gshell-vfs/src/main/java/org/apache/geronimo/gshell/vfs/FileObjects.java
------------------------------------------------------------------------------
    svn:mergeinfo = 

Propchange: geronimo/gshell/trunk/gshell-support/gshell-vfs/src/main/java/org/apache/geronimo/gshell/vfs/FileObjects.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain