You are viewing a plain text version of this content. The canonical link for it is here.
Posted to droids-commits@incubator.apache.org by ja...@apache.org on 2010/08/14 11:29:08 UTC

svn commit: r985466 - in /incubator/droids/trunk/droids-core/src/main/java/org/apache/droids: handle/SaveHandler.java helper/FileUtil.java

Author: javier
Date: Sat Aug 14 11:29:07 2010
New Revision: 985466

URL: http://svn.apache.org/viewvc?rev=985466&view=rev
Log:
Extract static method to helper class. DROIDS-90

Added:
    incubator/droids/trunk/droids-core/src/main/java/org/apache/droids/helper/FileUtil.java
Modified:
    incubator/droids/trunk/droids-core/src/main/java/org/apache/droids/handle/SaveHandler.java

Modified: incubator/droids/trunk/droids-core/src/main/java/org/apache/droids/handle/SaveHandler.java
URL: http://svn.apache.org/viewvc/incubator/droids/trunk/droids-core/src/main/java/org/apache/droids/handle/SaveHandler.java?rev=985466&r1=985465&r2=985466&view=diff
==============================================================================
--- incubator/droids/trunk/droids-core/src/main/java/org/apache/droids/handle/SaveHandler.java (original)
+++ incubator/droids/trunk/droids-core/src/main/java/org/apache/droids/handle/SaveHandler.java Sat Aug 14 11:29:07 2010
@@ -26,6 +26,7 @@ import java.net.URI;
 
 import org.apache.droids.api.ContentEntity;
 import org.apache.droids.api.Handler;
+import org.apache.droids.helper.FileUtil;
 
 /**
  * Handler which is writing the stream to the file system.
@@ -38,107 +39,92 @@ import org.apache.droids.api.Handler;
  * 
  */
 public class SaveHandler extends WriterHandler implements Handler {
+  private String outputDir = null;
 
-    private String outputDir = null;
+  private URI uri = null;
 
-    private URI uri = null;
+  private boolean includeHost = false;
+  protected int bufferSize = 8192;
 
-    private boolean includeHost = false;
-    protected int bufferSize = 8192;
+  public void handle(URI uri, ContentEntity entity) throws IOException {
+    this.uri = uri;
+    InputStream instream = entity.obtainContent();
+    try {
+      writeOutput(instream);
+    } finally {
+      instream.close();
+    }
+  }
+
+  private void writeOutput(InputStream stream) throws IOException {
+    if (!uri.getPath().endsWith("/")) {
+      byte[] buffer = new byte[bufferSize];
+      int length = -1;
+
+      String file = outputDir;
+      if (includeHost) {
+        file += uri.getHost() + uri.getPath();
+      } else {
+        file += uri.getPath().substring(1);
+      }
+      log.info("Trying to save " + uri + " to " + file);
+      File cache = new File(file);
+      OutputStream output = null;
+      try {
+        FileUtil.createFile(cache);
+        output = new BufferedOutputStream(new FileOutputStream(cache));
 
-    public void handle(URI uri, ContentEntity entity) throws IOException {
-        this.uri = uri;
-        InputStream instream = entity.obtainContent();
-        try {
-            writeOutput(instream);
-        } finally {
-            instream.close();
+        while ((length = stream.read(buffer)) > -1) {
+          output.write(buffer, 0, length);
         }
-    }
-
-    private void writeOutput(InputStream stream) throws IOException {
-        if (!uri.getPath().endsWith("/")) {
-            byte[] buffer = new byte[bufferSize];
-            int length = -1;
-
-            String file = outputDir;
-            if (includeHost) {
-                file += uri.getHost() + uri.getPath();
-            } else {
-                file += uri.getPath().substring(1);
-            }
-            log.info("Trying to save " + uri + " to " + file);
-            File cache = new File(file);
-            OutputStream output = null;
-            try {
-                createFile(cache);
-                output = new BufferedOutputStream(new FileOutputStream(cache));
-
-                while ((length = stream.read(buffer)) > -1) {
-                    output.write(buffer, 0, length);
-                }
-
-            } catch (IOException e) {
-                throw e;
-            } finally {
-                if (null != output) {
-                    output.flush();
-                    output.close();
-                }
-            }
-        }
-    }
 
-    public static void createFile(File cache) throws IOException {
-        if (!cache.isDirectory() && !cache.getAbsolutePath().endsWith("/")) {
-            try {
-                cache.createNewFile();
-            } catch (IOException e) {
-                // if we cannot create a file that means that the parent path
-                // does not exists
-                File path = new File(cache.getParent());
-                path.mkdirs();
-                cache.createNewFile();
-            }
+      } catch (IOException e) {
+        throw e;
+      } finally {
+        if (null != output) {
+          output.flush();
+          output.close();
         }
+      }
     }
+  }
 
-    /**
-     * Get the directory where we want to save the stream.
-     * 
-     * @return directory where we want to save the stream.
-     */
-    public String getOutputDir() {
-        return outputDir;
-    }
-
-    /**
-     * Set the directory where we want to save the stream.
-     * 
-     * @param outputDir
-     *            the directory where we want to save the stream.
-     */
-    public void setOutputDir(String outputDir) {
-        this.outputDir = outputDir;
-    }
-
-    /**
-     * Do we want to prefix the export dir with the host name.
-     * 
-     * @return true if we want to use the prefix; false otherwise
-     */
-    public boolean isIncludeHost() {
-        return includeHost;
-    }
-
-    /**
-     * Do we want to prefix the export dir with the host name.
-     * 
-     * @param includeHost
-     *            true if we want to use the prefix; false otherwise
-     */
-    public void setIncludeHost(boolean includeHost) {
-        this.includeHost = includeHost;
-    }
+  /**
+   * Get the directory where we want to save the stream.
+   * 
+   * @return directory where we want to save the stream.
+   */
+  public String getOutputDir() {
+    return outputDir;
+  }
+
+  /**
+   * Set the directory where we want to save the stream.
+   * 
+   * @param outputDir
+   *          the directory where we want to save the stream.
+   */
+  public void setOutputDir(String outputDir) {
+    this.outputDir = outputDir;
+  }
+
+  /**
+   * Do we want to prefix the export dir with the host name.
+   * 
+   * @return true if we want to use the prefix; false otherwise
+   */
+  public boolean isIncludeHost() {
+    return includeHost;
+  }
+
+  /**
+   * Do we want to prefix the export dir with the host name.
+   * 
+   * @param includeHost
+   *          true if we want to use the prefix; false otherwise
+   */
+  public void setIncludeHost(boolean includeHost) {
+    this.includeHost = includeHost;
+  }
 
 }

Added: incubator/droids/trunk/droids-core/src/main/java/org/apache/droids/helper/FileUtil.java
URL: http://svn.apache.org/viewvc/incubator/droids/trunk/droids-core/src/main/java/org/apache/droids/helper/FileUtil.java?rev=985466&view=auto
==============================================================================
--- incubator/droids/trunk/droids-core/src/main/java/org/apache/droids/helper/FileUtil.java (added)
+++ incubator/droids/trunk/droids-core/src/main/java/org/apache/droids/helper/FileUtil.java Sat Aug 14 11:29:07 2010
@@ -0,0 +1,45 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.droids.helper;
+
+import java.io.File;
+import java.io.IOException;
+
+/**
+ * This is an utility class for file related operations. 
+ */
+public final class FileUtil {
+
+  private FileUtil() {
+    throw new AssertionError();
+  }
+
+  public static void createFile(File cache) throws IOException {
+    if (!cache.isDirectory() && !cache.getAbsolutePath().endsWith("/")) {
+      try {
+        cache.createNewFile();
+      } catch (IOException e) {
+        // if we cannot create a file that means that the parent path
+        // does not exists
+        final File path = new File(cache.getParent());
+        path.mkdirs();
+        cache.createNewFile();
+      }
+    }
+  }
+
+}