You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jena.apache.org by rv...@apache.org on 2014/11/10 11:53:07 UTC

[02/50] [abbrv] jena git commit: Add "clearAll" (use with care!)

Add "clearAll" (use with care!)

Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/f4ee4cae
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/f4ee4cae
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/f4ee4cae

Branch: refs/heads/eliminate-assignments
Commit: f4ee4caecbaef6740b97182cbe3e43cbf864e152
Parents: 75087f5
Author: Andy Seaborne <an...@apache.org>
Authored: Tue Nov 4 12:11:29 2014 +0000
Committer: Andy Seaborne <an...@apache.org>
Committed: Tue Nov 4 12:11:29 2014 +0000

----------------------------------------------------------------------
 .../java/org/apache/jena/atlas/lib/FileOps.java | 228 ++++++++++---------
 1 file changed, 120 insertions(+), 108 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/jena/blob/f4ee4cae/jena-arq/src/main/java/org/apache/jena/atlas/lib/FileOps.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/atlas/lib/FileOps.java b/jena-arq/src/main/java/org/apache/jena/atlas/lib/FileOps.java
index afae19d..98a8616 100644
--- a/jena-arq/src/main/java/org/apache/jena/atlas/lib/FileOps.java
+++ b/jena-arq/src/main/java/org/apache/jena/atlas/lib/FileOps.java
@@ -16,7 +16,7 @@
  * limitations under the License.
  */
 
-package org.apache.jena.atlas.lib;
+package org.apache.jena.atlas.lib ;
 
 import java.io.File ;
 import java.io.FileInputStream ;
@@ -28,55 +28,64 @@ import org.apache.jena.atlas.AtlasException ;
 import org.apache.jena.atlas.io.IO ;
 import org.apache.jena.atlas.logging.Log ;
 
-public class FileOps
-{
+/** A library of utility operations on files and the filing system */
+public class FileOps {
+    // Update implementations as standard library functions appear that meet the contract.
     private FileOps() {}
-    
-    /** Delete a file
+
+    /**
+     * Delete a file
      * 
      * @param filename
      */
-    public static void delete(String filename)
-    {
+    public static void delete(String filename) {
         delete(new File(filename), true) ;
     }
-    
+
     /* Delete a file - don't check it worked */
-    
-    public static void deleteSilent(String filename)
-    {
+
+    public static void deleteSilent(String filename) {
         delete(new File(filename), false) ;
     }
-    
-    public static void delete(File f, boolean reportExistsAfter)
-    {
+
+    public static void delete(File f, boolean reportExistsAfter) {
         try {
-            /* Note: On windows, deleting a file which has been memory
-             * mapped does not delete the file.
-             */ 
+            /*
+             * Note: On windows, deleting a file which has been memory mapped
+             * does not delete the file.
+             */
             f.delete() ;
             if ( reportExistsAfter && f.exists() )
-                Log.warn(FileOps.class, "delete: *** File still exists: "+f) ;
-        } catch (SecurityException ex)
-        {
-            Log.warn(FileOps.class, "delete: "+f+": Security exception; "+ex.getMessage()) ;
+                Log.warn(FileOps.class, "delete: *** File still exists: " + f) ;
+        }
+        catch (SecurityException ex) {
+            Log.warn(FileOps.class, "delete: " + f + ": Security exception; " + ex.getMessage()) ;
         }
-            
+
     }
-    
-    public static void clearDirectory(String dir)
-    {
+
+    /** Delete all files in a directory */
+    public static void clearDirectory(String dir) {
         File d = new File(dir) ;
-        for ( File f : d.listFiles())
-        {
+        for ( File f : d.listFiles() ) {
             if ( f.isFile() )
                 delete(f, false) ;
         }
     }
 
-    /** See if there are any files in this directory */ 
-    public static boolean existsAnyFiles(String dir)
-    {
+    /** Delete all files and directories (recursively) in a directory */
+    public static void clearAll(File d) {
+        for ( File f : d.listFiles() ) {
+            if ( ".".equals(f.getName()) || "..".equals(f.getName()) )
+                continue ;
+            if ( f.isDirectory() )
+                clearAll(f) ;
+            f.delete() ;
+        }
+    }
+
+    /** See if there are any files in this directory */
+    public static boolean existsAnyFiles(String dir) {
         File d = new File(dir) ;
         File[] entries = d.listFiles() ;
         if ( entries == null )
@@ -85,135 +94,138 @@ public class FileOps
         return entries.length > 0 ;
     }
 
-    public static boolean exists(String path)
-    {
+    /** Test for existence */
+    public static boolean exists(String path) {
         File f = new File(path) ;
-        return f.exists() ; 
+        return f.exists() ;
     }
-    
-    public static boolean isEmpty(String filename)
-    {
+
+    /** Test for an empty file */
+    public static boolean isEmpty(String filename) {
         File f = new File(filename) ;
-        if ( f.exists() ) return true ;
-        if ( f.isFile() ) return f.length() == 0 ;
+        if ( f.exists() )
+            return true ;
+        if ( f.isFile() )
+            return f.length() == 0 ;
         throw new AtlasException("Not a file") ;
     }
 
-    public static void ensureDir(String dirname)
-    {
+    /** Ensure a directory exists */ 
+    public static void ensureDir(String dirname) {
         File dir = new File(dirname) ;
-        if ( ! dir.exists() )
+        if ( !dir.exists() )
             dir.mkdirs() ;
     }
-    
-    /** Split a file name into path, basename and extension.  Nulls returned if don't make sense. */
-    public static Tuple<String> splitDirBaseExt(String filename)
-    {
+
+    /**
+     * Split a file name into path, basename and extension. Nulls returned if
+     * don't make sense.
+     */
+    public static Tuple<String> splitDirBaseExt(String filename) {
         String path = null ;
         String basename = filename ;
         String ext = null ;
-        
+
         int j = filename.lastIndexOf('/') ;
         if ( j < 0 )
             j = filename.lastIndexOf('\\') ;
 
-        if ( j >= 0 )
-        {
+        if ( j >= 0 ) {
             path = filename.substring(0, j) ;
-            basename = filename.substring(j+1) ;
+            basename = filename.substring(j + 1) ;
         }
-        
+
         int i = basename.lastIndexOf('.') ;
-        
-        if ( i > -1 )
-        {
-            ext = basename.substring(i+1) ;
+
+        if ( i > -1 ) {
+            ext = basename.substring(i + 1) ;
             basename = basename.substring(0, i) ;
         }
-        
+
         return Tuple.createTuple(path, basename, ext) ;
     }
-    
-    /** Split a file name into path and filename.  Nulls returned if don't make sense. */
-    public static Tuple<String> splitDirFile(String filename)
-    {
+
+    /**
+     * Split a file name into path and filename. Nulls returned if don't make
+     * sense.
+     */
+    public static Tuple<String> splitDirFile(String filename) {
         String path = null ;
         String fn = filename ;
-        
+
         int j = filename.lastIndexOf('/') ;
         if ( j < 0 )
             j = filename.lastIndexOf('\\') ;
-        
-        if ( j >= 0 )
-        {
+
+        if ( j >= 0 ) {
             path = filename.substring(0, j) ;
-            fn = filename.substring(j+1) ;
+            fn = filename.substring(j + 1) ;
         }
         return Tuple.createTuple(path, fn) ;
     }
 
     /** Return the basename (no path, no extension) */
-    public static String basename(String filename)
-    {
+    public static String basename(String filename) {
         int j = filename.lastIndexOf('/') ;
         if ( j < 0 )
             j = filename.lastIndexOf('\\') ;
 
-        String fn = ( j >= 0 ) ? filename.substring(j+1) : filename ;
+        String fn = (j >= 0) ? filename.substring(j + 1) : filename ;
         int i = fn.lastIndexOf('.') ;
-        
+
         if ( i > -1 )
             return fn.substring(0, i) ;
         return fn ;
     }
-    
+
     /** Return the extension (or "") */
     public static String extension(String filename) {
-        int iSlash = filename.lastIndexOf( '/' );      
-        int iBack = filename.lastIndexOf( '\\' );
-        int iExt = filename.lastIndexOf( '.' ); 
-        if (iBack > iSlash) iSlash = iBack;
-        return iExt > iSlash ? filename.substring( iExt+1 ).toLowerCase() : "";
-    }
-    
-    public static String fullPath(String filename)
-    {
-        File f = new File(filename);
-        return f.getAbsolutePath();
-    }
-    
-    public static String fullDirectoryPath(String filename)
-    {
-        File f = new File(filename);
-        if (f.isDirectory()) {
-            return f.getAbsolutePath();
-        } else if (f.getParentFile() != null) {
-            return f.getParentFile().getAbsolutePath();
+        int iSlash = filename.lastIndexOf('/') ;
+        int iBack = filename.lastIndexOf('\\') ;
+        int iExt = filename.lastIndexOf('.') ;
+        if ( iBack > iSlash )
+            iSlash = iBack ;
+        return iExt > iSlash ? filename.substring(iExt + 1).toLowerCase() : "" ;
+    }
+
+    public static String fullPath(String filename) {
+        File f = new File(filename) ;
+        return f.getAbsolutePath() ;
+    }
+
+    public static String fullDirectoryPath(String filename) {
+        File f = new File(filename) ;
+        if ( f.isDirectory() ) {
+            return f.getAbsolutePath() ;
+        } else if ( f.getParentFile() != null ) {
+            return f.getParentFile().getAbsolutePath() ;
         } else {
-            return f.getAbsolutePath();
+            return f.getAbsolutePath() ;
         }
     }
-    
+
     /** Copy a file */
     public static void copyFile(File source, File dest) {
         try {
             @SuppressWarnings("resource")
-            FileChannel sourceChannel = new FileInputStream(source).getChannel();
+            FileChannel sourceChannel = new FileInputStream(source).getChannel() ;
             @SuppressWarnings("resource")
-            FileChannel destChannel = new FileOutputStream(dest).getChannel();
-            destChannel.transferFrom(sourceChannel, 0, sourceChannel.size());
-            sourceChannel.close();
-            destChannel.close();
-        } catch (IOException ex) { IO.exception(ex); }
-    }
-
-    
-//    public static String getExt(String filename)
-//    {
-//        int i = filename.lastIndexOf('.') ;
-//        int j = filename.lastIndexOf('/') ;
-//        if ( i > j )
-//            return filename.substring(i+1) ;
-//        return null ;
-//    }
+            FileChannel destChannel = new FileOutputStream(dest).getChannel() ;
+            destChannel.transferFrom(sourceChannel, 0, sourceChannel.size()) ;
+            sourceChannel.close() ;
+            destChannel.close() ;
+        }
+        catch (IOException ex) {
+            IO.exception(ex) ;
+        }
+    }
+
+    // public static String getExt(String filename)
+    // {
+    // int i = filename.lastIndexOf('.') ;
+    // int j = filename.lastIndexOf('/') ;
+    // if ( i > j )
+    // return filename.substring(i+1) ;
+    // return null ;
+    // }
 }