package edu.harvard.econcs.turkserver.api;
import java.util.Collection;
import java.util.LinkedList;
import java.util.List;
public class CombinedHITWorkerGroup implements HITWorkerGroup {
final HITWorkerGroup[] groups;
public CombinedHITWorkerGroup(HITWorkerGroup... groups) {
this.groups = groups;
}
@Override
public int groupSize() {
int groupSize = 0;
for( HITWorkerGroup group : groups )
groupSize += group.groupSize();
return groupSize;
}
@Override
public boolean contains(HITWorker hitWorker) {
for( HITWorkerGroup group : groups )
if( group.contains(hitWorker) ) return true;
return false;
}
@Override
public Collection<? extends HITWorker> getHITWorkers() {
Collection<HITWorker> workers = new LinkedList<>();
for( HITWorkerGroup group : groups )
workers.addAll(group.getHITWorkers());
return workers;
}
@Override
public Collection<String> getHITIds() {
Collection<String> hitIds = new LinkedList<>();
for( HITWorkerGroup group : groups )
hitIds.addAll(group.getHITIds());
return hitIds;
}
@Override
public List<String> getWorkerIds() {
List<String> workerIds = new LinkedList<>();
for( HITWorkerGroup group : groups )
workerIds.addAll(group.getWorkerIds());
return workerIds;
}
@Override
public HITWorker findByHITId(String hitId) {
HITWorker found = null;
for( HITWorkerGroup group : groups ) {
if( (found = group.findByHITId(hitId)) != null ) break;
}
return found;
}
}