=== modified file 'dhis-2/dhis-services/dhis-service-importexport/src/main/java/org/hisp/dhis/importexport/dxf/converter/DXFConverter.java' --- dhis-2/dhis-services/dhis-service-importexport/src/main/java/org/hisp/dhis/importexport/dxf/converter/DXFConverter.java 2011-01-17 11:14:18 +0000 +++ dhis-2/dhis-services/dhis-service-importexport/src/main/java/org/hisp/dhis/importexport/dxf/converter/DXFConverter.java 2011-01-17 13:40:50 +0000 @@ -734,7 +734,7 @@ BatchHandler batchHandler = batchHandlerFactory.createBatchHandler( DataEntryFormBatchHandler.class ).init(); - XMLConverter converter = new DataEntryFormConverter( importObjectService, dataEntryFormService, + XMLConverter converter = new DataEntryFormConverter( batchHandler, importObjectService, dataEntryFormService, objectMappingGenerator.getDataElementMapping( params.skipMapping() ), objectMappingGenerator.getCategoryComboMapping( params.skipMapping() ) ); converterInvoker.invokeRead( converter, reader, params ); === modified file 'dhis-2/dhis-services/dhis-service-importexport/src/main/java/org/hisp/dhis/importexport/dxf/converter/DataEntryFormConverter.java' --- dhis-2/dhis-services/dhis-service-importexport/src/main/java/org/hisp/dhis/importexport/dxf/converter/DataEntryFormConverter.java 2011-01-17 11:53:20 +0000 +++ dhis-2/dhis-services/dhis-service-importexport/src/main/java/org/hisp/dhis/importexport/dxf/converter/DataEntryFormConverter.java 2011-01-17 13:40:50 +0000 @@ -30,8 +30,8 @@ import java.util.Collection; import java.util.Map; import java.util.regex.Matcher; -import java.util.regex.Pattern; +import org.amplecode.quick.BatchHandler; import org.amplecode.staxwax.reader.XMLReader; import org.amplecode.staxwax.writer.XMLWriter; import org.apache.commons.logging.Log; @@ -55,8 +55,6 @@ { private static final Log log = LogFactory.getLog( DataEntryFormConverter.class ); - private static final Pattern ID_PATTERN = Pattern.compile( "value\\[(.*)\\].value:value\\[(.*)\\].value" ); - public static final String COLLECTION_NAME = "dataEntryForms"; public static final String ELEMENT_NAME = "dataEntryForm"; private static final String FIELD_ID = "id"; @@ -81,11 +79,13 @@ /** * Constructor for read operations. */ - public DataEntryFormConverter( ImportObjectService importObjectService, + public DataEntryFormConverter( BatchHandler batchHandler, + ImportObjectService importObjectService, DataEntryFormService dataEntryFormService, Map dataElementMapping, Map categoryOptionComboMapping ) { + this.batchHandler = batchHandler; this.importObjectService = importObjectService; this.dataEntryFormService = dataEntryFormService; this.dataElementMapping = dataElementMapping; @@ -127,14 +127,14 @@ { final DataEntryForm dataEntryForm = new DataEntryForm(); - reader.moveToStartElement( FIELD_ID ); - dataEntryForm.setId( Integer.parseInt( reader.getElementValue() ) ); - - reader.moveToStartElement( FIELD_NAME ); - dataEntryForm.setName( reader.getElementValue() ); - reader.moveToStartElement( FIELD_HTMLCODE ); - dataEntryForm.setHtmlCode( proccessHtmlCode( reader.getElementValue(), dataEntryForm.getName() ) ); - + final Map values = reader.readElements( ELEMENT_NAME ); + + String htmlCode = values.get( FIELD_HTMLCODE ); + + dataEntryForm.setId( Integer.parseInt( values.get( FIELD_ID ) ) ); + dataEntryForm.setName( values.get( FIELD_NAME ) ); + dataEntryForm.setHtmlCode( processHtmlCode( htmlCode, dataEntryForm.getName() ) ); + importObject( dataEntryForm, params ); } } @@ -143,7 +143,7 @@ // Support method // ------------------------------------------------------------------------- - private String proccessHtmlCode( String htmlCode, String name ) + private String processHtmlCode( String htmlCode, String name ) { if ( htmlCode == null ) { @@ -152,7 +152,7 @@ StringBuffer buffer = new StringBuffer(); - Matcher matcher = ID_PATTERN.matcher( htmlCode ); + Matcher matcher = DataEntryForm.INPUT_PATTERN.matcher( htmlCode ); while ( matcher.find() ) { === modified file 'dhis-2/dhis-services/dhis-service-importexport/src/main/java/org/hisp/dhis/importexport/importer/DataEntryFormImporter.java' --- dhis-2/dhis-services/dhis-service-importexport/src/main/java/org/hisp/dhis/importexport/importer/DataEntryFormImporter.java 2011-01-17 11:14:18 +0000 +++ dhis-2/dhis-services/dhis-service-importexport/src/main/java/org/hisp/dhis/importexport/importer/DataEntryFormImporter.java 2011-01-17 13:40:50 +0000 @@ -27,6 +27,7 @@ package org.hisp.dhis.importexport.importer; +import org.amplecode.quick.BatchHandler; import org.hisp.dhis.dataentryform.DataEntryForm; import org.hisp.dhis.dataentryform.DataEntryFormService; import org.hisp.dhis.importexport.GroupMemberType; @@ -53,8 +54,9 @@ { } - public DataEntryFormImporter( DataEntryFormService dataEntryFormService ) + public DataEntryFormImporter( BatchHandler batchHandler, DataEntryFormService dataEntryFormService ) { + this.batchHandler = batchHandler; this.dataEntryFormService = dataEntryFormService; } @@ -73,7 +75,7 @@ @Override protected void importUnique( DataEntryForm object ) { - dataEntryFormService.addDataEntryForm( object ); + batchHandler.addObject( object ); } @Override @@ -101,5 +103,4 @@ return false; } - } === modified file 'dhis-2/dhis-services/dhis-service-importexport/src/main/java/org/hisp/dhis/importexport/service/DefaultImportObjectManager.java' --- dhis-2/dhis-services/dhis-service-importexport/src/main/java/org/hisp/dhis/importexport/service/DefaultImportObjectManager.java 2011-01-17 12:30:42 +0000 +++ dhis-2/dhis-services/dhis-service-importexport/src/main/java/org/hisp/dhis/importexport/service/DefaultImportObjectManager.java 2011-01-17 13:40:50 +0000 @@ -118,6 +118,7 @@ import org.hisp.dhis.jdbc.batchhandler.DataElementGroupMemberBatchHandler; import org.hisp.dhis.jdbc.batchhandler.DataElementGroupSetBatchHandler; import org.hisp.dhis.jdbc.batchhandler.DataElementGroupSetMemberBatchHandler; +import org.hisp.dhis.jdbc.batchhandler.DataEntryFormBatchHandler; import org.hisp.dhis.jdbc.batchhandler.DataSetBatchHandler; import org.hisp.dhis.jdbc.batchhandler.DataSetMemberBatchHandler; import org.hisp.dhis.jdbc.batchhandler.DataSetSourceAssociationBatchHandler; @@ -606,8 +607,7 @@ @Transactional public void importIndicators() { - BatchHandler batchHandler = batchHandlerFactory.createBatchHandler( IndicatorBatchHandler.class ) - .init(); + BatchHandler batchHandler = batchHandlerFactory.createBatchHandler( IndicatorBatchHandler.class ).init(); Map indicatorTypeMapping = objectMappingGenerator.getIndicatorTypeMapping( false ); Map dataElementMapping = objectMappingGenerator.getDataElementMapping( false ); @@ -752,15 +752,19 @@ @Transactional public void importDataEntryForms() { + BatchHandler batchHandler = batchHandlerFactory.createBatchHandler( DataEntryFormBatchHandler.class ).init(); + Collection importObjects = importObjectStore.getImportObjects( DataEntryForm.class ); - Importer importer = new DataEntryFormImporter( dataEntryFormService ); + Importer importer = new DataEntryFormImporter( batchHandler, dataEntryFormService ); for ( ImportObject importObject : importObjects ) { importer.importObject( (DataEntryForm) importObject.getObject(), params ); } + batchHandler.flush(); + importObjectStore.deleteImportObjects( DataEntryForm.class ); log.info( "Imported DataEntryForms" ); @@ -771,13 +775,22 @@ { BatchHandler batchHandler = batchHandlerFactory.createBatchHandler( DataSetBatchHandler.class ).init(); + Map dataEntryFormMapping = objectMappingGenerator.getDataEntryFormMapping( false ); + Collection importObjects = importObjectStore.getImportObjects( DataSet.class ); Importer importer = new DataSetImporter( batchHandler, dataSetService ); for ( ImportObject importObject : importObjects ) { - importer.importObject( (DataSet) importObject.getObject(), params ); + DataSet object = (DataSet) importObject.getObject(); + + if ( object.getDataEntryForm() != null ) + { + object.getDataEntryForm().setId( dataEntryFormMapping.get( object.getDataEntryForm().getId() ) ); + } + + importer.importObject( object, params ); } batchHandler.flush(); === modified file 'dhis-2/dhis-services/dhis-service-importexport/src/test/java/org/hisp/dhis/importexport/dxf/DXFImportServiceTest.java' --- dhis-2/dhis-services/dhis-service-importexport/src/test/java/org/hisp/dhis/importexport/dxf/DXFImportServiceTest.java 2010-10-29 08:56:13 +0000 +++ dhis-2/dhis-services/dhis-service-importexport/src/test/java/org/hisp/dhis/importexport/dxf/DXFImportServiceTest.java 2011-01-17 13:40:50 +0000 @@ -281,7 +281,6 @@ importService.importData( importParams, inputStreamExcelx ); assertEquals( organisationUnitService.getAllOrganisationUnits().size(), 49 ); - } @Ignore