package com.processpuzzle.artifact_management.control; import org.hibernate.exception.ConstraintViolationException; import com.processpuzzle.application.configuration.domain.ProcessPuzzleContext; import com.processpuzzle.application.control.control.CommandDispatcher; import com.processpuzzle.artifact.domain.Artifact; import com.processpuzzle.artifact.domain.ArtifactFolder; import com.processpuzzle.artifact.domain.DefaultArtifactRepository; import com.processpuzzle.persistence.domain.RepositoryException; import com.processpuzzle.persistence.domain.DefaultUnitOfWork; import com.processpuzzle.user_session.domain.UserRequestManager; /** * @generatedBy CodePro at 2005.11.13. 6:28 * @author zsolt.zsuffa */ public class DeleteArtifactCommand extends ArtifactActionCommand { public static final String COMMAND_NAME = "DeleteArtifact"; protected Artifact<?> artifact; public void init( CommandDispatcher dispatcher ) { super.init( dispatcher ); } public String getName() { return COMMAND_NAME; } protected void retrieveRequestParameters( CommandDispatcher dispatcher ) {} protected void retrieveResponseDocument() {} protected void doAction() { DefaultUnitOfWork work = new DefaultUnitOfWork( true ); if( (subjectArtifact != null) && (((subjectArtifact.getType().getName().equals( "ArtifactFolder" )) && (((ArtifactFolder) subjectArtifact).getChildArtifacts() != null) && (((ArtifactFolder) subjectArtifact) .getChildArtifacts().size() == 0)) || (!subjectArtifact.getType().getName().equals( "ArtifactFolder" ))) ){ try{ ProcessPuzzleContext applicationContext = UserRequestManager.getInstance().getApplicationContext(); DefaultArtifactRepository artifactRepository = (DefaultArtifactRepository) applicationContext.getRepository( DefaultArtifactRepository.class ); artifactRepository.delete( work, subjectArtifact ); // if (artifactRepository.findArtifactByName( artifactName ) != null // ) { // actionResponse.addErrorDescription( "Artifact: '" + artifactName // + "' was not deleted!" ); // actionResponse.setOutcome(false); // } else { // } actionResponse.setOutcome( true ); }catch( ConstraintViolationException e ){ actionResponse.addErrorDescription( e.getMessage() ); actionResponse.setOutcome( false ); }catch( RepositoryException e ){ actionResponse.addErrorDescription( e.getMessage() ); actionResponse.setOutcome( false ); }catch( Exception e ){ actionResponse.addErrorDescription( e.getMessage() ); actionResponse.setOutcome( false ); } }else if( (subjectArtifact != null) && (((subjectArtifact.getType().getName().equals( "ArtifactFolder" )) && (((ArtifactFolder) subjectArtifact).getChildArtifacts() != null) && (((ArtifactFolder) subjectArtifact) .getChildArtifacts().size() > 0))) ){ actionResponse.addErrorDescription( "artifactFolderNotEmpty" ); actionResponse.setOutcome( false ); }else{ actionResponse.addErrorDescription( "artifactNotExist" ); actionResponse.setOutcome( false ); } work.finish(); } }