=== modified file 'dhis-2/dhis-services/dhis-service-administration/src/main/java/org/hisp/dhis/dataprune/DefaultDataPruneService.java' --- dhis-2/dhis-services/dhis-service-administration/src/main/java/org/hisp/dhis/dataprune/DefaultDataPruneService.java 2010-04-13 11:04:48 +0000 +++ dhis-2/dhis-services/dhis-service-administration/src/main/java/org/hisp/dhis/dataprune/DefaultDataPruneService.java 2010-04-21 03:59:02 +0000 @@ -27,19 +27,15 @@ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -import java.util.List; import java.util.Set; - import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; -import org.hisp.dhis.dataset.CompleteDataSetRegistrationService; import org.hisp.dhis.datavalue.DataValueService; +import org.hisp.dhis.hierarchy.HierarchyViolationException; import org.hisp.dhis.organisationunit.OrganisationUnit; import org.hisp.dhis.organisationunit.OrganisationUnitService; import org.springframework.transaction.annotation.Transactional; -import edu.emory.mathcs.backport.java.util.concurrent.CopyOnWriteArrayList; - /** * @author Quang Nguyen * @version Apr 6, 2010 5:48:15 PM @@ -61,13 +57,6 @@ this.organisationUnitService = organisationUnitService; } - private CompleteDataSetRegistrationService completeDataSetRegistrationService; - - public void setCompleteDataSetRegistrationService( CompleteDataSetRegistrationService completeDataSetRegistrationService ) - { - this.completeDataSetRegistrationService = completeDataSetRegistrationService; - } - private DataValueService dataValueService; public void setDataValueService( DataValueService dataValueService ) @@ -82,37 +71,21 @@ @Transactional public void pruneOrganisationUnit( OrganisationUnit organisationUnit ) { - if(organisationUnit.getParent() != null) { - deleteSiblings(organisationUnit); - - deleteParents(organisationUnit); + if ( organisationUnit.getParent() != null ) + { + organisationUnit.setParent( null ); + organisationUnitService.updateOrganisationUnit( organisationUnit ); } - } - - private void deleteParents( OrganisationUnit organisationUnit ) - { - /* - * Not implemented yet. - */ - } - - @SuppressWarnings( "unchecked" ) - private void deleteSiblings( OrganisationUnit organisationUnit ) - { - List copiedSiblingList = new CopyOnWriteArrayList(organisationUnit.getParent().getChildren()); - for ( OrganisationUnit sibling : copiedSiblingList ) + for(OrganisationUnit eachRoot : organisationUnitService.getRootOrganisationUnits()) { - if ( !sibling.equals( organisationUnit ) ) - //if ( sibling.getId() == 988 ) - { - System.out.println("delete sibling: " + sibling.getName()); - deleteABranch( sibling ); + if(!eachRoot.equals( organisationUnit )) + { + deleteABranch( eachRoot ); } } - } - + private void deleteABranch(OrganisationUnit organisationUnit) { if(!organisationUnit.getChildren().isEmpty()) { Set tmp = organisationUnit.getChildren(); @@ -123,6 +96,16 @@ deleteABranch( (OrganisationUnit)eachChild ); } } - //removeOrganisationUnitAndBelonging( organisationUnit ); + + dataValueService.deleteDataValuesBySource( organisationUnit ); + + try + { + organisationUnitService.deleteOrganisationUnit( organisationUnit ); + } + catch ( HierarchyViolationException e ) + { + e.printStackTrace(); + } } } === modified file 'dhis-2/dhis-services/dhis-service-administration/src/main/resources/META-INF/dhis/beans.xml' --- dhis-2/dhis-services/dhis-service-administration/src/main/resources/META-INF/dhis/beans.xml 2010-04-13 11:04:48 +0000 +++ dhis-2/dhis-services/dhis-service-administration/src/main/resources/META-INF/dhis/beans.xml 2010-04-21 03:59:02 +0000 @@ -126,8 +126,6 @@ class="org.hisp.dhis.dataprune.DefaultDataPruneService"> -