You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jena.apache.org by sa...@apache.org on 2012/05/18 03:34:15 UTC
svn commit: r1339947 -
/jena/trunk/jena-arq/src/main/java/org/openjena/atlas/iterator/IteratorResourceClosing.java
Author: sallen
Date: Fri May 18 01:34:15 2012
New Revision: 1339947
URL: http://svn.apache.org/viewvc?rev=1339947&view=rev
Log:
Extended IteratorResourceClosing to work with both org.openjena.atlas.lib.Closeable and java.io.Closeable resources.
Modified:
jena/trunk/jena-arq/src/main/java/org/openjena/atlas/iterator/IteratorResourceClosing.java
Modified: jena/trunk/jena-arq/src/main/java/org/openjena/atlas/iterator/IteratorResourceClosing.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-arq/src/main/java/org/openjena/atlas/iterator/IteratorResourceClosing.java?rev=1339947&r1=1339946&r2=1339947&view=diff
==============================================================================
--- jena/trunk/jena-arq/src/main/java/org/openjena/atlas/iterator/IteratorResourceClosing.java (original)
+++ jena/trunk/jena-arq/src/main/java/org/openjena/atlas/iterator/IteratorResourceClosing.java Fri May 18 01:34:15 2012
@@ -25,16 +25,23 @@ import org.openjena.atlas.io.IO;
import org.openjena.atlas.lib.Closeable;
/**
- * This iterator will automatically close a {@link java.io.Closeable} resource when the iterator is exhausted.
- * Alternatively, the resource will be closed when {@link #close()} is called. An {@link AtlasException} will
- * be thrown if access is attempted after {@link #close()} has been called.
+ * This iterator will automatically close a {@link org.openjena.atlas.lib.Closeable} or {@link java.io.Closeable}
+ * resource when the iterator is exhausted. Alternatively, the resource will be closed when {@link #close()} is
+ * called. An {@link AtlasException} will be thrown if access is attempted after {@link #close()} has been called.
*/
public class IteratorResourceClosing<T> implements Iterator<T>, Closeable
{
private final Iterator<T> iter ;
- private final java.io.Closeable resource ;
+ private final Object resource ;
private boolean finished;
+ public IteratorResourceClosing(Iterator<T> iter, Closeable resource)
+ {
+ this.iter = iter;
+ this.resource = resource;
+ this.finished = false;
+ }
+
public IteratorResourceClosing(Iterator<T> iter, java.io.Closeable resource)
{
this.iter = iter;
@@ -83,7 +90,17 @@ public class IteratorResourceClosing<T>
if (!finished)
{
Iter.close(iter) ;
- IO.close(resource) ;
+ if (null != resource)
+ {
+ if (resource instanceof Closeable)
+ {
+ ((Closeable)resource).close() ;
+ }
+ else
+ {
+ IO.close((java.io.Closeable)resource) ;
+ }
+ }
finished = true;
}
}