Beispiel #1
0
 /**
  * Change the MsProject and 'Close depends on' linkType's link direction to right to left For item
  * links of those types change the predecessor with successor and vice versa and change the link
  * direction
  */
 public static void inverseLinkDirections(boolean linkPredSuccAlso) {
   // change the direction to inward for MsProjectLinkType and
   // CloseDependsOnLinkType
   List<Integer> linkTypeIDs = new LinkedList<Integer>();
   List<TLinkTypeBean> msProjectlinkTypeBeans =
       LinkTypeBL.loadByLinkType(MsProjectLinkType.getInstance().getPluginID(), null);
   if (msProjectlinkTypeBeans != null) {
     for (TLinkTypeBean linkTypeBean : msProjectlinkTypeBeans) {
       linkTypeIDs.add(linkTypeBean.getObjectID());
       Integer direction = linkTypeBean.getLinkDirection();
       if (direction == null || direction.intValue() != LINK_DIRECTION.RIGHT_TO_LEFT) {
         linkTypeBean.setLinkDirection(LINK_DIRECTION.RIGHT_TO_LEFT);
         LinkTypeBL.save(linkTypeBean);
         LOGGER.info(
             "'MsProject' link type " + linkTypeBean.getName() + " set to unidirectional inward");
       }
     }
   }
   List<TLinkTypeBean> closeDependsOnLinkBeans =
       LinkTypeBL.loadByLinkType(CloseDependsOnLinkType.getInstance().getPluginID(), null);
   if (closeDependsOnLinkBeans != null) {
     for (TLinkTypeBean linkTypeBean : closeDependsOnLinkBeans) {
       linkTypeIDs.add(linkTypeBean.getObjectID());
       Integer direction = linkTypeBean.getLinkDirection();
       if (direction == null || direction.intValue() != LINK_DIRECTION.RIGHT_TO_LEFT) {
         linkTypeBean.setLinkDirection(LINK_DIRECTION.RIGHT_TO_LEFT);
         LinkTypeBL.save(linkTypeBean);
         LOGGER.info(
             "'Closed depends on' link type "
                 + linkTypeBean.getName()
                 + "set to unidirectional inward");
       }
     }
   }
   List<TWorkItemLinkBean> workItemLinks =
       ItemLinkBL.loadByLinkTypeAndDirection(linkTypeIDs, LINK_DIRECTION.LEFT_TO_RIGHT);
   if (workItemLinks != null) {
     LOGGER.info("Number of item links to reverse " + workItemLinks.size());
     for (TWorkItemLinkBean workItemLinkBean : workItemLinks) {
       if (linkPredSuccAlso) {
         Integer predecessor = workItemLinkBean.getLinkPred();
         Integer successor = workItemLinkBean.getLinkSucc();
         workItemLinkBean.setLinkPred(successor);
         workItemLinkBean.setLinkSucc(predecessor);
       }
       workItemLinkBean.setLinkDirection(LINK_DIRECTION.RIGHT_TO_LEFT);
       ItemLinkBL.saveLink(workItemLinkBean);
     }
   }
   LOGGER.info("'MsProject' and 'Closed depends on' item links reversed");
 }