
com.aol.micro.server.s3.S3ObjectSummaryIterator Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of micro-s3 Show documentation
Show all versions of micro-s3 Show documentation
Opinionated rest microservices
package com.aol.micro.server.s3;
import java.util.Iterator;
import com.amazonaws.services.s3.AmazonS3Client;
import com.amazonaws.services.s3.model.ListObjectsRequest;
import com.amazonaws.services.s3.model.ObjectListing;
import com.amazonaws.services.s3.model.S3ObjectSummary;
public class S3ObjectSummaryIterator implements Iterator {
private final AmazonS3Client client;
private ListObjectsRequest req;
private Iterator iterator;
private boolean empty = true;
public S3ObjectSummaryIterator(AmazonS3Client client, ListObjectsRequest req) {
this.client = client;
this.req = req;
updateIterator();
}
@Override
public boolean hasNext() {
if(iterator.hasNext()) {
return true;
} else if(!empty){
updateIterator();
return iterator.hasNext();
} else {
return false;
}
}
private void updateIterator() {
if(iterator == null || !iterator.hasNext()) {
ObjectListing listing = client.listObjects(req);
req = req.withMarker(listing.getNextMarker());
empty = !listing.isTruncated();
iterator = listing.getObjectSummaries().iterator();
}
}
@Override
public S3ObjectSummary next() {
updateIterator();
return iterator.next();
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy