@Override public int compare( CategoryCombo o1, CategoryCombo o2 ) { return o1.getOptionCombos().size() - o2.getOptionCombos().size(); } }
@Override public void deleteCategoryCombo( CategoryCombo categoryCombo ) { Iterator<CategoryOptionCombo> iterator = categoryCombo.getOptionCombos().iterator(); while ( iterator.hasNext() ) { CategoryOptionCombo optionCombo = iterator.next(); iterator.remove(); categoryService.deleteCategoryOptionCombo( optionCombo ); } } }
public Set<CategoryOptionCombo> getDataElementOptionCombos() { Set<CategoryOptionCombo> optionCombos = new HashSet<>(); for ( DataSetElement element : dataSetElements ) { optionCombos.addAll( element.getResolvedCategoryCombo().getOptionCombos() ); } return optionCombos; }
/** * Returns the category option combinations of the resolved category * combinations of this data element. The returned set is immutable, will * never be null and will contain at least one item. */ public Set<CategoryOptionCombo> getCategoryOptionCombos() { return getCategoryCombos().stream() .map( c -> c.getOptionCombos() ) .flatMap( c -> c.stream() ) .collect( Collectors.toSet() ); }
@Override public CategoryOptionCombo getDefaultCategoryOptionCombo() { CategoryCombo categoryCombo = getCategoryComboByName( CategoryCombo.DEFAULT_CATEGORY_COMBO_NAME ); return categoryCombo != null && categoryCombo.hasOptionCombos() ? categoryCombo.getOptionCombos().iterator().next() : null; }
@Override public void generateOptionCombos( CategoryCombo categoryCombo ) { categoryCombo.generateOptionCombos(); for ( CategoryOptionCombo optionCombo : categoryCombo.getOptionCombos() ) { categoryCombo.getOptionCombos().add( optionCombo ); addCategoryOptionCombo( optionCombo ); } updateCategoryCombo( categoryCombo ); }
/** * Returns the attribute category options combinations associated with the * data sets of this data element. */ public Set<CategoryOptionCombo> getDataSetCategoryOptionCombos() { Set<CategoryOptionCombo> categoryOptionCombos = new HashSet<>(); for ( DataSet dataSet : getDataSets() ) { categoryOptionCombos.addAll( dataSet.getCategoryCombo().getOptionCombos() ); } return categoryOptionCombos; }
AdxDataSetMetadata( DataSet dataSet ) throws AdxException { categoryOptionMap = new HashMap<>(); Set<CategoryCombo> catCombos = new HashSet<>(); catCombos.add( dataSet.getCategoryCombo() ); for ( DataSetElement element : dataSet.getDataSetElements() ) { catCombos.add( element.getResolvedCategoryCombo() ); } for ( CategoryCombo categoryCombo : catCombos ) { for ( CategoryOptionCombo catOptCombo : categoryCombo.getOptionCombos() ) { addExplodedCategoryAttributes( catOptCombo ); } } }
@Override public Optional<List<Object[]>> getPopulateTempTableContent() { List<Object[]> batchArgs = new ArrayList<>(); for ( CategoryCombo combo : objects ) { if ( !combo.isValid() ) { log.warn( "Ignoring category combo, not valid: " + combo ); continue; } for ( CategoryOptionCombo coc : combo.getOptionCombos() ) { List<Object> values = new ArrayList<>(); values.add( coc.getId() ); values.add( coc.getName() ); values.add( coc.isIgnoreApproval() ? APPROVAL_LEVEL_HIGHEST : null ); values.add( coc.getLatestStartDate() ); values.add( coc.getEarliestEndDate() ); batchArgs.add( values.toArray() ); } } return Optional.of( batchArgs ); }
@Override public void updateOptionCombos( CategoryCombo categoryCombo ) { if ( categoryCombo == null || !categoryCombo.isValid() ) { log.warn( "Category combo is null or invalid, could not update option combos: " + categoryCombo ); return; } List<CategoryOptionCombo> generatedOptionCombos = categoryCombo.generateOptionCombosList(); Set<CategoryOptionCombo> persistedOptionCombos = categoryCombo.getOptionCombos(); boolean modified = false; for ( CategoryOptionCombo optionCombo : generatedOptionCombos ) { if ( !persistedOptionCombos.contains( optionCombo ) ) { categoryCombo.getOptionCombos().add( optionCombo ); addCategoryOptionCombo( optionCombo ); log.info( "Added missing category option combo: " + optionCombo + " for category combo: " + categoryCombo.getName() ); modified = true; } } if ( modified ) { updateCategoryCombo( categoryCombo ); } }
private SetMap<Class<? extends IdentifiableObject>, IdentifiableObject> handleCategoryCombo( SetMap<Class<? extends IdentifiableObject>, IdentifiableObject> metadata, CategoryCombo categoryCombo ) { if ( categoryCombo == null ) return metadata; metadata.putValue( CategoryCombo.class, categoryCombo ); handleAttributes( metadata, categoryCombo ); categoryCombo.getCategories().forEach( category -> handleCategory( metadata, category ) ); categoryCombo.getOptionCombos().forEach( optionCombo -> handleCategoryOptionCombo( metadata, optionCombo ) ); return metadata; }
Set<CategoryOptionCombo> persistedOptionCombos = Sets.newHashSet( categoryCombo.getOptionCombos() ); categoryCombo.getOptionCombos().add( optionCombo ); categoryService.addCategoryOptionCombo( optionCombo ); categoryCombo.getOptionCombos().remove( optionCombo ); categoryService.deleteCategoryOptionCombo( optionCombo );
@Override public String allowDeleteCategoryCombo( CategoryCombo categoryCombo ) { for ( Indicator indicator : indicatorService.getAllIndicators() ) { Set<CategoryOptionCombo> optionCombos = expressionService.getOptionCombosInExpression( indicator .getNumerator() ); optionCombos.retainAll( categoryCombo.getOptionCombos() ); if ( !optionCombos.isEmpty() ) { return indicator.getName(); } optionCombos = expressionService.getOptionCombosInExpression( indicator.getDenominator() ); optionCombos.retainAll( categoryCombo.getOptionCombos() ); if ( !optionCombos.isEmpty() ) { return indicator.getName(); } } return null; } }
/** * Makes sure that an attribute option combo is valid for a workflow. * * @param attributeOptionCombo attribute option combo to test. * @param workflow workflow to check against. */ private void validAttributeOptionCombo( CategoryOptionCombo attributeOptionCombo, DataApprovalWorkflow workflow ) { for ( DataSet ds : workflow.getDataSets() ) { if ( ds.getCategoryCombo().getOptionCombos().contains( attributeOptionCombo ) ) { return; } } log.info( "validateAttributeOptionCombos: attribuetOptionCombo " + attributeOptionCombo.getUid() + " not valid for workflow " + workflow.getUid() ); throw new DataMayNotBeApprovedException(); }
for ( CategoryOptionCombo optionCombo : categoryCombo.getOptionCombos() )
@Override public Collection<ValidationRule> getValidationRulesForDataSet( DataSet dataSet ) { Set<String> elementsAndOptionCombos = new HashSet<>(); for ( DataSetElement dataSetElement : dataSet.getDataSetElements() ) { DataElement dataElement = dataSetElement.getDataElement(); elementsAndOptionCombos.add( dataElement.getUid() ); CategoryCombo catCombo = dataSetElement.hasCategoryCombo() ? dataSetElement.getCategoryCombo() : dataElement.getCategoryCombo(); for ( CategoryOptionCombo optionCombo : catCombo.getOptionCombos() ) { elementsAndOptionCombos.add( dataElement.getUid() + Expression.SEPARATOR + optionCombo.getUid() ); } } Set<ValidationRule> rulesForDataSet = new HashSet<>(); for ( ValidationRule rule : getAllFormValidationRules() ) { if ( !Sets.intersection( expressionService.getElementsAndOptionCombosInExpression( rule.getLeftSide().getExpression() ), elementsAndOptionCombos ).isEmpty() || !Sets.intersection( expressionService.getElementsAndOptionCombosInExpression( rule.getRightSide().getExpression() ), elementsAndOptionCombos ).isEmpty() ) { rulesForDataSet.add( rule ); } } return rulesForDataSet; }
Set<CategoryOptionCombo> persistedOptionCombos = Sets.newHashSet( categoryCombo.getOptionCombos() ); categoryCombo.getOptionCombos().add( optionCombo ); categoryService.addCategoryOptionCombo( optionCombo ); categoryCombo.getOptionCombos().remove( optionCombo );
Collection<CategoryOptionCombo> optionCombos = categoryCombo.getOptionCombos();
for ( CategoryOptionCombo aoc : categoryCombo.getOptionCombos() )