private void handleCategoryDimensions( Session session, Schema schema, BaseAnalyticalObject analyticalObject, ObjectBundle bundle ) { if ( !schema.havePersistedProperty( "categoryDimensions" ) ) return; for ( CategoryDimension categoryDimension : analyticalObject.getCategoryDimensions() ) { if ( categoryDimension == null ) { continue; } categoryDimension.setDimension( bundle.getPreheat().get( bundle.getPreheatIdentifier(), categoryDimension.getDimension() ) ); List<CategoryOption> categoryOptions = new ArrayList<>( categoryDimension.getItems() ); categoryDimension.getItems().clear(); categoryOptions.forEach( co -> { CategoryOption categoryOption = bundle.getPreheat().get( bundle.getPreheatIdentifier(), co ); if ( categoryOption != null ) categoryDimension.getItems().add( categoryOption ); } ); preheatService.connectReferences( categoryDimension, bundle.getPreheat(), bundle.getPreheatIdentifier() ); session.save( categoryDimension ); } }
addIdentifiers( map, categoryDimension.getDimension() ); categoryDimension.getItems().forEach( item -> addIdentifiers( map, item ) ); } );
CategoryDimension categoryDimension = new CategoryDimension(); categoryDimension.setDimension( idObjectManager.get( Category.class, dimensionId ) ); categoryDimension.getItems().addAll( idObjectManager.getByUidOrdered( CategoryOption.class, uids ) );
/** * Returns meta-data mapping for this analytical object. Includes a identifier * to name mapping for dynamic dimensions. */ public Map<String, String> getMetaData() { final Map<String, String> meta = new HashMap<>(); //TODO use getDimension() instead of getUid() ? dataElementGroupSetDimensions.forEach( dim -> meta.put( dim.getDimension().getUid(), dim.getDimension().getDisplayName() ) ); organisationUnitGroupSetDimensions.forEach( group -> meta.put( group.getDimension().getUid(), group.getDimension().getDisplayName() ) ); categoryDimensions.forEach( dim -> meta.put( dim.getDimension().getUid(), dim.getDimension().getDisplayName() ) ); return meta; }