public static ProjectMeasuresIndexerIterator create(DbSession session, long afterDate, @Nullable String projectUuid) {
try {
Map<Long, String> metrics = selectMetricKeysByIds(session);
List<Project> projects = selectProjects(session, afterDate, projectUuid);
PreparedStatement projectsStatement = createMeasuresStatement(session, metrics.keySet());
return new ProjectMeasuresIndexerIterator(projectsStatement, metrics, projects);
} catch (SQLException e) {
throw new IllegalStateException("Fail to execute request to select all project measures", e);
}
}