@Override public void deleteProgram( Program program ) { Collection<ProgramIndicator> indicators = new HashSet<ProgramIndicator>( program.getProgramIndicators() ); Iterator<ProgramIndicator> iter = indicators.iterator(); while ( iter.hasNext() ) { ProgramIndicator indicator = iter.next(); programIndicatorService.deleteProgramIndicator( indicator ); } } }
private SetMap<Class<? extends IdentifiableObject>, IdentifiableObject> handleProgram( SetMap<Class<? extends IdentifiableObject>, IdentifiableObject> metadata, Program program ) { if ( program == null ) return metadata; metadata.putValue( Program.class, program ); handleAttributes( metadata, program ); handleCategoryCombo( metadata, program.getCategoryCombo() ); handleDataEntryForm( metadata, program.getDataEntryForm() ); handleTrackedEntityType( metadata, program.getTrackedEntityType() ); program.getNotificationTemplates().forEach( template -> handleNotificationTemplate( metadata, template ) ); program.getProgramStages().forEach( programStage -> handleProgramStage( metadata, programStage ) ); program.getProgramAttributes().forEach( programTrackedEntityAttribute -> handleProgramTrackedEntityAttribute( metadata, programTrackedEntityAttribute ) ); program.getProgramIndicators().forEach( programIndicator -> handleProgramIndicator( metadata, programIndicator ) ); List<ProgramRule> programRules = programRuleService.getProgramRule( program ); List<ProgramRuleVariable> programRuleVariables = programRuleVariableService.getProgramRuleVariable( program ); programRules.forEach( programRule -> handleProgramRule( metadata, programRule ) ); programRuleVariables.forEach( programRuleVariable -> handleProgramRuleVariable( metadata, programRuleVariable ) ); return metadata; }
private QueryItem getQueryItemFromDimension( String dimension, Program program ) { String[] split = dimension.split( ITEM_SEP ); String item = split[0]; LegendSet legendSet = split.length > 1 && split[1] != null ? legendSetService.getLegendSet( split[1] ) : null; DataElement de = dataElementService.getDataElement( item ); if ( de != null && program.containsDataElement( de ) ) { ValueType valueType = legendSet != null ? ValueType.TEXT : de.getValueType(); return new QueryItem( de, legendSet, valueType, de.getAggregationType(), de.getOptionSet() ); } TrackedEntityAttribute at = attributeService.getTrackedEntityAttribute( item ); if ( at != null && program.containsAttribute( at ) ) { ValueType valueType = legendSet != null ? ValueType.TEXT : at.getValueType(); return new QueryItem( at, legendSet, valueType, at.getAggregationType(), at.getOptionSet() ); } ProgramIndicator pi = programIndicatorService.getProgramIndicatorByUid( item ); if ( pi != null && program.getProgramIndicators().contains( pi ) ) { return new QueryItem( pi, legendSet, ValueType.NUMBER, pi.getAggregationType(), null ); } throw new IllegalQueryException( "Item identifier does not reference any data element, attribute or indicator part of the program: " + item ); }