Repository: jclouds
Updated Branches:
  refs/heads/master bde70457d -> d6454b822


Disentangle Iterable and Iterator

Found via error-prone.


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

Branch: refs/heads/master
Commit: d6454b822fa872389034577c27cb5cee4c37e965
Parents: bde7045
Author: Andrew Gaul <[email protected]>
Authored: Mon Jun 20 10:14:48 2016 -0700
Committer: Andrew Gaul <[email protected]>
Committed: Mon Jun 20 10:21:01 2016 -0700

----------------------------------------------------------------------
 .../jclouds/io/internal/BasePayloadSlicer.java  | 47 ++++++++++++++------
 1 file changed, 33 insertions(+), 14 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/jclouds/blob/d6454b82/core/src/main/java/org/jclouds/io/internal/BasePayloadSlicer.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/jclouds/io/internal/BasePayloadSlicer.java 
b/core/src/main/java/org/jclouds/io/internal/BasePayloadSlicer.java
index 6718582..8de6b02 100644
--- a/core/src/main/java/org/jclouds/io/internal/BasePayloadSlicer.java
+++ b/core/src/main/java/org/jclouds/io/internal/BasePayloadSlicer.java
@@ -45,8 +45,22 @@ import com.google.common.io.Files;
 @Singleton
 public class BasePayloadSlicer implements PayloadSlicer {
 
-   private static class InputStreamPayloadIterator implements 
Iterable<Payload>, Iterator<Payload> {
+   private static final class InputStreamPayloadIterable implements 
Iterable<Payload> {
+      private final InputStream input;
+      private final ContentMetadata metaData;
+
+      InputStreamPayloadIterable(InputStream input, ContentMetadata metaData) {
+         this.input = checkNotNull(input, "input");
+         this.metaData = checkNotNull(metaData, "metaData");
+      }
+
+      @Override
+      public Iterator<Payload> iterator() {
+         return new InputStreamPayloadIterator(input, metaData);
+      }
+   }
 
+   private static final class InputStreamPayloadIterator implements 
Iterator<Payload> {
       private final InputStream input;
       private final ContentMetadata metaData;
       private Payload nextPayload;
@@ -83,11 +97,6 @@ public class BasePayloadSlicer implements PayloadSlicer {
          throw new UnsupportedOperationException("Payload iterator does not 
support removal");
       }
 
-      @Override
-      public Iterator<Payload> iterator() {
-         return this;
-      }
-
       private Payload getNextPayload() {
          byte[] content = new byte[readLen];
          int offset = 0;
@@ -125,7 +134,22 @@ public class BasePayloadSlicer implements PayloadSlicer {
 
    }
 
-   private static class ByteSourcePayloadIterator implements 
Iterable<Payload>, Iterator<Payload> {
+   private static final class ByteSourcePayloadIterable implements 
Iterable<Payload> {
+      private final ByteSource input;
+      private final ContentMetadata metaData;
+
+      ByteSourcePayloadIterable(ByteSource input, ContentMetadata metaData) {
+         this.input = checkNotNull(input, "input");
+         this.metaData = checkNotNull(metaData, "metaData");
+      }
+
+      @Override
+      public Iterator<Payload> iterator() {
+         return new ByteSourcePayloadIterator(input, metaData);
+      }
+   }
+
+   private static final class ByteSourcePayloadIterator implements 
Iterator<Payload> {
       private final ByteSource input;
       private final ContentMetadata metaData;
       private Payload nextPayload;
@@ -161,11 +185,6 @@ public class BasePayloadSlicer implements PayloadSlicer {
          throw new UnsupportedOperationException("Payload iterator does not 
support removal");
       }
 
-      @Override
-      public Iterator<Payload> iterator() {
-         return this;
-      }
-
       private Payload getNextPayload() {
          ByteSource byteSource;
          long byteSourceSize;
@@ -297,10 +316,10 @@ public class BasePayloadSlicer implements PayloadSlicer {
    }
 
    protected Iterable<Payload> doSlice(InputStream rawContent, ContentMetadata 
meta) {
-      return new InputStreamPayloadIterator(rawContent, meta);
+      return new InputStreamPayloadIterable(rawContent, meta);
    }
 
    protected Iterable<Payload> doSlice(ByteSource rawContent, ContentMetadata 
meta) {
-      return new ByteSourcePayloadIterator(rawContent, meta);
+      return new ByteSourcePayloadIterable(rawContent, meta);
    }
 }

Reply via email to