=== 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 @@ -368,7 +371,7 @@ } } - List importConflicts = new ArrayList<>(); + Set importConflicts = new HashSet<>(); importConflicts.addAll( checkAttributes( enrollment ) ); importSummary.setConflicts( importConflicts ); @@ -432,7 +435,7 @@ return importSummary; } - List importConflicts = new ArrayList<>(); + Set 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 @@ -202,7 +205,7 @@ trackedEntityInstance.trimValuesToNull(); - List importConflicts = new ArrayList<>(); + Set importConflicts = new HashSet<>(); importConflicts.addAll( checkTrackedEntity( trackedEntityInstance ) ); importConflicts.addAll( checkAttributes( trackedEntityInstance ) ); @@ -240,7 +243,7 @@ trackedEntityInstance.trimValuesToNull(); - List importConflicts = new ArrayList<>(); + Set 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 conflicts = new ArrayList<>(); + private Set 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 getConflicts() + public Set getConflicts() { return conflicts; } - public void setConflicts( List conflicts ) + public void setConflicts( Set 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() );