org.squashtest.csp.tm.internal.service.deletion
Class RequirementDeletionHandlerImpl

java.lang.Object
  extended by org.squashtest.csp.tm.internal.service.deletion.AbstractNodeDeletionHandlerImpl<RequirementLibraryNode,RequirementFolder>
      extended by org.squashtest.csp.tm.internal.service.deletion.RequirementDeletionHandlerImpl
All Implemented Interfaces:
NodeDeletionHandler<RequirementLibraryNode,RequirementFolder>, RequirementNodeDeletionHandler

@Component(value="squashtest.tm.service.deletion.RequirementNodeDeletionHandler")
public class RequirementDeletionHandlerImpl
extends AbstractNodeDeletionHandlerImpl<RequirementLibraryNode,RequirementFolder>
implements RequirementNodeDeletionHandler


Constructor Summary
RequirementDeletionHandlerImpl()
           
 
Method Summary
protected  void batchDeleteNodes(List<Long> ids)
          Will delete the nodes identified by the ids parameter.
protected  List<Long> detectLockedNodes(List<Long> nodeIds)
           Given a list of node ids, returns a sublist corresponding to the ids of the nodes which cannot be deleted according to the specs.
protected  List<SuppressionPreviewReport> diagnoseSuppression(List<Long> nodeIds)
          Given their ids, that method should check the nodes and actually report the informations as specified in NodeDeletionHandler.simulateDeletion(List).
protected  FolderDao<RequirementFolder,RequirementLibraryNode> getFolderDao()
          The implemention should return which FolderDao to use depending on the end domain object.
 
Methods inherited from class org.squashtest.csp.tm.internal.service.deletion.AbstractNodeDeletionHandlerImpl
deleteNodes, findNodeHierarchy, findPairedNodeHierarchy, simulateDeletion
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface org.squashtest.csp.tm.internal.service.NodeDeletionHandler
deleteNodes, simulateDeletion
 

Constructor Detail

RequirementDeletionHandlerImpl

public RequirementDeletionHandlerImpl()
Method Detail

getFolderDao

protected FolderDao<RequirementFolder,RequirementLibraryNode> getFolderDao()
Description copied from class: AbstractNodeDeletionHandlerImpl
The implemention should return which FolderDao to use depending on the end domain object.

Specified by:
getFolderDao in class AbstractNodeDeletionHandlerImpl<RequirementLibraryNode,RequirementFolder>
Returns:
an appropriate FolderDao.

diagnoseSuppression

protected List<SuppressionPreviewReport> diagnoseSuppression(List<Long> nodeIds)
Description copied from class: AbstractNodeDeletionHandlerImpl

Given their ids, that method should check the nodes and actually report the informations as specified in NodeDeletionHandler.simulateDeletion(List). See AbstractNodeDeletionHandlerImpl.detectLockedNodes(List) for details regarding the input list.

Specified by:
diagnoseSuppression in class AbstractNodeDeletionHandlerImpl<RequirementLibraryNode,RequirementFolder>
Parameters:
nodeIds - the complete list of the nodes involved in that report.
Returns:
a list of reports summarizing in human readable format what will happen.

detectLockedNodes

protected List<Long> detectLockedNodes(List<Long> nodeIds)
Description copied from class: AbstractNodeDeletionHandlerImpl

Given a list of node ids, returns a sublist corresponding to the ids of the nodes which cannot be deleted according to the specs. The input list includes all the nodes and their children in the directory structure. The implementation is responsible to fetch any other dependencies needed for the completion of its task. The implementation is not required to resolve which folders are locked : this abstract class will handle that on the basis of the returned value.

Specified by:
detectLockedNodes in class AbstractNodeDeletionHandlerImpl<RequirementLibraryNode,RequirementFolder>
Parameters:
nodeIds - all the node ids.
Returns:
the sublist of node ids that should NOT be deleted.

batchDeleteNodes

protected void batchDeleteNodes(List<Long> ids)
Description copied from class: AbstractNodeDeletionHandlerImpl
Will delete the nodes identified by the ids parameter. Those nodes have been identified as legal for deletion and the implementation should only care of deleting them and unbinding them from the rest of the domain.

Specified by:
batchDeleteNodes in class AbstractNodeDeletionHandlerImpl<RequirementLibraryNode,RequirementFolder>
Parameters:
ids - the doomed node ids.


Copyright © 2010-2012 Squashtest TM, Squashtest.org. All Rights Reserved.