← Back to team overview

dhis2-devs team mailing list archive

[Branch ~dhis2-devs-core/dhis2/trunk] Rev 16125: Equals, hashcode and tostring for TrackedEntityAttributeDimension and TrackedEntityDataElementDim...

 

------------------------------------------------------------
revno: 16125
committer: Lars Helge Overland <larshelge@xxxxxxxxx>
branch nick: dhis2
timestamp: Tue 2014-07-15 01:08:26 +0200
message:
  Equals, hashcode and tostring for TrackedEntityAttributeDimension and TrackedEntityDataElementDimension
modified:
  dhis-2/dhis-api/src/main/java/org/hisp/dhis/common/BaseAnalyticalObject.java
  dhis-2/dhis-api/src/main/java/org/hisp/dhis/trackedentity/TrackedEntityAttributeDimension.java
  dhis-2/dhis-api/src/main/java/org/hisp/dhis/trackedentity/TrackedEntityDataElementDimension.java
  dhis-2/dhis-services/dhis-service-analytics/src/main/java/org/hisp/dhis/analytics/event/EventQueryParams.java
  dhis-2/dhis-services/dhis-service-analytics/src/main/java/org/hisp/dhis/analytics/event/data/DefaultEventAnalyticsService.java
  dhis-2/dhis-services/dhis-service-reporting/src/main/java/org/hisp/dhis/chart/impl/DefaultChartService.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/common/BaseAnalyticalObject.java'
--- dhis-2/dhis-api/src/main/java/org/hisp/dhis/common/BaseAnalyticalObject.java	2014-07-14 22:09:24 +0000
+++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/common/BaseAnalyticalObject.java	2014-07-14 23:08:26 +0000
@@ -785,6 +785,8 @@
         dataElementGroups.clear();
         organisationUnitGroups.clear();
         categoryOptionGroups.clear();
+        attributeDimensions.clear();
+        dataElementDimensions.clear();
         userOrganisationUnit = false;
         userOrganisationUnitChildren = false;
         userOrganisationUnitGrandChildren = false;
@@ -1004,8 +1006,8 @@
 
     @JsonProperty
     @JsonView( { DetailedView.class, ExportView.class } )
-    @JacksonXmlElementWrapper( localName = "attributeDimensions", namespace = DxfNamespaces.DXF_2_0 )
-    @JacksonXmlProperty( localName = "attributeDimension", namespace = DxfNamespaces.DXF_2_0 )
+    @JacksonXmlElementWrapper( localName = "dataElementDimensions", namespace = DxfNamespaces.DXF_2_0 )
+    @JacksonXmlProperty( localName = "dataElementDimension", namespace = DxfNamespaces.DXF_2_0 )
     public List<TrackedEntityDataElementDimension> getDataElementDimensions()
     {
         return dataElementDimensions;

=== modified file 'dhis-2/dhis-api/src/main/java/org/hisp/dhis/trackedentity/TrackedEntityAttributeDimension.java'
--- dhis-2/dhis-api/src/main/java/org/hisp/dhis/trackedentity/TrackedEntityAttributeDimension.java	2014-07-14 22:09:24 +0000
+++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/trackedentity/TrackedEntityAttributeDimension.java	2014-07-14 23:08:26 +0000
@@ -86,7 +86,56 @@
     {
         return attribute != null ? attribute.getDisplayName() : null;
     }
-        
+
+    @Override
+    public String toString()
+    {
+        return "[Id: " + id + ", attribute: " + attribute + ", filter: " + filter + "]";
+    }
+
+    @Override
+    public int hashCode()
+    {
+        int result = id;
+        result = 31 * result + (attribute != null ? attribute.hashCode() : 0);
+        result = 31 * result + (filter != null ? filter.hashCode() : 0);
+
+        return result;
+    }
+
+    @Override
+    public boolean equals( Object o )
+    {
+        if ( this == o )
+        {
+            return true;
+        }
+
+        if ( o == null )
+        {
+            return false;
+        }
+
+        if ( !getClass().isAssignableFrom( o.getClass() ) )
+        {
+            return false;
+        }
+
+        final TrackedEntityAttributeDimension other = (TrackedEntityAttributeDimension) o;
+
+        if ( attribute != null ? !attribute.equals( other.attribute ) : other.attribute != null )
+        {
+            return false;
+        }
+        
+        if ( filter != null ? !filter.equals( other.filter ) : other.filter != null )
+        {
+            return false;
+        }
+        
+        return true;
+    }
+
     // -------------------------------------------------------------------------
     // Getters and setters
     // -------------------------------------------------------------------------

=== modified file 'dhis-2/dhis-api/src/main/java/org/hisp/dhis/trackedentity/TrackedEntityDataElementDimension.java'
--- dhis-2/dhis-api/src/main/java/org/hisp/dhis/trackedentity/TrackedEntityDataElementDimension.java	2014-07-14 22:09:24 +0000
+++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/trackedentity/TrackedEntityDataElementDimension.java	2014-07-14 23:08:26 +0000
@@ -32,7 +32,6 @@
 import org.hisp.dhis.common.DxfNamespaces;
 import org.hisp.dhis.common.view.DetailedView;
 import org.hisp.dhis.common.view.ExportView;
-
 import org.hisp.dhis.dataelement.DataElement;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
@@ -89,6 +88,55 @@
         return dataElement != null ? dataElement.getDisplayName() : null;
     }
     
+    @Override
+    public String toString()
+    {
+        return "[Id: " + id + ", data element: " + dataElement + ", filter: " + filter + "]";
+    }
+
+    @Override
+    public int hashCode()
+    {
+        int result = id;
+        result = 31 * result + (dataElement != null ? dataElement.hashCode() : 0);
+        result = 31 * result + (filter != null ? filter.hashCode() : 0);
+
+        return result;
+    }
+
+    @Override
+    public boolean equals( Object o )
+    {
+        if ( this == o )
+        {
+            return true;
+        }
+
+        if ( o == null )
+        {
+            return false;
+        }
+
+        if ( !getClass().isAssignableFrom( o.getClass() ) )
+        {
+            return false;
+        }
+
+        final TrackedEntityDataElementDimension other = (TrackedEntityDataElementDimension) o;
+
+        if ( dataElement != null ? !dataElement.equals( other.dataElement ) : other.dataElement != null )
+        {
+            return false;
+        }
+        
+        if ( filter != null ? !filter.equals( other.filter ) : other.filter != null )
+        {
+            return false;
+        }
+        
+        return true;
+    }
+
     // -------------------------------------------------------------------------
     // Getters and setters
     // -------------------------------------------------------------------------

=== modified file 'dhis-2/dhis-services/dhis-service-analytics/src/main/java/org/hisp/dhis/analytics/event/EventQueryParams.java'
--- dhis-2/dhis-services/dhis-service-analytics/src/main/java/org/hisp/dhis/analytics/event/EventQueryParams.java	2014-05-10 11:18:29 +0000
+++ dhis-2/dhis-services/dhis-service-analytics/src/main/java/org/hisp/dhis/analytics/event/EventQueryParams.java	2014-07-14 23:08:26 +0000
@@ -270,7 +270,8 @@
             "End date: " + endDate + ", " +
             "Items " + items + ", " +
             "Item filters: " + itemFilters + ", " +
-            "Dimensions " + dimensions + "]";
+            "Dimensions: " + dimensions + ", " +
+            "Filters: " + filters + "]";
     }
     
     // -------------------------------------------------------------------------

=== modified file 'dhis-2/dhis-services/dhis-service-analytics/src/main/java/org/hisp/dhis/analytics/event/data/DefaultEventAnalyticsService.java'
--- dhis-2/dhis-services/dhis-service-analytics/src/main/java/org/hisp/dhis/analytics/event/data/DefaultEventAnalyticsService.java	2014-07-13 09:53:10 +0000
+++ dhis-2/dhis-services/dhis-service-analytics/src/main/java/org/hisp/dhis/analytics/event/data/DefaultEventAnalyticsService.java	2014-07-14 23:08:26 +0000
@@ -32,6 +32,7 @@
 import static org.hisp.dhis.analytics.AnalyticsService.OU_HIERARCHY_KEY;
 import static org.hisp.dhis.common.DimensionalObject.ORGUNIT_DIM_ID;
 import static org.hisp.dhis.common.DimensionalObject.PERIOD_DIM_ID;
+import static org.hisp.dhis.common.DimensionalObjectUtils.DIMENSION_NAME_SEP;
 import static org.hisp.dhis.common.DimensionalObjectUtils.getDimensionFromParam;
 import static org.hisp.dhis.common.DimensionalObjectUtils.getDimensionItemsFromParam;
 import static org.hisp.dhis.common.DimensionalObjectUtils.toDimension;
@@ -56,7 +57,6 @@
 import org.hisp.dhis.common.BaseAnalyticalObject;
 import org.hisp.dhis.common.DimensionType;
 import org.hisp.dhis.common.DimensionalObject;
-import org.hisp.dhis.common.DimensionalObjectUtils;
 import org.hisp.dhis.common.Grid;
 import org.hisp.dhis.common.GridHeader;
 import org.hisp.dhis.common.IdentifiableObject;
@@ -464,7 +464,7 @@
                 }
                 else
                 {
-                    params.getItems().add( getQueryItem( dimension.getDimension() ) );
+                    params.getItems().add( getQueryItem( dimension.getDimension(), dimension.getFilter() ) );
                 }
             }
             
@@ -479,7 +479,7 @@
                 }
                 else
                 {
-                    params.getItemFilters().add( getQueryItem( filter.getDimension() ) );
+                    params.getItemFilters().add( getQueryItem( filter.getDimension(), filter.getFilter() ) );
                 }
             }
         }
@@ -496,13 +496,23 @@
     // Supportive methods
     // -------------------------------------------------------------------------
 
-    private QueryItem getQueryItem( String dimension )
-    {
-        String[] split = dimension.split( DimensionalObjectUtils.DIMENSION_NAME_SEP );
-        
+    private QueryItem getQueryItem( String dimension, String filter )
+    {
+        if ( filter != null )
+        {
+            dimension += DIMENSION_NAME_SEP + filter;
+        }
+                
+        return getQueryItem( dimension );
+    }
+    
+    private QueryItem getQueryItem( String dimensionString )
+    {
+        String[] split = dimensionString.split( DIMENSION_NAME_SEP );
+
         if ( split == null || ( split.length % 2 != 1 ) )
         {
-            throw new IllegalQueryException( "Query item or filter is invalid: " + dimension );
+            throw new IllegalQueryException( "Query item or filter is invalid: " + dimensionString );
         }
         
         QueryItem queryItem = getQuryItemFromUid( split[0] );
@@ -512,10 +522,11 @@
             for ( int i = 1; i < split.length; i += 2 )
             {
                 QueryOperator operator = QueryOperator.fromString( split[i] );
-                queryItem.getFilters().add( new QueryFilter( operator, split[i+1] ) );
+                QueryFilter filter = new QueryFilter( operator, split[i+1] );
+                queryItem.getFilters().add( filter );
             }
         }
-
+        
         return queryItem;
     }
 

=== 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	2014-07-13 14:34:10 +0000
+++ dhis-2/dhis-services/dhis-service-reporting/src/main/java/org/hisp/dhis/chart/impl/DefaultChartService.java	2014-07-14 23:08:26 +0000
@@ -527,6 +527,8 @@
      */
     private JFreeChart getJFreeChart( BaseChart chart )
     {
+        final CategoryDataset[] dataSets = getCategoryDataSet( chart );
+
         final BarRenderer barRenderer = getBarRenderer();
         final LineAndShapeRenderer lineRenderer = getLineRenderer();
 
@@ -536,8 +538,6 @@
 
         CategoryPlot plot = null;
 
-        CategoryDataset[] dataSets = getCategoryDataSet( chart );
-
         if ( chart.isType( TYPE_LINE ) )
         {
             plot = new CategoryPlot( dataSets[0], new CategoryAxis(), new NumberAxis(), lineRenderer );
@@ -736,7 +736,7 @@
         else if ( chart.isAnalyticsType( AnalyticsType.EVENT ) )
         {
             Grid grid = eventAnalyticsService.getAggregatedEventData( chart, chart.getFormat() );
-            
+                        
             chart.setDataItemGrid( grid );
                         
             valueMap = GridUtils.getMetaValueMapping( grid, ( grid.getWidth() - 1 ) );
@@ -748,7 +748,7 @@
         SimpleRegression regression = new SimpleRegression();
 
         BaseAnalyticalObject.sortKeys( valueMap );
-
+        
         for ( NameableObject series : chart.series() )
         {
             double categoryIndex = 0;
@@ -758,10 +758,10 @@
                 categoryIndex++;
 
                 String key = series.getUid() + DIMENSION_SEP + category.getUid();
-                
+
                 // Replace potential operand separator with dimension separator
 
-                key = key.replace( DataElementOperand.SEPARATOR, DIMENSION_SEP );
+                key = key.replace( DataElementOperand.SEPARATOR, DIMENSION_SEP ); //TODO fix issue with keys including . and -
                 
                 // Sort key on components to remove significance of column order