@Override public List<DataElement> getDataElementsByPeriodType( final PeriodType periodType ) { return getAllDataElements().stream().filter( p -> p.getPeriodType() != null && p.getPeriodType().equals( periodType ) ).collect( Collectors.toList() ); }
@Override public boolean equals( Object o ) { if ( this == o ) { return true; } if ( o == null ) { return false; } if ( !(o instanceof Period) ) { return false; } final Period other = (Period) o; return startDate.equals( other.getStartDate() ) && endDate.equals( other.getEndDate() ) && periodType.equals( other.getPeriodType() ); }
/** * Returns a list of periods for each of the available period types defined by * {@link PeriodType#PERIOD_TYPES} in matching order relative to the given period. * * @param period the period. * @param calendar the calendar. * @return a list of periods. */ public static List<Period> getPeriodTypePeriods( Period period, org.hisp.dhis.calendar.Calendar calendar ) { List<Period> periods = new ArrayList<>(); PeriodType periodType = period.getPeriodType(); for ( PeriodType type : PeriodType.PERIOD_TYPES ) { if ( periodType.getFrequencyOrder() < type.getFrequencyOrder() || periodType.equals( type ) ) { periods.add( IdentifiableObjectUtils.getPeriodByPeriodType( period, type, calendar ) ); } else { periods.add( null ); } } return periods; }
/** * Tests whether a PeriodType can be defined for the DataElement, which * requires that the DataElement is registered for DataSets with the same * PeriodType. */ public boolean periodTypeIsValid() { PeriodType periodType = null; for ( DataSet dataSet : getDataSets() ) { if ( periodType != null && !periodType.equals( dataSet.getPeriodType() ) ) { return false; } periodType = dataSet.getPeriodType(); } return true; }
private static void validateHasMatchingPeriodTypes( MetaDataProperties props ) throws ImportConflictException { // TODO MdCache? PeriodType dsPeType = props.dataSet.getPeriodType(); PeriodType peType = props.period.getPeriodType(); if ( !dsPeType.equals( peType ) ) { throw new ImportConflictException( new ImportConflict( props.period.getUid(), String.format( "Period type of period: %s is not equal to the period type of data set: %s", props.period.getIsoDate(), props.dataSet.getPeriodType() ) ) ); } }
/** * Indicates whether disaggregation is allowed for the given input. Disaggregation * implies that the frequency order of the aggregation period type is lower than * the data period type. * * @param aggregationPeriodType the aggregation period type. * @param dataPeriodType the data period type. */ public static boolean isDisaggregation( AnalyticsAggregationType aggregationType, PeriodType aggregationPeriodType, PeriodType dataPeriodType ) { if ( dataPeriodType == null || aggregationPeriodType == null ) { return false; } if ( aggregationType == null || AggregationType.AVERAGE != aggregationType.getPeriodAggregationType() ) { return false; } if ( aggregationPeriodType.getFrequencyOrder() < dataPeriodType.getFrequencyOrder() ) { return true; } if ( aggregationPeriodType.getFrequencyOrder() == dataPeriodType.getFrequencyOrder() && !aggregationPeriodType.equals( dataPeriodType ) ) { return true; } return false; }
if ( !da.getPeriod().getPeriodType().equals( da.getWorkflow().getPeriodType() ) )