← Back to team overview

dhis2-devs team mailing list archive

[Branch ~dhis2-devs-core/dhis2/trunk] Rev 1089: Simplified some methods in DataMartStore.

 

------------------------------------------------------------
revno: 1089
committer: Lars Helge Oeverland larshelge@xxxxxxxxx
branch nick: trunk
timestamp: Mon 2009-11-23 16:39:31 +0100
message:
  Simplified some methods in DataMartStore.
modified:
  dhis-2/dhis-api/src/main/java/org/hisp/dhis/datamart/DataMartStore.java
  dhis-2/dhis-services/dhis-service-datamart-default/src/main/java/org/hisp/dhis/datamart/jdbc/JdbcDataMartStore.java
  dhis-2/dhis-services/dhis-service-reporting/src/main/java/org/hisp/dhis/chart/impl/DefaultChartService.java
  dhis-2/dhis-services/dhis-service-reporting/src/main/java/org/hisp/dhis/reporttable/impl/DefaultReportTableService.java


--
lp:dhis2
https://code.launchpad.net/~dhis2-devs-core/dhis2/trunk

Your team DHIS 2 developers is subscribed to branch lp:dhis2.
To unsubscribe from this branch go to https://code.launchpad.net/~dhis2-devs-core/dhis2/trunk/+edit-subscription.
=== modified file 'dhis-2/dhis-api/src/main/java/org/hisp/dhis/datamart/DataMartStore.java'
--- dhis-2/dhis-api/src/main/java/org/hisp/dhis/datamart/DataMartStore.java	2009-11-23 15:23:56 +0000
+++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/datamart/DataMartStore.java	2009-11-23 15:39:31 +0000
@@ -34,11 +34,11 @@
 import org.hisp.dhis.aggregation.AggregatedIndicatorValue;
 import org.hisp.dhis.aggregation.AggregatedMapValue;
 import org.hisp.dhis.dataelement.DataElement;
-import org.hisp.dhis.dataelement.DataElementCategoryOption;
 import org.hisp.dhis.dataelement.DataElementCategoryOptionCombo;
 import org.hisp.dhis.dataelement.Operand;
 import org.hisp.dhis.datavalue.DataValue;
 import org.hisp.dhis.datavalue.DeflatedDataValue;
+import org.hisp.dhis.dimension.DimensionOption;
 import org.hisp.dhis.indicator.Indicator;
 import org.hisp.dhis.organisationunit.OrganisationUnit;
 import org.hisp.dhis.period.Period;
@@ -51,8 +51,6 @@
 {
     String ID = DataMartStore.class.getName();
     
-    final double NO_VALUES_REGISTERED = -1;
-
     // ----------------------------------------------------------------------
     // AggregatedDataValue
     // ----------------------------------------------------------------------
@@ -65,19 +63,18 @@
      * @param organisationUnit The OrganisationUnit.
      * @return the aggregated value.
      */
-    Double getTotalAggregatedValue( DataElement dataElement, Period period, OrganisationUnit organisationUnit );
+    Double getAggregatedValue( DataElement dataElement, Period period, OrganisationUnit organisationUnit );
 
     /**
      * Gets the total aggregated value from the datamart table for the given parameters.
      * 
      * @param dataElement The DataElement.
-     * @param categoryOption the DataElementCategoryOption.
+     * @param dimensionOptionElement the DimensionOptionElement.
      * @param period The Period.
      * @param organisationUnit The OrganisationUnit.
      * @return the aggregated value.
      */
-    Double getTotalAggregatedValue( final DataElement dataElement, 
-        final DataElementCategoryOption categoryOption, final Period period, final OrganisationUnit organisationUnit );
+    Double getAggregatedValue( DataElement dataElement, DimensionOption dimensionOption, Period period, OrganisationUnit organisationUnit );
     
     /**
      * Gets the aggregated value from the datamart table for the given parameters.
@@ -88,7 +85,7 @@
      * @param organisationUnit The OrganisationUnit.
      * @return the aggregated value, or -1 if no value exists.
      */
-    double getAggregatedValue( DataElement dataElement, DataElementCategoryOptionCombo categoryOptionCombo, Period period, OrganisationUnit organisationUnit );
+    Double getAggregatedValue( DataElement dataElement, DataElementCategoryOptionCombo categoryOptionCombo, Period period, OrganisationUnit organisationUnit );
     
     /**
      * Gets a collection of AggregatedDataValues.
@@ -131,7 +128,7 @@
      * @param organisationUnit The OrganisationUnit.
      * @return the aggregated value, or -1 if no value exists.
      */
-    double getAggregatedValue( Indicator indicator, Period period, OrganisationUnit unit );
+    Double getAggregatedValue( Indicator indicator, Period period, OrganisationUnit unit );
 
     /**
      * Gets a collection of AggregatedIndicatorValues.

=== modified file 'dhis-2/dhis-services/dhis-service-datamart-default/src/main/java/org/hisp/dhis/datamart/jdbc/JdbcDataMartStore.java'
--- dhis-2/dhis-services/dhis-service-datamart-default/src/main/java/org/hisp/dhis/datamart/jdbc/JdbcDataMartStore.java	2009-11-23 15:23:56 +0000
+++ dhis-2/dhis-services/dhis-service-datamart-default/src/main/java/org/hisp/dhis/datamart/jdbc/JdbcDataMartStore.java	2009-11-23 15:39:31 +0000
@@ -43,13 +43,13 @@
 import org.hisp.dhis.aggregation.AggregatedIndicatorValue;
 import org.hisp.dhis.aggregation.AggregatedMapValue;
 import org.hisp.dhis.dataelement.DataElement;
-import org.hisp.dhis.dataelement.DataElementCategoryOption;
 import org.hisp.dhis.dataelement.DataElementCategoryOptionCombo;
 import org.hisp.dhis.dataelement.Operand;
 import org.hisp.dhis.datamart.CrossTabDataValue;
 import org.hisp.dhis.datamart.DataMartStore;
 import org.hisp.dhis.datavalue.DataValue;
 import org.hisp.dhis.datavalue.DeflatedDataValue;
+import org.hisp.dhis.dimension.DimensionOption;
 import org.hisp.dhis.indicator.Indicator;
 import org.hisp.dhis.jdbc.StatementBuilder;
 import org.hisp.dhis.organisationunit.OrganisationUnit;
@@ -99,7 +99,7 @@
     // AggregatedDataValue
     // -------------------------------------------------------------------------
     
-    public Double getTotalAggregatedValue( DataElement dataElement, Period period, OrganisationUnit organisationUnit )
+    public Double getAggregatedValue( DataElement dataElement, Period period, OrganisationUnit organisationUnit )
     {
         final String sql = 
             "SELECT " + functionMap.get( dataElement.getAggregationOperator() ) + "(value) " +
@@ -111,10 +111,11 @@
         return statementManager.getHolder().queryForDouble( sql );
     }
 
-    public Double getTotalAggregatedValue( DataElement dataElement, 
-        DataElementCategoryOption categoryOption, Period period, OrganisationUnit organisationUnit )
+    public Double getAggregatedValue( DataElement dataElement, DimensionOption dimensionOption, Period period, OrganisationUnit organisationUnit )
     {
-        String ids = getCommaDelimitedString( getIdentifiers( DataElementCategoryOptionCombo.class, categoryOption.getCategoryOptionCombos() ) );
+        // Assuming dimension type CATEGORY for now
+        
+        String ids = getCommaDelimitedString( getIdentifiers( DataElementCategoryOptionCombo.class, dimensionOption.getDimensionOptionElements() ) );
         
         final String sql =
             "SELECT " + functionMap.get( dataElement.getAggregationOperator() ) + "(value)" +
@@ -127,33 +128,18 @@
         return statementManager.getHolder().queryForDouble( sql );
     }
     
-    public double getAggregatedValue( DataElement dataElement, 
+    public Double getAggregatedValue( DataElement dataElement, 
         DataElementCategoryOptionCombo categoryOptionCombo, Period period, OrganisationUnit organisationUnit )
     {
-        final StatementHolder holder = statementManager.getHolder();
+        final String sql =
+            "SELECT value " +
+            "FROM aggregateddatavalue " +
+            "WHERE dataelementid = " + dataElement.getId() + " " +
+            "AND categoryoptioncomboid = " + categoryOptionCombo.getId() + " " +
+            "AND periodid = " + period.getId() + " " +
+            "AND organisationunitid = " + organisationUnit.getId();
         
-        try
-        {
-            final String sql =
-                "SELECT value " +
-                "FROM aggregateddatavalue " +
-                "WHERE dataelementid = " + dataElement.getId() + " " +
-                "AND categoryoptioncomboid = " + categoryOptionCombo.getId() + " " +
-                "AND periodid = " + period.getId() + " " +
-                "AND organisationunitid = " + organisationUnit.getId();
-            
-            final ResultSet resultSet = holder.getStatement().executeQuery( sql );
-            
-            return resultSet.next() ? resultSet.getDouble( 1 ) : -1;
-        }
-        catch ( SQLException ex )
-        {
-            throw new RuntimeException( "Failed to get aggregated data value", ex );
-        }
-        finally
-        {
-            holder.close();
-        }
+        return statementManager.getHolder().queryForDouble( sql );
     }
     
     public Collection<AggregatedDataValue> getAggregatedDataValues( int dataElementId, 
@@ -206,31 +192,16 @@
     // AggregatedIndicatorValue
     // -------------------------------------------------------------------------
 
-    public double getAggregatedValue( Indicator indicator, Period period, OrganisationUnit organisationUnit )
+    public Double getAggregatedValue( Indicator indicator, Period period, OrganisationUnit organisationUnit )
     {
-        final StatementHolder holder = statementManager.getHolder();
+        final String sql =
+            "SELECT value " +
+            "FROM aggregatedindicatorvalue " +
+            "WHERE indicatorid = " + indicator.getId() + " " +
+            "AND periodid = " + period.getId() + " " +
+            "AND organisationunitid = " + organisationUnit.getId();
         
-        try
-        {
-            final String sql =
-                "SELECT value " +
-                "FROM aggregatedindicatorvalue " +
-                "WHERE indicatorid = " + indicator.getId() + " " +
-                "AND periodid = " + period.getId() + " " +
-                "AND organisationunitid = " + organisationUnit.getId();
-            
-            final ResultSet resultSet = holder.getStatement().executeQuery( sql );
-            
-            return resultSet.next() ? resultSet.getDouble( 1 ) : -1;
-        }
-        catch ( SQLException ex )
-        {
-            throw new RuntimeException( "Failed to get aggregated indicator value", ex );
-        }
-        finally
-        {
-            holder.close();
-        }
+        return statementManager.getHolder().queryForDouble( sql );
     }
 
     public Collection<AggregatedIndicatorValue> getAggregatedIndicatorValues( Collection<Integer> periodIds, Collection<Integer> organisationUnitIds )

=== modified file 'dhis-2/dhis-services/dhis-service-reporting/src/main/java/org/hisp/dhis/chart/impl/DefaultChartService.java'
--- dhis-2/dhis-services/dhis-service-reporting/src/main/java/org/hisp/dhis/chart/impl/DefaultChartService.java	2009-06-19 09:00:57 +0000
+++ dhis-2/dhis-services/dhis-service-reporting/src/main/java/org/hisp/dhis/chart/impl/DefaultChartService.java	2009-11-23 15:39:31 +0000
@@ -299,13 +299,13 @@
 
                     for ( Period period : chart.getPeriods() )
                     {
-                        final double value = dataMartStore.getAggregatedValue( indicator, period, selectedOrganisationUnit );
+                        final Double value = dataMartStore.getAggregatedValue( indicator, period, selectedOrganisationUnit );
 
-                        regularDataSet.addValue( value != -1 ? value : 0, indicator.getShortName(), chart.getFormat().formatPeriod( period ) );
+                        regularDataSet.addValue( value != null ? value : 0, indicator.getShortName(), chart.getFormat().formatPeriod( period ) );
                         
                         columnIndex++;
                         
-                        if ( value != -1.0 && value != 0.0 ) // Omit missing values and 0 from regression
+                        if ( value != null && value != 0.0 ) // Omit missing values and 0 from regression
                         {
                             regression.addData( columnIndex, value );
                         }
@@ -338,9 +338,9 @@
 
                     for ( OrganisationUnit unit : chart.getOrganisationUnits() )
                     {
-                        final double value = dataMartStore.getAggregatedValue( indicator, selectedPeriod, unit );
+                        final Double value = dataMartStore.getAggregatedValue( indicator, selectedPeriod, unit );
                         
-                        regularDataSet.addValue( value != -1 ? value : 0, indicator.getShortName(), unit.getShortName() );
+                        regularDataSet.addValue( value != null ? value : 0, indicator.getShortName(), unit.getShortName() );
                         
                         columnIndex++;
                     }

=== modified file 'dhis-2/dhis-services/dhis-service-reporting/src/main/java/org/hisp/dhis/reporttable/impl/DefaultReportTableService.java'
--- dhis-2/dhis-services/dhis-service-reporting/src/main/java/org/hisp/dhis/reporttable/impl/DefaultReportTableService.java	2009-11-21 16:57:39 +0000
+++ dhis-2/dhis-services/dhis-service-reporting/src/main/java/org/hisp/dhis/reporttable/impl/DefaultReportTableService.java	2009-11-23 15:39:31 +0000
@@ -662,10 +662,10 @@
                             for ( DimensionOption dimensionOption : reportTable.getDimensionOptions() )
                             {
                                 grid.addValue( String.valueOf( dataMartStore.
-                                    getTotalAggregatedValue( (DataElement) metaObject, (DataElementCategoryOption) dimensionOption, period, unit ) ) );
+                                    getAggregatedValue( (DataElement) metaObject, dimensionOption, period, unit ) ) );
                             }
                             
-                            grid.addValue( String.valueOf( dataMartStore.getTotalAggregatedValue( (DataElement) metaObject, period, unit ) ) );
+                            grid.addValue( String.valueOf( dataMartStore.getAggregatedValue( (DataElement) metaObject, period, unit ) ) );
                         }
                     }
                 }