public void removeCategoryCombo( CategoryCombo categoryCombo ) { categoryCombos.remove( categoryCombo ); categoryCombo.getCategories().remove( this ); }
public void addCategoryCombo( CategoryCombo categoryCombo ) { categoryCombos.add( categoryCombo ); categoryCombo.getCategories().add( this ); }
public void removeAllCategoryCombos() { for ( CategoryCombo categoryCombo : categoryCombos ) { categoryCombo.getCategories().remove( this ); } categoryCombos.clear(); }
@Override public String validateCategoryCombo( CategoryCombo categoryCombo ) { if ( categoryCombo == null ) { return "category_combo_is_null"; } if ( categoryCombo.getCategories() == null || categoryCombo.getCategories().isEmpty() ) { return "category_combo_must_have_at_least_one_category"; } if ( Sets.newHashSet( categoryCombo.getCategories() ).size() < categoryCombo.getCategories().size() ) { return "category_combo_cannot_have_duplicate_categories"; } Set<CategoryOption> categoryOptions = new HashSet<CategoryOption>(); for ( Category category : categoryCombo.getCategories() ) { if ( category == null || category.getCategoryOptions().isEmpty() ) { return "categories_must_have_at_least_one_category_option"; } if ( !Sets.intersection( categoryOptions, Sets.newHashSet( category.getCategoryOptions() ) ).isEmpty() ) { return "categories_cannot_share_category_options"; } } return null; }
@Override public void updateOptionCombos( Category category ) { for ( CategoryCombo categoryCombo : getAllCategoryCombos() ) { if ( categoryCombo.getCategories().contains( category ) ) { updateOptionCombos( categoryCombo ); } } }
@Override public String getName() { if ( name != null ) { return name; } StringBuilder builder = new StringBuilder(); if ( categoryCombo == null || categoryCombo.getCategories().isEmpty() ) { return uid; } List<Category> categories = categoryCombo.getCategories(); for ( Category category : categories ) { List<CategoryOption> options = category.getCategoryOptions(); optionLoop: for ( CategoryOption option : categoryOptions ) { if ( options.contains( option ) ) { builder.append( option.getDisplayName() ).append( ", " ); continue optionLoop; } } } builder.delete( Math.max( builder.length() - 2, 0 ), builder.length() ); return StringUtils.substring( builder.toString(), 0, 255 ); }
/** * Returns a set of category option group sets which are linked to this data * set through its category combination. */ public Set<CategoryOptionGroupSet> getCategoryOptionGroupSets() { Set<CategoryOptionGroupSet> groupSets = new HashSet<>(); if ( categoryCombo != null ) { for ( Category category : categoryCombo.getCategories() ) { for ( CategoryOption categoryOption : category.getCategoryOptions() ) { groupSets.addAll( categoryOption.getGroupSets() ); } } } return groupSets; }
/** * @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; }
.map( de -> ((DataElement) de).getCategoryCombos() ) .flatMap( cc -> cc.stream() ) .map( cc -> cc.getCategories() ) .flatMap( c -> c.stream() ) .filter( Category::isDataDimension ) .map( de -> ((DataElement) de).getDataSets() ) .flatMap( ds -> ds.stream() ) .map( ds -> ds.getCategoryCombo().getCategories() ) .flatMap( c -> c.stream() ) .filter( Category::isDataDimension )
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; } }
private Map<String, Category> getCodeCategoryMap( CategoryCombo categoryCombo ) throws AdxException { Map<String, Category> categoryMap = new HashMap<>(); List<Category> categories = categoryCombo.getCategories(); for ( Category category : categories ) { String categoryCode = category.getCode(); if ( categoryCode == null || !XMLChar.isValidName( categoryCode ) ) { throw new AdxException( "Category code for " + category.getName() + " is missing or invalid: " + categoryCode ); } categoryMap.put( category.getCode(), category ); } return categoryMap; }
categories.addAll( categoryCombo.getCategories() );
private void addExplodedCategoryAttributes( CategoryOptionCombo coc ) throws AdxException { Map<String, String> categoryAttributes = new HashMap<>(); if ( !coc.isDefault() ) { for ( Category category : coc.getCategoryCombo().getCategories() ) { String categoryCode = category.getCode(); if ( categoryCode == null || !XMLChar.isValidName( categoryCode ) ) { throw new AdxException( "Category code for " + category.getName() + " is missing or invalid: " + categoryCode ); } String catOptCode = category.getCategoryOption( coc ).getCode(); if ( catOptCode == null || catOptCode.isEmpty() ) { throw new AdxException( "CategoryOption code for " + category.getCategoryOption( coc ).getName() + " is missing" ); } categoryAttributes.put( categoryCode, catOptCode ); } } categoryOptionMap.put( coc.getId(), categoryAttributes ); }
ccMap = new HashMap<>(); categories = categoryCombo.getCategories();
List<Category> categories = program.getCategoryCombo().getCategories();