=== modified file 'dhis-2/dhis-api/src/main/java/org/hisp/dhis/dataset/DataSet.java' --- dhis-2/dhis-api/src/main/java/org/hisp/dhis/dataset/DataSet.java 2011-05-30 14:56:19 +0000 +++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/dataset/DataSet.java 2011-05-30 15:17:51 +0000 @@ -27,7 +27,6 @@ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -import java.util.Collection; import java.util.HashSet; import java.util.Set; @@ -62,7 +61,7 @@ /** * All DataElements associated with this DataSet. */ - private Collection dataElements = new HashSet(); + private Set dataElements = new HashSet(); /** * Indicators associated with this data set. Indicators are used for view and @@ -177,6 +176,34 @@ } } + public void addDataElement( DataElement dataElement ) + { + dataElements.add( dataElement ); + dataElement.getDataSets().add( this ); + } + + public void removeDataElement( DataElement dataElement ) + { + dataElements.remove( dataElement ); + dataElement.getDataSets().remove( dataElement ); + } + + public void updateDataElements( Set updates ) + { + for ( DataElement dataElement : new HashSet( dataElements ) ) + { + if ( !updates.contains( dataElement ) ) + { + removeDataElement( dataElement ); + } + } + + for ( DataElement dataElement : updates ) + { + addDataElement( dataElement ); + } + } + public boolean hasDataEntryForm() { return dataEntryForm != null; @@ -255,12 +282,12 @@ this.periodType = periodType; } - public Collection getDataElements() + public Set getDataElements() { return dataElements; } - public void setDataElements( Collection dataElements ) + public void setDataElements( Set dataElements ) { this.dataElements = dataElements; } === modified file 'dhis-2/dhis-services/dhis-service-administration/src/test/java/org/hisp/dhis/dataarchive/DataArchiveTest.java' --- dhis-2/dhis-services/dhis-service-administration/src/test/java/org/hisp/dhis/dataarchive/DataArchiveTest.java 2010-10-01 09:05:32 +0000 +++ dhis-2/dhis-services/dhis-service-administration/src/test/java/org/hisp/dhis/dataarchive/DataArchiveTest.java 2011-05-30 15:17:51 +0000 @@ -31,6 +31,7 @@ import java.util.Date; import java.util.HashSet; import java.util.Iterator; +import java.util.Set; import org.hisp.dhis.DhisTest; import org.hisp.dhis.dataelement.DataElement; @@ -174,9 +175,9 @@ dataElementIds.add( dataElementService.addDataElement( dataElementE ) ); dataElementIds.add( dataElementService.addDataElement( dataElementF ) ); - Collection dataElementsA = new HashSet(); - Collection dataElementsB = new HashSet(); - Collection dataElementsC = new HashSet(); + Set dataElementsA = new HashSet(); + Set dataElementsB = new HashSet(); + Set dataElementsC = new HashSet(); // One dataElement dataElementsA.add( dataElementA ); === modified file 'dhis-2/dhis-services/dhis-service-administration/src/test/java/org/hisp/dhis/databrowser/DataBrowserTest.java' --- dhis-2/dhis-services/dhis-service-administration/src/test/java/org/hisp/dhis/databrowser/DataBrowserTest.java 2011-03-14 09:16:45 +0000 +++ dhis-2/dhis-services/dhis-service-administration/src/test/java/org/hisp/dhis/databrowser/DataBrowserTest.java 2011-05-30 15:17:51 +0000 @@ -174,9 +174,9 @@ dataElementIds.add( dataElementService.addDataElement( dataElementE ) ); dataElementIds.add( dataElementService.addDataElement( dataElementF ) ); - Collection dataElementsA = new HashSet(); - Collection dataElementsB = new HashSet(); - Collection dataElementsC = new HashSet(); + Set dataElementsA = new HashSet(); + Set dataElementsB = new HashSet(); + Set dataElementsC = new HashSet(); // One dataElement dataElementsA.add( dataElementA ); === modified file 'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataset/src/main/java/org/hisp/dhis/dataset/action/AddDataSetAction.java' --- dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataset/src/main/java/org/hisp/dhis/dataset/action/AddDataSetAction.java 2011-05-28 21:53:18 +0000 +++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataset/src/main/java/org/hisp/dhis/dataset/action/AddDataSetAction.java 2011-05-30 15:17:51 +0000 @@ -31,7 +31,6 @@ import java.util.HashSet; import java.util.Set; -import org.hisp.dhis.dataelement.DataElement; import org.hisp.dhis.dataelement.DataElementService; import org.hisp.dhis.dataset.DataSet; import org.hisp.dhis.dataset.DataSetService; @@ -165,11 +164,11 @@ PeriodType periodType = periodService.getPeriodTypeByName( frequencySelect ); - Collection dataElements = new HashSet(); + DataSet dataSet = new DataSet( name, shortName, code, periodType ); for ( String id : dataElementsSelectedList ) { - dataElements.add( dataElementService.getDataElement( Integer.parseInt( id ) ) ); + dataSet.addDataElement( dataElementService.getDataElement( Integer.parseInt( id ) ) ); } Set indicators = new HashSet(); @@ -179,11 +178,8 @@ indicators.add( indicatorService.getIndicator( Integer.parseInt( id ) ) ); } - DataSet dataSet = new DataSet( name, shortName, code, periodType ); - dataSet.setMobile( mobile ); dataSet.setVersion( 1 ); - dataSet.setDataElements( dataElements ); dataSet.setIndicators( indicators ); dataSetService.addDataSet( dataSet ); === modified file 'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataset/src/main/java/org/hisp/dhis/dataset/action/UpdateDataSetAction.java' --- dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataset/src/main/java/org/hisp/dhis/dataset/action/UpdateDataSetAction.java 2011-05-28 21:53:18 +0000 +++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataset/src/main/java/org/hisp/dhis/dataset/action/UpdateDataSetAction.java 2011-05-30 15:17:51 +0000 @@ -155,7 +155,7 @@ code = null; } - Collection dataElements = new HashSet(); + Set dataElements = new HashSet(); for ( String id : dataElementsSelectedList ) { @@ -177,7 +177,7 @@ dataSet.setShortName( shortName ); dataSet.setCode( code ); dataSet.setPeriodType( periodService.getPeriodTypeByClass( periodType.getClass() ) ); - dataSet.setDataElements( dataElements ); + dataSet.updateDataElements( dataElements ); dataSet.setIndicators( indicators ); if ( dataSet.isMobile() )