Author: bchapuis
Date: Mon Feb 21 18:50:23 2011
New Revision: 1073109
URL: http://svn.apache.org/viewvc?rev=1073109&view=rev
Log:
DROIDS-125: SaveHandler - clean up. The logic has not been changed. It will
make sonarsource happier :-). Patch: Eugen Paraschiv.
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=1073109&r1=1073108&r2=1073109&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
Mon Feb 21 18:50:23 2011
@@ -18,6 +18,7 @@ package org.apache.droids.handle;
import java.io.BufferedOutputStream;
import java.io.File;
+import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
@@ -39,12 +40,15 @@ import org.apache.droids.helper.FileUtil
*
*/
public class SaveHandler extends WriterHandler implements Handler {
- private String outputDir = null;
+ private String outputDir;
- private URI uri = null;
+ private URI uri;
- private boolean includeHost = false;
- protected int bufferSize = 8192;
+ private boolean includeHost;
+
+ public SaveHandler() {
+ super();
+ }
public void handle(URI uri, ContentEntity entity) throws IOException {
this.uri = uri;
@@ -58,36 +62,43 @@ public class SaveHandler extends WriterH
private void writeOutput(InputStream stream) throws IOException {
if (!uri.getPath().endsWith("/")) {
- byte[] buffer = new byte[bufferSize];
- int length = -1;
+ String filePath = calculateFilePath();
+ log.info("Trying to save " + uri + " to " + filePath);
+ File cache = new File(filePath);
+ FileUtil.createFile(cache);
+
+ writeContentToFile(stream, cache);
+ }
+ }
- String file = outputDir;
- if (includeHost) {
- file += uri.getHost() + uri.getPath();
- } else {
- file += uri.getPath().substring(1);
+ private void writeContentToFile(InputStream stream, File cache) throws
FileNotFoundException,
+ IOException {
+ OutputStream output = null;
+ final int bufferSize = 8192;
+ byte[] buffer = new byte[bufferSize];
+ int length = -1;
+ try {
+ output = new BufferedOutputStream(new FileOutputStream(cache));
+ while ((length = stream.read(buffer)) > -1) {
+ output.write(buffer, 0, length);
}
- 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));
-
- while ((length = stream.read(buffer)) > -1) {
- output.write(buffer, 0, length);
- }
-
- } catch (IOException e) {
- throw e;
- } finally {
- if (null != output) {
- output.flush();
- output.close();
- }
+ } finally {
+ if (null != output) {
+ output.flush();
+ output.close();
}
}
}
+
+ private String calculateFilePath() {
+ String filePath = outputDir;
+ if (includeHost) {
+ filePath += uri.getHost() + uri.getPath();
+ } else {
+ filePath += uri.getPath().substring(1);
+ }
+ return filePath;
+ }
/**
* Get the directory where we want to save the stream.