/** * Sets table name and partitions on the given query. * * @param params the event query parameters. * @return a {@link EventQueryParams}. */ private EventQueryParams withTableNameAndPartitions( EventQueryParams params ) { Partitions partitions = params.hasStartEndDate() ? PartitionUtils.getPartitions( params.getStartDate(), params.getEndDate() ) : PartitionUtils.getPartitions( params.getAllPeriods() ); String baseName = params.hasEnrollmentProgramIndicatorDimension() ? AnalyticsTableType.ENROLLMENT.getTableName() : AnalyticsTableType.EVENT.getTableName(); String tableName = PartitionUtils.getTableName( baseName, params.getProgram() ); return new EventQueryParams.Builder( params ) .withTableName( tableName ) .withPartitions( partitions ) .build(); }