class JdbcAnalyticsTableManager extends AbstractJdbcTableManager {

    @Override
    @Transactional
    public List<AnalyticsTable> getAnalyticsTables( AnalyticsTableUpdateParams params )
    {
        AnalyticsTable table = params.isLatestUpdate() ?
            getLatestAnalyticsTable( params, getDimensionColumns(), getValueColumns() ) :
            getRegularAnalyticsTable( params, getDataYears( params ), getDimensionColumns(), getValueColumns() );

        return table.hasPartitionTables() ? newArrayList( table ) : newArrayList();
    }

    public  JdbcAnalyticsTableManager( IdentifiableObjectManager idObjectManager,
        OrganisationUnitService organisationUnitService, CategoryService categoryService,
        SystemSettingManager systemSettingManager, DataApprovalLevelService dataApprovalLevelService,
        ResourceTableService resourceTableService, AnalyticsTableHookService tableHookService,
        StatementBuilder statementBuilder, PartitionManager partitionManager, DatabaseInfo databaseInfo,
        JdbcTemplate jdbcTemplate );

}