List<Future<ConveyorTile>> futures = new ArrayList<Future<ConveyorTile>>();
while (gridLoc != null) {
Map<String, String> fullParameters = tr.getParameters();
final ConveyorTile tile = new ConveyorTile(storageBroker, layerName, tr.getGridSetId(), gridLoc,
tr.getMimeType(), fullParameters, null, null);
futures.add(completer.submit(new Callable<ConveyorTile>() {
public ConveyorTile call() throws Exception {
try {
return tl.getTile(tile);
} catch (OutsideCoverageException oce) {
return null;
}
}
}));
gridLoc = trIter.nextMetaGridLocation(gridLoc);
}
// these assertions could be externalized
List<ConveyorTile> results = new ArrayList<ConveyorTile>();
for (int i = 0; i < futures.size(); i++) {
ConveyorTile get = futures.get(i).get();
if (get != null) {
results.add(get);
}
}