← Back to team overview

dhis2-devs team mailing list archive

[Branch ~dhis2-devs-core/dhis2/trunk] Rev 10044: Simplified code for exploding indicator formulas

 

------------------------------------------------------------
revno: 10044
committer: Lars Helge Øverland <larshelge@xxxxxxxxx>
branch nick: dhis2
timestamp: Thu 2013-03-07 15:10:37 +0100
message:
  Simplified code for exploding indicator formulas
modified:
  dhis-2/dhis-api/src/main/java/org/hisp/dhis/dataelement/DataElementService.java
  dhis-2/dhis-api/src/main/java/org/hisp/dhis/dataelement/DataElementStore.java
  dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/dataelement/DefaultDataElementService.java
  dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/dataelement/hibernate/HibernateDataElementStore.java
  dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/expression/DefaultExpressionService.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/dataelement/DataElementService.java'
--- dhis-2/dhis-api/src/main/java/org/hisp/dhis/dataelement/DataElementService.java	2013-03-01 05:14:56 +0000
+++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/dataelement/DataElementService.java	2013-03-07 14:10:37 +0000
@@ -30,8 +30,8 @@
 import java.util.Collection;
 import java.util.List;
 import java.util.Map;
-import java.util.Set;
 
+import org.hisp.dhis.common.ListMap;
 import org.hisp.dhis.dataset.DataSet;
 import org.hisp.dhis.hierarchy.HierarchyViolationException;
 import org.hisp.dhis.period.PeriodType;
@@ -286,7 +286,13 @@
 
     int getDataElementCountByName( String name );
 
-    Map<String, Set<String>> getDataElementCategoryOptionCombos();
+    /**
+     * Returns a mapping of data element uid and associated category option combo
+     * uids.
+     * 
+     * @return a ListMap.
+     */
+    ListMap<String, String> getDataElementCategoryOptionComboMap();
     
     Map<String, Integer> getDataElementUidIdMap();
 

=== modified file 'dhis-2/dhis-api/src/main/java/org/hisp/dhis/dataelement/DataElementStore.java'
--- dhis-2/dhis-api/src/main/java/org/hisp/dhis/dataelement/DataElementStore.java	2013-01-04 18:10:25 +0000
+++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/dataelement/DataElementStore.java	2013-03-07 14:10:37 +0000
@@ -28,10 +28,9 @@
  */
 
 import java.util.Collection;
-import java.util.Map;
-import java.util.Set;
 
 import org.hisp.dhis.common.GenericNameableObjectStore;
+import org.hisp.dhis.common.ListMap;
 import org.hisp.dhis.dataset.DataSet;
 
 /**
@@ -168,7 +167,13 @@
      */
     Collection<DataElement> getDataElementsByAggregationLevel( int aggregationLevel );
 
-    Map<String, Set<String>> getDataElementCategoryOptionCombos();
+    /**
+     * Returns a mapping of data element uid and associated category option combo
+     * uids.
+     * 
+     * @return a ListMap.
+     */
+    ListMap<String, String> getDataElementCategoryOptionComboMap();
     
     Collection<DataElement> get( DataSet dataSet, String key, Integer max );
 }

=== modified file 'dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/dataelement/DefaultDataElementService.java'
--- dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/dataelement/DefaultDataElementService.java	2013-03-01 04:09:26 +0000
+++ dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/dataelement/DefaultDataElementService.java	2013-03-07 14:10:37 +0000
@@ -29,6 +29,7 @@
 
 import org.hisp.dhis.common.GenericIdentifiableObjectStore;
 import org.hisp.dhis.common.GenericNameableObjectStore;
+import org.hisp.dhis.common.ListMap;
 import org.hisp.dhis.dataelement.comparator.DataElementCategoryComboSizeComparator;
 import org.hisp.dhis.dataset.DataSet;
 import org.hisp.dhis.i18n.I18nService;
@@ -341,11 +342,11 @@
         return i18n( i18nService, dataElementStore.getDataElementsByAggregationLevel( aggregationLevel ) );
     }
 
-    public Map<String, Set<String>> getDataElementCategoryOptionCombos()
+    public ListMap<String, String> getDataElementCategoryOptionComboMap()
     {
-        return dataElementStore.getDataElementCategoryOptionCombos();
+        return dataElementStore.getDataElementCategoryOptionComboMap();
     }
-
+    
     public Map<String, Integer> getDataElementUidIdMap()
     {
         Map<String, Integer> map = new HashMap<String, Integer>();

=== modified file 'dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/dataelement/hibernate/HibernateDataElementStore.java'
--- dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/dataelement/hibernate/HibernateDataElementStore.java	2013-01-28 08:50:29 +0000
+++ dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/dataelement/hibernate/HibernateDataElementStore.java	2013-03-07 14:10:37 +0000
@@ -30,15 +30,14 @@
 import java.sql.ResultSet;
 import java.sql.SQLException;
 import java.util.Collection;
-import java.util.HashMap;
 import java.util.HashSet;
-import java.util.Map;
 import java.util.Set;
 
 import org.hibernate.Criteria;
 import org.hibernate.Query;
 import org.hibernate.Session;
 import org.hibernate.criterion.Restrictions;
+import org.hisp.dhis.common.ListMap;
 import org.hisp.dhis.common.hibernate.HibernateIdentifiableObjectStore;
 import org.hisp.dhis.dataelement.DataElement;
 import org.hisp.dhis.dataelement.DataElementCategoryCombo;
@@ -224,13 +223,13 @@
         return getQuery( hql ).setInteger( "aggregationLevel", aggregationLevel ).list();
     }
 
-    public Map<String, Set<String>> getDataElementCategoryOptionCombos()
+    public ListMap<String, String> getDataElementCategoryOptionComboMap()
     {
-        final String sql = "select de.uid, coc.uid " + "from dataelement de "
+        final String sql = "select de.uid, coc.uid from dataelement de "
             + "join categorycombos_optioncombos cc on de.categorycomboid = cc.categorycomboid "
             + "join categoryoptioncombo coc on cc.categoryoptioncomboid = coc.categoryoptioncomboid";
 
-        final Map<String, Set<String>> sets = new HashMap<String, Set<String>>();
+        final ListMap<String, String> map = new ListMap<String, String>();
 
         jdbcTemplate.query( sql, new RowCallbackHandler()
         {
@@ -238,17 +237,14 @@
             public void processRow( ResultSet rs )
                 throws SQLException
             {
-                String dataElement = rs.getString( 1 );
-                String categoryOptionCombo = rs.getString( 2 );
-
-                Set<String> set = sets.get( dataElement ) != null ? sets.get( dataElement ) : new HashSet<String>();
-
-                set.add( categoryOptionCombo );
-                sets.put( dataElement, set );
+                String de = rs.getString( 1 );
+                String coc = rs.getString( 2 );
+
+                map.putValue( de, coc );
             }
         } );
 
-        return sets;
+        return map;
     }
 
     @SuppressWarnings( "unchecked" )

=== modified file 'dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/expression/DefaultExpressionService.java'
--- dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/expression/DefaultExpressionService.java	2013-02-19 14:20:08 +0000
+++ dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/expression/DefaultExpressionService.java	2013-03-07 14:10:37 +0000
@@ -46,6 +46,7 @@
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.hisp.dhis.common.GenericStore;
+import org.hisp.dhis.common.ListMap;
 import org.hisp.dhis.constant.Constant;
 import org.hisp.dhis.constant.ConstantService;
 import org.hisp.dhis.dataelement.DataElement;
@@ -448,7 +449,7 @@
                 indicator.setExplodedDenominator( substituteExpression( indicator.getDenominator(), days ) );
             }
 
-            final Map<String, Set<String>> dataElementMap = dataElementService.getDataElementCategoryOptionCombos();
+            final ListMap<String, String> dataElementMap = dataElementService.getDataElementCategoryOptionComboMap();
             
             for ( Indicator indicator : indicators )
             {
@@ -458,7 +459,7 @@
         }
     }
     
-    private String explodeExpression( String expression, Map<String, Set<String>> dataElementMap )
+    private String explodeExpression( String expression, ListMap<String, String> dataElementMap )
     {
         if ( expression == null || expression.isEmpty() )
         {