dhis2-devs team mailing list archive
-
dhis2-devs team
-
Mailing list archive
-
Message #36790
[Branch ~dhis2-devs-core/dhis2/trunk] Rev 18811: ImportSummary, using Set instead of List for conflicts. Added hashCode/equals to ImportSummary. T...
------------------------------------------------------------
revno: 18811
committer: Lars Helge Overland <larshelge@xxxxxxxxx>
branch nick: dhis2
timestamp: Sun 2015-04-05 22:00:35 +0200
message:
ImportSummary, using Set instead of List for conflicts. Added hashCode/equals to ImportSummary. This is useful e.g. for large data imports where a few data elements are missing and we want to avoid huge import summaries.
modified:
dhis-2/dhis-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/events/enrollment/AbstractEnrollmentService.java
dhis-2/dhis-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/events/trackedentity/AbstractTrackedEntityInstanceService.java
dhis-2/dhis-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/importsummary/ImportConflict.java
dhis-2/dhis-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/importsummary/ImportSummary.java
dhis-2/dhis-services/dhis-service-dxf2/src/test/java/org/hisp/dhis/dxf2/datavalueset/DataValueSetServiceTest.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-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/events/enrollment/AbstractEnrollmentService.java'
--- dhis-2/dhis-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/events/enrollment/AbstractEnrollmentService.java 2015-02-25 08:23:37 +0000
+++ dhis-2/dhis-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/events/enrollment/AbstractEnrollmentService.java 2015-04-05 20:00:35 +0000
@@ -30,6 +30,7 @@
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
+
import org.hisp.dhis.common.Grid;
import org.hisp.dhis.common.IdentifiableObjectManager;
import org.hisp.dhis.common.IdentifiableObjectUtils;
@@ -68,8 +69,10 @@
import java.util.Arrays;
import java.util.Collection;
import java.util.Date;
+import java.util.HashSet;
import java.util.List;
import java.util.Map;
+import java.util.Set;
/**
* @author Morten Olav Hansen <mortenoh@xxxxxxxxx>
@@ -368,7 +371,7 @@
}
}
- List<ImportConflict> importConflicts = new ArrayList<>();
+ Set<ImportConflict> importConflicts = new HashSet<>();
importConflicts.addAll( checkAttributes( enrollment ) );
importSummary.setConflicts( importConflicts );
@@ -432,7 +435,7 @@
return importSummary;
}
- List<ImportConflict> importConflicts = new ArrayList<>();
+ Set<ImportConflict> importConflicts = new HashSet<>();
importConflicts.addAll( checkAttributes( enrollment ) );
importSummary.setConflicts( importConflicts );
=== modified file 'dhis-2/dhis-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/events/trackedentity/AbstractTrackedEntityInstanceService.java'
--- dhis-2/dhis-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/events/trackedentity/AbstractTrackedEntityInstanceService.java 2015-02-24 03:57:26 +0000
+++ dhis-2/dhis-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/events/trackedentity/AbstractTrackedEntityInstanceService.java 2015-04-05 20:00:35 +0000
@@ -29,6 +29,7 @@
*/
import com.google.common.collect.Lists;
+
import org.hisp.dhis.common.CodeGenerator;
import org.hisp.dhis.common.Grid;
import org.hisp.dhis.common.IdentifiableObjectManager;
@@ -57,7 +58,9 @@
import java.util.ArrayList;
import java.util.Collection;
+import java.util.HashSet;
import java.util.List;
+import java.util.Set;
/**
* @author Morten Olav Hansen <mortenoh@xxxxxxxxx>
@@ -202,7 +205,7 @@
trackedEntityInstance.trimValuesToNull();
- List<ImportConflict> importConflicts = new ArrayList<>();
+ Set<ImportConflict> importConflicts = new HashSet<>();
importConflicts.addAll( checkTrackedEntity( trackedEntityInstance ) );
importConflicts.addAll( checkAttributes( trackedEntityInstance ) );
@@ -240,7 +243,7 @@
trackedEntityInstance.trimValuesToNull();
- List<ImportConflict> importConflicts = new ArrayList<>();
+ Set<ImportConflict> importConflicts = new HashSet<>();
importConflicts.addAll( checkRelationships( trackedEntityInstance ) );
importConflicts.addAll( checkAttributes( trackedEntityInstance ) );
=== modified file 'dhis-2/dhis-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/importsummary/ImportConflict.java'
--- dhis-2/dhis-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/importsummary/ImportConflict.java 2015-01-17 07:41:26 +0000
+++ dhis-2/dhis-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/importsummary/ImportConflict.java 2015-04-05 20:00:35 +0000
@@ -28,10 +28,11 @@
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
+import org.hisp.dhis.common.DxfNamespaces;
+
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty;
import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlRootElement;
-import org.hisp.dhis.common.DxfNamespaces;
@JacksonXmlRootElement( localName = "conflict", namespace = DxfNamespaces.DXF_2_0 )
public class ImportConflict
@@ -50,6 +51,10 @@
this.value = value;
}
+ // -------------------------------------------------------------------------
+ // Getters and setters
+ // -------------------------------------------------------------------------
+
@JsonProperty
@JacksonXmlProperty( isAttribute = true )
public String getObject()
@@ -74,6 +79,55 @@
this.value = value;
}
+ // -------------------------------------------------------------------------
+ // equals, hashCode, toString
+ // -------------------------------------------------------------------------
+
+ @Override
+ public int hashCode()
+ {
+ int result = object != null ? object.hashCode() : 0;
+ result = 31 * result + ( value != null ? value.hashCode() : 0 );
+
+ return result;
+ }
+
+ /**
+ * Class check uses isAssignableFrom and get-methods to handle proxied objects.
+ */
+ @Override
+ public boolean equals( Object o )
+ {
+ if ( this == o )
+ {
+ return true;
+ }
+
+ if ( o == null )
+ {
+ return false;
+ }
+
+ if ( !getClass().isAssignableFrom( o.getClass() ) )
+ {
+ return false;
+ }
+
+ final ImportConflict other = (ImportConflict) o;
+
+ if ( object != null ? !object.equals( other.object ) : other.object != null )
+ {
+ return false;
+ }
+
+ if ( value != null ? !value.equals( other.value ) : other.value != null )
+ {
+ return false;
+ }
+
+ return true;
+ }
+
@Override
public String toString()
{
=== modified file 'dhis-2/dhis-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/importsummary/ImportSummary.java'
--- dhis-2/dhis-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/importsummary/ImportSummary.java 2015-02-20 12:35:55 +0000
+++ dhis-2/dhis-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/importsummary/ImportSummary.java 2015-04-05 20:00:35 +0000
@@ -28,14 +28,15 @@
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
+import java.util.HashSet;
+import java.util.Set;
+
+import org.hisp.dhis.common.DxfNamespaces;
+
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlElementWrapper;
import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty;
import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlRootElement;
-import org.hisp.dhis.common.DxfNamespaces;
-
-import java.util.ArrayList;
-import java.util.List;
@JacksonXmlRootElement( localName = "importSummary", namespace = DxfNamespaces.DXF_2_0 )
public class ImportSummary
@@ -46,7 +47,7 @@
private ImportCount importCount = new ImportCount();
- private List<ImportConflict> conflicts = new ArrayList<>();
+ private Set<ImportConflict> conflicts = new HashSet<>();
private String dataSetComplete;
@@ -121,12 +122,12 @@
@JsonProperty
@JacksonXmlElementWrapper( localName = "conflicts", namespace = DxfNamespaces.DXF_2_0 )
@JacksonXmlProperty( localName = "conflict", namespace = DxfNamespaces.DXF_2_0 )
- public List<ImportConflict> getConflicts()
+ public Set<ImportConflict> getConflicts()
{
return conflicts;
}
- public void setConflicts( List<ImportConflict> conflicts )
+ public void setConflicts( Set<ImportConflict> conflicts )
{
this.conflicts = conflicts;
}
=== modified file 'dhis-2/dhis-services/dhis-service-dxf2/src/test/java/org/hisp/dhis/dxf2/datavalueset/DataValueSetServiceTest.java'
--- dhis-2/dhis-services/dhis-service-dxf2/src/test/java/org/hisp/dhis/dxf2/datavalueset/DataValueSetServiceTest.java 2015-02-20 12:35:55 +0000
+++ dhis-2/dhis-services/dhis-service-dxf2/src/test/java/org/hisp/dhis/dxf2/datavalueset/DataValueSetServiceTest.java 2015-04-05 20:00:35 +0000
@@ -407,7 +407,7 @@
ImportSummary summary = dataValueSetService.saveDataValueSet( in );
- assertEquals( 3, summary.getConflicts().size() );
+ assertEquals( 2, summary.getConflicts().size() );
assertEquals( 1, summary.getImportCount().getImported() );
assertEquals( 0, summary.getImportCount().getUpdated() );
assertEquals( 0, summary.getImportCount().getDeleted() );