Author: ozeigermann
Date: Sat Jul 28 14:35:17 2007
New Revision: 560621

URL: http://svn.apache.org/viewvc?view=rev&rev=560621
Log:
Further type and exception cleaning

Modified:
    
jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/file/FileResourceManager.java

Modified: 
jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/file/FileResourceManager.java
URL: 
http://svn.apache.org/viewvc/jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/file/FileResourceManager.java?view=diff&rev=560621&r1=560620&r2=560621
==============================================================================
--- 
jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/file/FileResourceManager.java
 (original)
+++ 
jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/file/FileResourceManager.java
 Sat Jul 28 14:35:17 2007
@@ -32,7 +32,7 @@
 import org.apache.commons.transaction.resource.StreamableResource;
 import org.apache.commons.transaction.util.FileHelper;
 
-public class FileResourceManager implements 
ResourceManager<StreamableResource> {
+public class FileResourceManager implements 
ResourceManager<FileResourceManager.FileResource> {
 
     private Log logger = LogFactory.getLog(getClass());
 
@@ -42,7 +42,7 @@
         this.rootPath = rootPath;
     }
 
-    public StreamableResource getResource(String path) throws 
ResourceException {
+    public FileResourceManager.FileResource getResource(String path) throws 
ResourceException {
         return new FileResource(path);
     }
 
@@ -52,9 +52,12 @@
 
     protected static class FileResource implements StreamableResource {
 
-        private File file;
+        private final File file;
 
-        protected static File getFileForResource(StreamableResource resource) 
throws ResourceException {
+        private final String canonicalPath;
+
+        protected static File getFileForResource(StreamableResource resource)
+                throws ResourceException {
             if (!(resource instanceof FileResource)) {
                 throw new ResourceException(
                         "Destination must be of created by FileResourceManager 
only!");
@@ -62,18 +65,29 @@
             }
             return ((FileResource) resource).getFile();
         }
-        
-        public FileResource(String path) {
-            this.file = new File(path);
+
+        public FileResource(String path) throws ResourceException {
+            this.file = new File(path.trim());
+            try {
+                this.canonicalPath = file.getCanonicalPath();
+            } catch (IOException e) {
+                throw new ResourceException(e);
+            }
         }
 
-        public FileResource(File file) {
+        public FileResource(File file) throws ResourceException {
             this.file = file;
+            try {
+                this.canonicalPath = file.getCanonicalPath();
+            } catch (IOException e) {
+                throw new ResourceException(e);
+            }
         }
 
         public void createAsDirectory() throws ResourceException {
             if (!file.mkdirs()) {
-                throw new 
ResourceException(ResourceException.Code.COULD_NOT_CREATE, "Could not create 
directory");
+                throw new 
ResourceException(ResourceException.Code.COULD_NOT_CREATE,
+                        "Could not create directory");
             }
 
         }
@@ -81,7 +95,8 @@
         public void createAsFile() throws ResourceException {
             try {
                 if (!file.createNewFile()) {
-                    throw new 
ResourceException(ResourceException.Code.COULD_NOT_CREATE, "Could not create 
file");
+                    throw new 
ResourceException(ResourceException.Code.COULD_NOT_CREATE,
+                            "Could not create file");
                 }
             } catch (IOException e) {
                 throw new ResourceException(e);
@@ -92,7 +107,8 @@
             if (exists()) {
                 if (!isDirectory()) {
                     if (!getFile().delete())
-                        throw new 
ResourceException(ResourceException.Code.COULD_NOT_DELETE, "Could not create 
file");
+                        throw new 
ResourceException(ResourceException.Code.COULD_NOT_DELETE,
+                                "Could not create file");
                 } else {
                     FileHelper.removeRecursive(getFile());
                 }
@@ -103,8 +119,8 @@
             return file.exists();
         }
 
-        public List<StreamableResource> getChildren() throws ResourceException 
{
-            List<StreamableResource> result = new 
ArrayList<StreamableResource>();
+        public List<? extends FileResource>  getChildren() throws 
ResourceException {
+            List<FileResource> result = new ArrayList<FileResource>();
             File[] files = file.listFiles();
             for (File file : files) {
                 result.add(new FileResource(file));
@@ -112,7 +128,7 @@
             return result;
         }
 
-        public StreamableResource getParent() throws ResourceException {
+        public FileResource getParent() throws ResourceException {
             // FIXME: Is reasonable, but would require reference to enclosing
             // class
             /*
@@ -122,12 +138,8 @@
             return new FileResource(parent);
         }
 
-        public String getPath() throws ResourceException {
-            try {
-                return file.getCanonicalPath();
-            } catch (IOException e) {
-                throw new ResourceException(e);
-            }
+        public String getPath() {
+            return canonicalPath;
         }
 
         public boolean isDirectory() {
@@ -139,10 +151,10 @@
         }
 
         public void move(StreamableResource destination) throws 
ResourceException {
-            if (!prepareMoveorCopy(destination)) 
moveorCopySaneCheck(destination);
+            moveorCopySaneCheck(destination);
             try {
                 if (isFile()) {
-                FileHelper.move(file, getFileForResource(destination));
+                    FileHelper.move(file, getFileForResource(destination));
                 } else {
                     FileHelper.moveRecursive(file, 
getFileForResource(destination));
                 }
@@ -152,19 +164,20 @@
         }
 
         public void copy(StreamableResource destination) throws 
ResourceException {
-            if (!prepareMoveorCopy(destination)) 
moveorCopySaneCheck(destination);
+            moveorCopySaneCheck(destination);
             try {
                 if (isFile()) {
                     FileHelper.copy(file, getFileForResource(destination));
-                    } else {
-                        FileHelper.copyRecursive(file, 
getFileForResource(destination));
-                    }
+                } else {
+                    FileHelper.copyRecursive(file, 
getFileForResource(destination));
+                }
             } catch (IOException e) {
                 throw new ResourceException(e);
             }
         }
 
-        protected boolean prepareMoveorCopy(StreamableResource destination) 
throws ResourceException  {
+        protected boolean prepareMoveorCopy(StreamableResource destination)
+                throws ResourceException {
             if (!destination.exists()) {
                 if (isDirectory()) {
                     destination.createAsDirectory();
@@ -175,22 +188,27 @@
             }
             return false;
         }
-        
-        protected void moveorCopySaneCheck(StreamableResource destination) 
throws ResourceException  {
+
+        protected void moveorCopySaneCheck(StreamableResource destination) 
throws ResourceException {
+            if (prepareMoveorCopy(destination))
+                return;
+
             File from = getFile();
             File to = getFileForResource(destination);
             if (!from.isDirectory()) {
                 if (to.isDirectory()) {
-                    throw new 
ResourceException(ResourceException.Code.CANT_MOVE_OR_COPY, "Could not move 
file to directory");
+                    throw new 
ResourceException(ResourceException.Code.CANT_MOVE_OR_COPY,
+                            "Could not move file to directory");
                 }
                 // still need to check, as it can also be a link
-            } else if (from.isDirectory()){
+            } else if (from.isDirectory()) {
                 if (to.isFile()) {
-                    throw new 
ResourceException(ResourceException.Code.CANT_MOVE_OR_COPY, "Could not move 
directory to file");
+                    throw new 
ResourceException(ResourceException.Code.CANT_MOVE_OR_COPY,
+                            "Could not move directory to file");
                 }
             }
         }
-        
+
         public InputStream readStream() throws ResourceException {
             try {
                 FileInputStream is = new FileInputStream(file);
@@ -225,18 +243,6 @@
                 return file.length();
             }
             return null;
-        }
-
-        // XXX no op, only way to lock is using FileChannel#lock() and
-        // FileChannel#tryLock()
-        public boolean tryReadLock() {
-            return true;
-        }
-
-        // XXX no op, only way to lock is using FileChannel#lock() and
-        // FileChannel#tryLock()
-        public boolean tryWriteLock() {
-            return true;
         }
 
         // XXX no op, only way to lock is using FileChannel#lock() and



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to