=== modified file 'dhis-2/dhis-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/metadata/DefaultObjectBridge.java' --- dhis-2/dhis-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/metadata/DefaultObjectBridge.java 2013-12-12 16:34:34 +0000 +++ dhis-2/dhis-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/metadata/DefaultObjectBridge.java 2013-12-13 09:58:21 +0000 @@ -278,7 +278,7 @@ manager.save( (IdentifiableObject) object ); } - _updateInternalMaps( object ); + _updateInternalMaps( object, false ); } else { @@ -296,7 +296,7 @@ manager.update( (IdentifiableObject) object ); } - _updateInternalMaps( object ); + _updateInternalMaps( object, false ); } else { @@ -315,7 +315,7 @@ manager.delete( (IdentifiableObject) object ); } - // _updateInternalMaps( object ); + _updateInternalMaps( object, true ); } else { @@ -467,7 +467,7 @@ return objects; } - private void _updateInternalMaps( T object ) + private void _updateInternalMaps( T object, boolean delete ) { if ( IdentifiableObject.class.isInstance( object ) ) { @@ -483,7 +483,20 @@ map = uidMap.get( identifiableObject.getClass().getSuperclass() ); } - map.put( identifiableObject.getUid(), identifiableObject ); + if ( !delete ) + { + map.put( identifiableObject.getUid(), identifiableObject ); + } + else + { + try + { + map.remove( identifiableObject.getUid() ); + } + catch ( NullPointerException ignored ) + { + } + } } if ( identifiableObject.getCode() != null ) @@ -496,7 +509,20 @@ map = codeMap.get( identifiableObject.getClass().getSuperclass() ); } - map.put( identifiableObject.getCode(), identifiableObject ); + if ( !delete ) + { + map.put( identifiableObject.getCode(), identifiableObject ); + } + else + { + try + { + map.remove( identifiableObject.getCode() ); + } + catch ( NullPointerException ignored ) + { + } + } } if ( (identifiableObject.haveUniqueNames() || identifiableObject.isAutoGenerated()) && identifiableObject.getName() != null ) @@ -509,7 +535,21 @@ map = nameMap.get( identifiableObject.getClass().getSuperclass() ); } - map.put( identifiableObject.getName(), identifiableObject ); + if ( !delete ) + { + map.put( identifiableObject.getName(), identifiableObject ); + } + else + { + try + { + map.remove( identifiableObject.getName() ); + } + catch ( NullPointerException ignored ) + { + } + } + } } } === modified file 'dhis-2/dhis-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/metadata/importers/DefaultIdentifiableObjectImporter.java' --- dhis-2/dhis-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/metadata/importers/DefaultIdentifiableObjectImporter.java 2013-12-12 16:34:34 +0000 +++ dhis-2/dhis-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/metadata/importers/DefaultIdentifiableObjectImporter.java 2013-12-13 09:58:21 +0000 @@ -38,7 +38,6 @@ import org.hisp.dhis.common.IdentifiableObject; import org.hisp.dhis.common.NameableObject; import org.hisp.dhis.common.SharingUtils; -import org.hisp.dhis.dataelement.DataElement; import org.hisp.dhis.dataelement.DataElementOperand; import org.hisp.dhis.dataelement.DataElementOperandService; import org.hisp.dhis.dataentryform.DataEntryForm; @@ -55,10 +54,10 @@ import org.hisp.dhis.expression.Expression; import org.hisp.dhis.expression.ExpressionService; import org.hisp.dhis.importexport.ImportStrategy; -import org.hisp.dhis.organisationunit.OrganisationUnit; import org.hisp.dhis.period.Period; import org.hisp.dhis.period.PeriodService; import org.hisp.dhis.period.PeriodType; +import org.hisp.dhis.sqlview.SqlView; import org.hisp.dhis.system.util.CollectionUtils; import org.hisp.dhis.system.util.ReflectionUtils; import org.hisp.dhis.system.util.functional.Function1; @@ -112,7 +111,7 @@ @Autowired private SessionFactory sessionFactory; - @Autowired(required = false) + @Autowired( required = false ) private List> objectHandlers; //------------------------------------------------------------------------------------------------------- @@ -426,17 +425,6 @@ log.debug( "Trying to delete object => " + ImportUtils.getDisplayName( persistedObject ) + " (" + persistedObject.getClass().getSimpleName() + ")" ); - /* - persistedObject.setUser( null ); - NonIdentifiableObjects nonIdentifiableObjects = new NonIdentifiableObjects(); - nonIdentifiableObjects.delete( persistedObject ); - - Map fields = detachFields( persistedObject ); - Map> collectionFields = detachCollectionFields( persistedObject ); - */ - - sessionFactory.getCurrentSession().flush(); - try { objectBridge.deleteObject( persistedObject ); @@ -448,8 +436,6 @@ return false; } - sessionFactory.getCurrentSession().flush(); - log.debug( "Delete successful." ); return true; @@ -856,7 +842,7 @@ conflict = reportMoreThanOneConflict( object ); } - if ( !OrganisationUnit.class.isAssignableFrom( object.getClass() ) ) + if ( !SqlView.class.isAssignableFrom( object.getClass() ) ) { conflict = new ImportConflict( "NoOrg", "no no no" ); } === modified file 'dhis-2/dhis-support/dhis-support-system/src/main/java/org/hisp/dhis/system/deletion/DeletionHandler.java' --- dhis-2/dhis-support/dhis-support-system/src/main/java/org/hisp/dhis/system/deletion/DeletionHandler.java 2013-10-08 17:16:47 +0000 +++ dhis-2/dhis-support/dhis-support-system/src/main/java/org/hisp/dhis/system/deletion/DeletionHandler.java 2013-12-13 09:58:21 +0000 @@ -88,6 +88,7 @@ import org.hisp.dhis.relationship.RelationshipType; import org.hisp.dhis.report.Report; import org.hisp.dhis.reporttable.ReportTable; +import org.hisp.dhis.sqlview.SqlView; import org.hisp.dhis.user.User; import org.hisp.dhis.user.UserAuthorityGroup; import org.hisp.dhis.user.UserGroup; @@ -125,21 +126,21 @@ public void deleteAttribute( Attribute attribute ) { } - + public String allowDeleteAttribute( Attribute attribute ) { return null; } - + public void deleteAttributeValue( AttributeValue attributeValue ) { } - + public String allowDeleteAttributeValue( AttributeValue attributeValue ) { return null; } - + public void deleteChart( Chart chart ) { } @@ -323,12 +324,12 @@ public void deleteRelativePeriods( RelativePeriods relativePeriods ) { } - + public String allowDeleteRelativePeriods( RelativePeriods relativePeriods ) { return null; } - + public void deleteValidationRule( ValidationRule validationRule ) { } @@ -476,12 +477,12 @@ public void deleteMap( Map map ) { } - + public String allowDeleteMap( Map map ) { return null; } - + public void deleteMapView( MapView mapView ) { } @@ -598,11 +599,11 @@ public void deleteProgramStage( ProgramStage programStage ) { } - + public void deleteProgramStageSection( ProgramStageSection programStageSection ) { } - + public String allowDeleteProgramStageSection( ProgramStageSection programStageSection ) { return null; @@ -661,7 +662,7 @@ public void deletePatientRegistrationForm( PatientRegistrationForm patientRegistrationForm ) { } - + public String allowDeleteConstant( Constant constant ) { return null; @@ -697,7 +698,7 @@ public void deleteLockException( LockException lockException ) { } - + public void deletePatientAudit( PatientAudit patientAudit ) { } @@ -706,22 +707,32 @@ { return null; } - + public void deleteIntepretation( Interpretation interpretation ) { } - + public String allowDeleteInterpretation( Interpretation interpretation ) { return null; } - + public void deleteI18nLocale( I18nLocale i18nLocale ) { } - + public String allowDeleteI18nLocale( I18nLocale i18nLocale ) - { + { + return null; + } + + public void deleteSqlView( SqlView sqlView ) + { + + } + + public String allowDeleteSqlView( SqlView sqlView ) + { return null; } }