public void selectByQuery(DbSession dbSession, MeasureQuery query, ResultHandler resultHandler) {
if (query.returnsEmpty()) {
return;
}
if (query.isOnComponents()) {
executeLargeInputsWithoutOutput(
query.getComponentUuids(),
componentUuids -> {
MeasureQuery pageQuery = MeasureQuery.copyWithSubsetOfComponentUuids(query, componentUuids);
mapper(dbSession).selectByQueryOnComponents(pageQuery, resultHandler);
return null;
});
}
if (query.isOnProjects()) {
executeLargeInputsWithoutOutput(
query.getProjectUuids(),
projectUuids -> {
MeasureQuery pageQuery = MeasureQuery.copyWithSubsetOfProjectUuids(query, projectUuids);
mapper(dbSession).selectByQueryOnProjects(pageQuery, resultHandler);
return null;
});
}
mapper(dbSession).selectByQueryOnSingleComponent(query, resultHandler);
}