package org.rhq.server.metrics.aggregation; import java.util.ArrayList; import java.util.Iterator; import java.util.List; import com.datastax.driver.core.ResultSet; import com.google.common.base.Objects; import com.google.common.util.concurrent.ListenableFuture; import org.joda.time.DateTime; import org.rhq.server.metrics.domain.Bucket; import org.rhq.server.metrics.domain.IndexEntry; /** * @author John Sanda */ public class Batch implements Iterable<IndexEntry> { private DateTime startTime; private DateTime endTime; private List<IndexEntry> indexEntries = new ArrayList<IndexEntry>(); private Bucket targetBucket; private ListenableFuture<List<ResultSet>> queriesFuture; public DateTime getStartTime() { return startTime; } public Batch setStartTime(long timestamp) { startTime = new DateTime(timestamp); return this; } public DateTime getEndTime() { return endTime; } public Batch setEndTime(DateTime endTime) { this.endTime = endTime; return this; } public List<IndexEntry> getIndexEntries() { return indexEntries; } public Batch add(IndexEntry indexEntry) { indexEntries.add(indexEntry); return this; } public int size() { return indexEntries.size(); } public ListenableFuture<List<ResultSet>> getQueriesFuture() { return queriesFuture; } public Batch setQueriesFuture(ListenableFuture<List<ResultSet>> queriesFuture) { this.queriesFuture = queriesFuture; return this; } @Override public Iterator<IndexEntry> iterator() { return indexEntries.iterator(); } @Override public String toString() { return Objects.toStringHelper(Batch.class) .add("startTime", startTime) .add("endTime", endTime) .add("indexEntries", indexEntries) .toString(); } }