public void removeCategoryCombo( CategoryCombo categoryCombo ) { categoryCombos.remove( categoryCombo ); categoryCombo.getCategories().remove( this ); }
@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 ); } }
/** * Returns the sorted category option combinations of the resolved category * combinations of this data element. The returned list is immutable, will * never be null and will contain at least one item. */ public List<CategoryOptionCombo> getSortedCategoryOptionCombos() { List<CategoryOptionCombo> optionCombos = Lists.newArrayList(); getCategoryCombos().forEach( cc -> optionCombos.addAll( cc.getSortedOptionCombos() ) ); return optionCombos; }
/** * @param categoryComboUniqueIdentifier A unique character to identify the * category option combo. * @param categories the categories * category options. * @return CategoryOptionCombo */ public static CategoryCombo createCategoryCombo( char categoryComboUniqueIdentifier, Category... categories ) { CategoryCombo categoryCombo = new CategoryCombo( "CategoryCombo" + categoryComboUniqueIdentifier, DataDimensionType.DISAGGREGATION ); categoryCombo.setAutoFields(); for ( Category category : categories ) { categoryCombo.getCategories().add( category ); } return categoryCombo; }
@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 ); }
@Override public int compare( CategoryCombo o1, CategoryCombo o2 ) { return o1.getOptionCombos().size() - o2.getOptionCombos().size(); } }
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; }
@Override public String allowDeleteCategory( Category category ) { for ( CategoryOptionCombo categoryOptionCombo : categoryService.getAllCategoryOptionCombos() ) { if ( categoryOptionCombo.getCategoryCombo().getCategories().contains( category ) ) { return categoryOptionCombo.getCategoryCombo().getName(); } } return null; } }
Grid grid = new ListGrid().setTitle( section.getName() + SPACE + categoryCombo.getName() ). setSubtitle( unit.getName() + SPACE + format.formatPeriod( period ) ); List<CategoryOptionCombo> optionCombos = categoryCombo.getSortedOptionCombos(); if ( categoryCombo.doSubTotals() && !selectedUnitOnly ) // Sub-total for ( CategoryOption categoryOption : categoryCombo.getCategoryOptions() ) if ( categoryCombo.doTotal() && !selectedUnitOnly ) // Total if ( categoryCombo.doSubTotals() && !selectedUnitOnly ) // Sub-total for ( CategoryOption categoryOption : categoryCombo.getCategoryOptions() ) if ( categoryCombo.doTotal() && !selectedUnitOnly ) // Total
CategoryCombo categoryCombo = new CategoryCombo( CategoryCombo.DEFAULT_CATEGORY_COMBO_NAME, DataDimensionType.DISAGGREGATION ); categoryCombo.setUid( "bjDvmb4bfuf" ); categoryCombo.setCode( "default" ); categoryCombo.setDataDimensionType( DataDimensionType.DISAGGREGATION ); categoryCombo.addCategory( category ); addCategoryCombo( categoryCombo ); categoryCombo.setPublicAccess( AccessStringHelper.CATEGORY_NO_DATA_SHARING_DEFAULT ); updateCategoryCombo( categoryCombo ); categoryCombo.setOptionCombos( categoryOptionCombos );
if ( !categoryCombo.isDefault() ) for ( CategoryOptionCombo optionCombo : categoryCombo.getOptionCombos() )
@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 ); }
object.setAutoFields(); CategoryCombo cc = new CategoryCombo(); cc.setUid( categoryComboUid ); cc.setAutoFields(); cc.setUid( categoryCombo.getUid() );
public String toString() { return "CatComboMap: catcombo=" + categoryCombo.getName() + " map:" + ccMap.toString(); } }
@Override public List<DataElementOperand> getOperands( Collection<DataElement> dataElements, boolean includeTotals ) { List<DataElementOperand> operands = Lists.newArrayList(); for ( DataElement dataElement : dataElements ) { Set<CategoryCombo> categoryCombos = dataElement.getCategoryCombos(); boolean anyIsDefault = categoryCombos.stream().anyMatch( cc -> cc.isDefault() ); if ( includeTotals && !anyIsDefault ) { operands.add( new DataElementOperand( dataElement ) ); } for ( CategoryCombo categoryCombo : categoryCombos ) { operands.addAll( getOperands( dataElement, categoryCombo ) ); } } return operands; }
public List<DataElement> getDataElementsByCategoryCombo( CategoryCombo categoryCombo ) { List<DataElement> dataElements = new ArrayList<>(); for ( DataElement dataElement : this.dataElements ) { if ( dataElement.getDataElementCategoryCombo( this.dataSet ).equals( categoryCombo ) ) { dataElements.add( dataElement ); } } return dataElements; }
"join categoryoptioncombos_categoryoptions cocco on cocco.categoryoptioncomboid = coc.categoryoptioncomboid " + ( attributeCombo == null ? "" : "join categorycombos_optioncombos ccoc on ccoc.categoryoptioncomboid = cocco.categoryoptioncomboid " + "and ccoc.categorycomboid = " + attributeCombo.getId() + " " ) + "join dataelementcategoryoption co on co.categoryoptionid = cocco.categoryoptionid " + "and (co.startdate is null or co.startdate <= '" + endDate + "') and (co.enddate is null or co.enddate >= '" + startDate + "') " + + " workflow " + workflow.getName() + " period " + period.getIsoDate() + " orgUnits " + ( orgUnits == null ? "null" : orgUnits ) + " attributeCombo " + ( attributeCombo == null ? "null" : attributeCombo.getName() ) );
private static void validateAocMatchesDataSetCc( MetaDataProperties mdProps ) throws ImportConflictException { // TODO MdCache? CategoryCombo aocCC = mdProps.attrOptCombo.getCategoryCombo(); CategoryCombo dsCc = mdProps.dataSet.getCategoryCombo(); if ( !aocCC.equals( dsCc ) ) { throw new ImportConflictException( new ImportConflict( aocCC.getUid(), String .format( "Attribute option combo: %s must have category combo: %s", aocCC.getUid(), dsCc.getUid() ) ) ); } }