/** * Indicates whether start and end date are specified and * the start date is after the end date, which is invalid. */ public boolean startDateAfterEndDate() { return hasStartEndDate() && startDate.after( endDate ); }
if ( tableType.hasPeriodDimension() && params.hasStartEndDate() )
@Override public Grid getRawDataValues( DataQueryParams params, Grid grid ) { Assert.isTrue( params.hasStartEndDate(), "Start and end dates must be specified" ); List<DimensionalObject> dimensions = new ArrayList<>(); dimensions.addAll( params.getDimensions() ); dimensions.addAll( params.getOrgUnitLevelsAsDimensions() ); if ( params.isIncludePeriodStartEndDates() ) { dimensions.add( new BaseDimensionalObject( PERIOD_START_DATE_ID, DimensionType.STATIC, PERIOD_START_DATE_NAME, Lists.newArrayList() ) ); dimensions.add( new BaseDimensionalObject( PERIOD_END_DATE_ID, DimensionType.STATIC, PERIOD_END_DATE_NAME, Lists.newArrayList() ) ); } String sql = getSelectStatement( params, dimensions ); log.debug( "Get raw data SQL: " + sql ); SqlRowSet rowSet = jdbcTemplate.queryForRowSet( sql ); while ( rowSet.next() ) { grid.addRow(); for ( DimensionalObject dim : dimensions ) { grid.addValue( rowSet.getString( dim.getDimensionName() ) ); } grid.addValue( rowSet.getDouble( "value" ) ); } return grid; }
if ( !params.hasPeriods() && !params.isSkipPartitioning() && !params.hasStartEndDate() ) if ( params.hasPeriods() && params.hasStartEndDate() ) if ( params.hasStartEndDate() && params.startDateAfterEndDate() ) if ( params.hasStartEndDate() && !params.getReportingRates().isEmpty() )
@Override public DataQueryParams withTableNameAndPartitions( DataQueryParams params, QueryPlannerParams plannerParams ) { Partitions partitions = params.hasStartEndDate() ? PartitionUtils.getPartitions( params.getStartDate(), params.getEndDate() ) : PartitionUtils.getPartitions( params.getAllPeriods() ); return DataQueryParams.newBuilder( params ) .withTableName( plannerParams.getTableName() ) .withPartitions( partitions ) .build(); }