=== modified file 'dhis-2/dhis-api/src/main/java/org/hisp/dhis/dataelement/DataElement.java' --- dhis-2/dhis-api/src/main/java/org/hisp/dhis/dataelement/DataElement.java 2009-11-06 10:50:01 +0000 +++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/dataelement/DataElement.java 2009-11-06 11:58:30 +0000 @@ -237,7 +237,17 @@ public List getDimensionOptionElements() { - return null; + List dimensionOptionElements = new ArrayList(); + + for ( Dimension dimension : getDimensions() ) + { + for ( DimensionOption dimensionOption : dimension.getDimensionOptions() ) + { + dimensionOptionElements.addAll( dimensionOption.getDimensionOptionElements() ); + } + } + + return dimensionOptionElements; } public List getDimensionOptions() === modified file 'dhis-2/dhis-api/src/main/java/org/hisp/dhis/dataelement/DataElementCategoryCombo.java' --- dhis-2/dhis-api/src/main/java/org/hisp/dhis/dataelement/DataElementCategoryCombo.java 2009-11-05 19:04:58 +0000 +++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/dataelement/DataElementCategoryCombo.java 2009-11-06 11:58:30 +0000 @@ -34,6 +34,7 @@ import java.util.Set; import org.hisp.dhis.dimension.Dimension; +import org.hisp.dhis.dimension.DimensionOptionElement; import org.hisp.dhis.dimension.DimensionSet; /** @@ -74,6 +75,11 @@ return categories; } + public List getDimensionOptionElements() + { + return new ArrayList( optionCombos ); + } + // ------------------------------------------------------------------------- // Constructors // ------------------------------------------------------------------------- === modified file 'dhis-2/dhis-api/src/main/java/org/hisp/dhis/dimension/DimensionService.java' --- dhis-2/dhis-api/src/main/java/org/hisp/dhis/dimension/DimensionService.java 2009-11-03 11:34:31 +0000 +++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/dimension/DimensionService.java 2009-11-06 11:58:30 +0000 @@ -38,7 +38,11 @@ Collection getAllDimensionSets(); - Collection getAllDimensions(); - - Collection getAllDimensionOptions(); + Collection getDataElementDimensionSets(); + + DimensionSet getDataElementDimensionSetByName( String name ); + + Collection getIndicatorDimensionSets(); + + DimensionSet getIndicatorDimensionSetByName( String name ); } === modified file 'dhis-2/dhis-api/src/main/java/org/hisp/dhis/dimension/DimensionSet.java' --- dhis-2/dhis-api/src/main/java/org/hisp/dhis/dimension/DimensionSet.java 2009-10-27 18:39:55 +0000 +++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/dimension/DimensionSet.java 2009-11-06 11:58:30 +0000 @@ -37,4 +37,6 @@ String getName(); List getDimensions(); + + List getDimensionOptionElements(); } === modified file 'dhis-2/dhis-api/src/main/java/org/hisp/dhis/indicator/Indicator.java' --- dhis-2/dhis-api/src/main/java/org/hisp/dhis/indicator/Indicator.java 2009-11-06 10:21:54 +0000 +++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/indicator/Indicator.java 2009-11-06 11:58:30 +0000 @@ -115,6 +115,21 @@ { return new ArrayList( groups ); } + + public List getDimensionOptionElements() + { + List dimensionOptionElements = new ArrayList(); + + for ( Dimension dimension : getDimensions() ) + { + for ( DimensionOption dimensionOption : dimension.getDimensionOptions() ) + { + dimensionOptionElements.addAll( dimensionOption.getDimensionOptionElements() ); + } + } + + return dimensionOptionElements; + } public boolean isDimensionSet() { === modified file 'dhis-2/dhis-api/src/test/java/org/hisp/dhis/dataelement/DimensionTest.java' --- dhis-2/dhis-api/src/test/java/org/hisp/dhis/dataelement/DimensionTest.java 2009-10-27 18:39:55 +0000 +++ dhis-2/dhis-api/src/test/java/org/hisp/dhis/dataelement/DimensionTest.java 2009-11-06 11:58:30 +0000 @@ -27,10 +27,12 @@ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ +import java.util.List; import java.util.Map; import org.hisp.dhis.dimension.Dimension; import org.hisp.dhis.dimension.DimensionOption; +import org.hisp.dhis.dimension.DimensionOptionElement; import org.hisp.dhis.datavalue.DataValue; import org.hisp.dhis.organisationunit.OrganisationUnit; import org.hisp.dhis.period.MonthlyPeriodType; @@ -78,6 +80,8 @@ Map dimensions = dataValue.getDimensions( diseaseByType ); + // Test Measure.getDimensions + assertEquals( 4, dimensions.size() ); assertTrue( dimensions.keySet().contains( diseaseType ) ); @@ -105,5 +109,23 @@ assertTrue( dimensions.values().contains( diabetes ) ); assertTrue( dimensions.values().contains( period ) ); assertTrue( dimensions.values().contains( source ) ); + + // Test Dimension.getDimensionOption + + assertEquals( communicable, diseaseType.getDimensionOption( hivAids ) ); + assertEquals( communicable, diseaseType.getDimensionOption( malaria ) ); + assertEquals( nonCommunicable, diseaseType.getDimensionOption( diabetes ) ); + assertEquals( nonCommunicable, diseaseType.getDimensionOption( cancer ) ); + + // Test DimensionSet.getDimensionOptionElements + + List dimensionOptionElements = diseaseByType.getDimensionOptionElements(); + + assertEquals( 4, dimensionOptionElements.size() ); + + assertTrue( dimensionOptionElements.contains( hivAids ) ); + assertTrue( dimensionOptionElements.contains( malaria ) ); + assertTrue( dimensionOptionElements.contains( diabetes ) ); + assertTrue( dimensionOptionElements.contains( cancer ) ); } } === modified file 'dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/dimension/DefaultDimensionService.java' --- dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/dimension/DefaultDimensionService.java 2009-10-27 18:39:55 +0000 +++ dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/dimension/DefaultDimensionService.java 2009-11-06 11:58:30 +0000 @@ -30,9 +30,6 @@ import java.util.ArrayList; import java.util.Collection; -import org.hisp.dhis.dimension.Dimension; -import org.hisp.dhis.dimension.DimensionOption; -import org.hisp.dhis.dimension.DimensionSet; import org.hisp.dhis.dataelement.DataElement; import org.hisp.dhis.dataelement.DataElementCategoryService; import org.hisp.dhis.dataelement.DataElementService; @@ -74,18 +71,70 @@ // ------------------------------------------------------------------------- // DimensionService implementation // ------------------------------------------------------------------------- + + public Collection getDataElementDimensionSets() + { + Collection dimensionSets = new ArrayList(); + + for ( DataElement dataElement : dataElementService.getAllDataElements() ) + { + if ( dataElement.isDimensionSet() ) + { + dimensionSets.add( dataElement ); + } + } + + dimensionSets.addAll( categoryService.getAllDataElementCategoryCombos() ); + + return dimensionSets; + } + + public DimensionSet getDataElementDimensionSetByName( String name ) + { + for ( DimensionSet dimensionSet : getDataElementDimensionSets() ) + { + if ( dimensionSet.getName().equals( name ) ) + { + return dimensionSet; + } + } + + return null; + } + + public Collection getIndicatorDimensionSets() + { + Collection dimensionSets = new ArrayList(); + + for ( DataElement dataElement : dataElementService.getAllDataElements() ) + { + if ( dataElement.isDimensionSet() ) + { + dimensionSets.add( dataElement ); + } + } + + dimensionSets.addAll( categoryService.getAllDataElementCategoryCombos() ); + + return dimensionSets; + } + + public DimensionSet getIndicatorDimensionSetByName( String name ) + { + for ( DimensionSet dimensionSet : getIndicatorDimensionSets() ) + { + if ( dimensionSet.getName().equals( name ) ) + { + return dimensionSet; + } + } + + return null; + } public Collection getAllDimensionSets() { - Collection dimensionSets = new ArrayList(); - - for ( DataElement dataElement : dataElementService.getAllDataElements() ) - { - if ( dataElement.isDimensionSet() ) - { - dimensionSets.add( dataElement ); - } - } + Collection dimensionSets = getDataElementDimensionSets(); for ( Indicator indicator : indicatorService.getAllIndicators() ) { @@ -95,30 +144,6 @@ } } - dimensionSets.addAll( categoryService.getAllDataElementCategoryCombos() ); - return dimensionSets; } - - public Collection getAllDimensions() - { - Collection dimensions = new ArrayList(); - - dimensions.addAll( dataElementService.getAllDataElementGroupSets() ); - dimensions.addAll( indicatorService.getAllIndicatorGroupSets() ); - dimensions.addAll( categoryService.getAllDataElementCategories() ); - - return dimensions; - } - - public Collection getAllDimensionOptions() - { - Collection dimensionOptions = new ArrayList(); - - dimensionOptions.addAll( dataElementService.getAllDataElementGroups() ); - dimensionOptions.addAll( indicatorService.getAllIndicatorGroups() ); - dimensionOptions.addAll( categoryService.getAllDataElementCategoryOptions() ); - - return dimensionOptions; - } }