Pages

Monday, March 11, 2013

check workItemType and predecessor in Rational Team Concert extension plugin

in this article i will try to share some code for Customizing Rational Team Concert.

this code is to get the workItemType
 

  private void checkWorkItemType(ISaveParameter saveParameter, AdvisableOperation operation, IAdvisorInfoCollector collector, IProgressMonitor monitor)  
   throws TeamRepositoryException  
  {   
  IWorkItem newState = (IWorkItem)saveParameter.getNewState();  
  newState = (IWorkItem)saveParameter.getNewState();  
  String workItemType = newState.getWorkItemType();  
 }  

this one is to check the predecessor. and iterate over the collection of predecessor item.

 
 private boolean checkIfRfcTicket(ISaveParameter saveParameter, AdvisableOperation operation, IProgressMonitor monitor)  
   throws TeamRepositoryException  
  {   
  List blockingDependencies = saveParameter.getNewReferences().getReferences(  
      WorkItemEndPoints.PREDECESSOR_WORK_ITEMS);  
       if (blockingDependencies.isEmpty()) {  
           System.out.println("-----NO DEPENDENCIES-----");  
       }       
       else  
      {  
       for (Iterator iterator = blockingDependencies.iterator(); iterator.hasNext(); )  
       {  
        IReference dependency = (IReference)iterator.next();  
        if ((!dependency.isItemReference()) ||   
         (!(((IItemReference)dependency).getReferencedItem() instanceof IWorkItemHandle))) {  
         continue;  
        }  
        IWorkItemHandle blockingWorkItemHandle = (IWorkItemHandle)((IItemReference)dependency).getReferencedItem();  
        ISaveParameter target = saveParameter.getSaveOperationParameter().findSaveParameter(blockingWorkItemHandle);  
        IAuditableCommon auditableCommon = (IAuditableCommon)getService(IAuditableCommon.class);  
        IWorkItem predecessorWorkItem;  
        if (target != null)  
         predecessorWorkItem = (IWorkItem)target.getNewState();  
        else {  
         predecessorWorkItem = (IWorkItem)auditableCommon.resolveAuditable(  
          blockingWorkItemHandle, IWorkItem.FULL_PROFILE, monitor);  
        }           
       }  
      }  
  }  

0 comments:

Post a Comment