← Back to team overview

dhis2-devs team mailing list archive

[Branch ~dhis2-devs-core/dhis2/trunk] Rev 1080: Introduced an Enum for the Dimension types.

 

------------------------------------------------------------
revno: 1080
committer: Lars Helge Oeverland larshelge@xxxxxxxxx
branch nick: trunk
timestamp: Mon 2009-11-23 12:40:23 +0100
message:
  Introduced an Enum for the Dimension types.
added:
  dhis-2/dhis-api/src/main/java/org/hisp/dhis/dimension/DimensionType.java
modified:
  dhis-2/dhis-api/src/main/java/org/hisp/dhis/dataelement/DataElementCategoryCombo.java
  dhis-2/dhis-api/src/main/java/org/hisp/dhis/dimension/BasicDimensionSet.java
  dhis-2/dhis-api/src/main/java/org/hisp/dhis/dimension/DimensionSet.java
  dhis-2/dhis-api/src/main/java/org/hisp/dhis/reporttable/ReportTable.java
  dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/dimension/DefaultDimensionService.java
  dhis-2/dhis-services/dhis-service-reporting/src/main/resources/org/hisp/dhis/reporttable/hibernate/ReportTable.hbm.xml


--
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/DataElementCategoryCombo.java'
--- dhis-2/dhis-api/src/main/java/org/hisp/dhis/dataelement/DataElementCategoryCombo.java	2009-11-16 10:32:46 +0000
+++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/dataelement/DataElementCategoryCombo.java	2009-11-23 11:40:23 +0000
@@ -36,6 +36,7 @@
 import org.hisp.dhis.dimension.Dimension;
 import org.hisp.dhis.dimension.DimensionOptionElement;
 import org.hisp.dhis.dimension.DimensionSet;
+import org.hisp.dhis.dimension.DimensionType;
 
 /**
  * @author Abyot Aselefew
@@ -72,17 +73,12 @@
 
     public String getDimensionSetId()
     {
-        return TYPE_CATEGORY_COMBO + SEPARATOR_TYPE + id;
-    }
-    
-    public String getDimensionSetType()
-    {
-        return TYPE_CATEGORY_COMBO;
-    }
-    
-    public boolean isDimensionSetType( String type )
-    {
-        return TYPE_CATEGORY_COMBO.equals( type );
+        return DimensionType.CATEGORY.name() + SEPARATOR_TYPE + id;
+    }
+    
+    public DimensionType getDimensionType()
+    {
+        return DimensionType.CATEGORY;
     }
     
     public List<? extends Dimension> getDimensions()

=== modified file 'dhis-2/dhis-api/src/main/java/org/hisp/dhis/dimension/BasicDimensionSet.java'
--- dhis-2/dhis-api/src/main/java/org/hisp/dhis/dimension/BasicDimensionSet.java	2009-11-16 12:30:59 +0000
+++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/dimension/BasicDimensionSet.java	2009-11-23 11:40:23 +0000
@@ -54,7 +54,7 @@
 
     public String getDimensionSetId()
     {
-        StringBuffer identifier = new StringBuffer( TYPE_GROUP_SET + SEPARATOR_TYPE );
+        StringBuffer identifier = new StringBuffer( DimensionType.GROUPSET.name() + SEPARATOR_TYPE );
         
         Iterator<? extends Dimension> iterator = getDimensions().iterator(); 
         
@@ -71,14 +71,9 @@
         return identifier.toString();
     }
 
-    public String getDimensionSetType()
-    {
-        return getDimensionSetId().split( SEPARATOR_TYPE )[0];
-    }
-    
-    public boolean isDimensionSetType( String type )
-    {
-        return getDimensionSetType() != null ? getDimensionSetType().equals( type ) : false;
+    public DimensionType getDimensionType()
+    {
+        return DimensionType.valueOf( getDimensionSetId().split( SEPARATOR_TYPE )[0] );
     }
     
     public List<? extends Dimension> getDimensions()

=== 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-11-16 10:32:46 +0000
+++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/dimension/DimensionSet.java	2009-11-23 11:40:23 +0000
@@ -34,8 +34,6 @@
  */
 public interface DimensionSet
 {
-    final String TYPE_CATEGORY_COMBO = "categoryCombo";
-    final String TYPE_GROUP_SET = "groupSet";
     final String SEPARATOR_TYPE = "_";
     final String SEPARATOR_ID = "-";
     final String SEPARATOR_NAME = ", ";
@@ -44,14 +42,12 @@
     
     /**
      * The DimensionSet identifier is on the format 
-     * [type]SEPARATOR_TYPE[id]SEPARATOR_ID[id]SEPARATOR[id], for instance
+     * [DimensionType]SEPARATOR_TYPE[id]SEPARATOR_ID[id]SEPARATOR[id], for instance
      * groupSet_1-2-3 and categoryCombo_1 .
      */
     String getDimensionSetId();
     
-    String getDimensionSetType();
-
-    boolean isDimensionSetType( String type );
+    DimensionType getDimensionType();
     
     List<? extends Dimension> getDimensions();
     

=== added file 'dhis-2/dhis-api/src/main/java/org/hisp/dhis/dimension/DimensionType.java'
--- dhis-2/dhis-api/src/main/java/org/hisp/dhis/dimension/DimensionType.java	1970-01-01 00:00:00 +0000
+++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/dimension/DimensionType.java	2009-11-23 11:40:23 +0000
@@ -0,0 +1,37 @@
+package org.hisp.dhis.dimension;
+
+/*
+ * Copyright (c) 2004-2007, University of Oslo
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ * * Redistributions of source code must retain the above copyright notice, this
+ *   list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above copyright notice,
+ *   this list of conditions and the following disclaimer in the documentation
+ *   and/or other materials provided with the distribution.
+ * * Neither the name of the HISP project nor the names of its contributors may
+ *   be used to endorse or promote products derived from this software without
+ *   specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
+ * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+/**
+ * @author Lars Helge Overland
+ */
+public enum DimensionType
+{
+    CATEGORY,
+    GROUPSET
+}

=== modified file 'dhis-2/dhis-api/src/main/java/org/hisp/dhis/reporttable/ReportTable.java'
--- dhis-2/dhis-api/src/main/java/org/hisp/dhis/reporttable/ReportTable.java	2009-11-21 16:57:39 +0000
+++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/reporttable/ReportTable.java	2009-11-23 11:40:23 +0000
@@ -27,9 +27,6 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-import static org.hisp.dhis.dimension.DimensionSet.TYPE_CATEGORY_COMBO;
-import static org.hisp.dhis.dimension.DimensionSet.TYPE_GROUP_SET;
-
 import java.io.Serializable;
 import java.util.ArrayList;
 import java.util.HashMap;
@@ -45,6 +42,7 @@
 import org.hisp.dhis.dimension.DimensionOption;
 import org.hisp.dhis.dimension.DimensionOptionElement;
 import org.hisp.dhis.dimension.DimensionSet;
+import org.hisp.dhis.dimension.DimensionType;
 import org.hisp.dhis.i18n.I18nFormat;
 import org.hisp.dhis.indicator.Indicator;
 import org.hisp.dhis.organisationunit.OrganisationUnit;
@@ -114,7 +112,7 @@
     
     private List<OrganisationUnit> units = new ArrayList<OrganisationUnit>();
     
-    private String dimensionSetType;
+    private DimensionType dimensionType;
     
     private DimensionSet categoryCombo;
     
@@ -377,7 +375,7 @@
         // Init dimensional lists
         // ---------------------------------------------------------------------
 
-        if ( isDimensional() && dimensionSetType.equals( TYPE_CATEGORY_COMBO ) )
+        if ( isDimensional() && dimensionType.equals( DimensionType.CATEGORY ) )
         {
             // -----------------------------------------------------------------
             // CategoryCombo is set, populate CategoryOptionCombos
@@ -385,7 +383,7 @@
 
             categoryOptionCombos = categoryCombo.getDimensionOptionElements();
         }
-        else if ( isDimensional() && dimensionSetType.equals( DimensionSet.TYPE_GROUP_SET ) )
+        else if ( isDimensional() && dimensionType.equals( DimensionType.GROUPSET ) )
         {
             // -----------------------------------------------------------------
             // All DataElements have GroupSets, populate DataElements
@@ -515,7 +513,7 @@
 
         if ( doTotal() )
         {
-            List<? extends Dimension> dimensions = isDimensional( TYPE_CATEGORY_COMBO ) ? categoryCombo.getDimensions() : dataElementGroupSets;
+            List<? extends Dimension> dimensions = isDimensional( DimensionType.CATEGORY ) ? categoryCombo.getDimensions() : dataElementGroupSets;
             
             for ( Dimension dimension : dimensions )
             {
@@ -540,9 +538,9 @@
     {
         if ( dimensionSet != null )
         {
-            this.dimensionSetType = dimensionSet.getDimensionSetType();
-            this.categoryCombo = dimensionSet.isDimensionSetType( TYPE_CATEGORY_COMBO ) ? dimensionSet : null;
-            this.dataElementGroupSets = dimensionSet.isDimensionSetType( TYPE_GROUP_SET ) ? dimensionSet.getDimensions() : null;
+            this.dimensionType = dimensionSet.getDimensionType();
+            this.categoryCombo = dimensionType.equals( DimensionType.CATEGORY ) ? dimensionSet : null;
+            this.dataElementGroupSets = dimensionType.equals( DimensionType.GROUPSET ) ? dimensionSet.getDimensions() : null;
         }
     }
     
@@ -679,16 +677,16 @@
      */
     public boolean isDimensional()
     {
-        return dimensionSetType != null;
+        return dimensionType != null;
     }
     
     /**
      * Tests whether this ReportTable is multi-dimensional and of the argument
      * dimension set type.
      */
-    public boolean isDimensional( String dimensionSetType )
+    public boolean isDimensional( DimensionType dimensionType )
     {
-        return isDimensional() && dimensionSetType.equals( dimensionSetType );
+        return isDimensional() && this.dimensionType.equals( dimensionType );
     }
     
     /**
@@ -697,7 +695,7 @@
     public boolean doTotal()
     {
         return !isDoIndicators() && !isDoPeriods() && !isDoUnits() && isDoCategoryOptionCombos() && 
-            isDimensional( DimensionSet.TYPE_CATEGORY_COMBO ) && mode.equals( MODE_DATAELEMENTS );
+            isDimensional( DimensionType.CATEGORY ) && mode.equals( MODE_DATAELEMENTS );
     }
         
     // -------------------------------------------------------------------------
@@ -1086,14 +1084,14 @@
         this.units = units;
     }
 
-    public String getDimensionSetType()
+    public DimensionType getDimensionType()
     {
-        return dimensionSetType;
+        return dimensionType;
     }
 
-    public void setDimensionSetType( String dimensionSetType )
+    public void setDimensionType( DimensionType dimensionType )
     {
-        this.dimensionSetType = dimensionSetType;
+        this.dimensionType = dimensionType;
     }
 
     public DimensionSet getCategoryCombo()

=== 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-11-19 11:04:10 +0000
+++ dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/dimension/DefaultDimensionService.java	2009-11-23 11:40:23 +0000
@@ -27,8 +27,6 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-import static org.hisp.dhis.dimension.DimensionSet.TYPE_CATEGORY_COMBO;
-
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.HashSet;
@@ -42,6 +40,8 @@
 import org.hisp.dhis.dataelement.DataElementService;
 import org.hisp.dhis.system.util.ConversionUtils;
 
+import static org.hisp.dhis.dimension.DimensionType.*;
+
 /**
  * @author Lars Helge Overland
  * @version $Id: Indicator.java 5540 2008-08-19 10:47:07Z larshelg $
@@ -106,28 +106,26 @@
     
     public Collection<DataElement> getDataElements( DimensionSet dimensionSet )
     {
-        if ( dimensionSet == null )
-        {
-            return null;
-        }
+        Collection<DataElement> dataElements = null;
 
-        if ( dimensionSet.getDimensionSetType().equals( TYPE_CATEGORY_COMBO ) )
+        if ( dimensionSet != null && dimensionSet.getDimensionType().equals( CATEGORY ) )
         {
             Integer id = getDimensionSetIdentifiers( dimensionSet.getDimensionSetId() )[0];
 
             DataElementCategoryCombo categoryCombo = categoryService.getDataElementCategoryCombo( id );
 
-            return dataElementService.getDataElementByCategoryCombo( categoryCombo );
-        }
-
-        // TYPE_GROUP_SET
-
-        Integer[] ids = getDimensionSetIdentifiers( dimensionSet.getDimensionSetId() );
-
-        Set<DataElementGroupSet> groupSets = getDataElementDimensionSet( ids );
-
-        return dataElementService.getDataElementsByGroupSets( groupSets );
-
+            dataElements = dataElementService.getDataElementByCategoryCombo( categoryCombo );
+        }
+        else if ( dimensionSet != null && dimensionSet.getDimensionType().equals( GROUPSET ) )
+        {
+            Integer[] ids = getDimensionSetIdentifiers( dimensionSet.getDimensionSetId() );
+    
+            Set<DataElementGroupSet> groupSets = getDataElementDimensionSet( ids );
+    
+            dataElements = dataElementService.getDataElementsByGroupSets( groupSets );
+        }
+        
+        return dataElements;
     }
 
     // -------------------------------------------------------------------------

=== modified file 'dhis-2/dhis-services/dhis-service-reporting/src/main/resources/org/hisp/dhis/reporttable/hibernate/ReportTable.hbm.xml'
--- dhis-2/dhis-services/dhis-service-reporting/src/main/resources/org/hisp/dhis/reporttable/hibernate/ReportTable.hbm.xml	2009-11-16 10:32:46 +0000
+++ dhis-2/dhis-services/dhis-service-reporting/src/main/resources/org/hisp/dhis/reporttable/hibernate/ReportTable.hbm.xml	2009-11-23 11:40:23 +0000
@@ -45,7 +45,7 @@
         class="org.hisp.dhis.dataset.DataSet"/>
     </list>
     
-	<property name="dimensionSetType"/>
+	<property name="dimensionType"/>
 	
     <many-to-one name="categoryCombo" class="org.hisp.dhis.dataelement.DataElementCategoryCombo"
       column="categorycomboid" foreign-key="fk_reporttable_categorycombo"/>