public Results<Measurement> process(Iterator<Row<Sample>> samples) {
checkNotNull(samples, "samples argument");
Rate rate = new Rate(samples, m_resultDescriptor.getSourceNames());
PrimaryData primaryData = new PrimaryData(m_resource, m_start.minus(m_resolution), m_end, m_resultDescriptor, rate);
Aggregation aggregation = new Aggregation(m_resource, m_start, m_end, m_resultDescriptor, m_resolution, primaryData);
Compute compute = new Compute(m_resultDescriptor, aggregation);
Export exports = new Export(m_resultDescriptor.getExports(), compute);
Results<Measurement> measurements = new Results<>();
for (Row<Measurement> row : exports) {
measurements.addRow(row);
}
return measurements;
}