diff options
author | donald.g.dunne | 2016-06-03 18:14:47 +0000 |
---|---|---|
committer | donald.g.dunne | 2016-06-06 15:28:48 +0000 |
commit | 3598fc2673dde4ab406d99360825ea566aabb78d (patch) | |
tree | 048f602bf1ad62dc3c369f82372c6133c29c4664 /plugins/org.eclipse.osee.ats.core/src | |
parent | 9cac0dd481e3e030ccf7dd18806c25018c7636c7 (diff) | |
download | org.eclipse.osee-3598fc2673dde4ab406d99360825ea566aabb78d.tar.gz org.eclipse.osee-3598fc2673dde4ab406d99360825ea566aabb78d.tar.xz org.eclipse.osee-3598fc2673dde4ab406d99360825ea566aabb78d.zip |
bug[ats_ATS289107]: Req workflow not completed after task generation.
Change-Id: I8bc9562979b6a17a301af1b00d4d41f62cd5e25e
Diffstat (limited to 'plugins/org.eclipse.osee.ats.core/src')
-rw-r--r-- | plugins/org.eclipse.osee.ats.core/src/org/eclipse/osee/ats/core/workflow/transition/TransitionManager.java | 22 |
1 files changed, 19 insertions, 3 deletions
diff --git a/plugins/org.eclipse.osee.ats.core/src/org/eclipse/osee/ats/core/workflow/transition/TransitionManager.java b/plugins/org.eclipse.osee.ats.core/src/org/eclipse/osee/ats/core/workflow/transition/TransitionManager.java index 899dbd8e2f1..42501d4fa2a 100644 --- a/plugins/org.eclipse.osee.ats.core/src/org/eclipse/osee/ats/core/workflow/transition/TransitionManager.java +++ b/plugins/org.eclipse.osee.ats.core/src/org/eclipse/osee/ats/core/workflow/transition/TransitionManager.java @@ -13,8 +13,10 @@ package org.eclipse.osee.ats.core.workflow.transition; import java.util.ArrayList; import java.util.Collection; import java.util.Date; +import java.util.HashMap; import java.util.HashSet; import java.util.List; +import java.util.Map; import java.util.Set; import java.util.logging.Level; import org.eclipse.osee.ats.api.IAtsWorkItem; @@ -26,6 +28,7 @@ import org.eclipse.osee.ats.api.task.IAtsTaskService; import org.eclipse.osee.ats.api.user.IAtsUser; import org.eclipse.osee.ats.api.user.IAtsUserService; import org.eclipse.osee.ats.api.util.IAtsChangeSet; +import org.eclipse.osee.ats.api.util.IExecuteListener; import org.eclipse.osee.ats.api.workdef.IAtsStateDefinition; import org.eclipse.osee.ats.api.workdef.IAtsWorkDefinitionService; import org.eclipse.osee.ats.api.workdef.IAttributeResolver; @@ -54,7 +57,7 @@ import org.eclipse.osee.framework.logging.OseeLog; /** * @author Donald G. Dunne */ -public class TransitionManager implements IAtsTransitionManager { +public class TransitionManager implements IAtsTransitionManager, IExecuteListener { private final ITransitionHelper helper; private String completedCancellationReason = null; @@ -66,6 +69,7 @@ public class TransitionManager implements IAtsTransitionManager { private final IAtsTaskService taskService; private final IAtsWorkDefinitionService workDefService; private final IAttributeResolver attrResolver; + private final Map<IAtsWorkItem, String> workItemFromStateMap; public TransitionManager(ITransitionHelper helper) { this.helper = helper; @@ -75,6 +79,7 @@ public class TransitionManager implements IAtsTransitionManager { this.workDefService = helper.getServices().getWorkDefService(); this.attrResolver = helper.getServices().getAttributeResolver(); this.taskService = helper.getServices().getTaskService(); + this.workItemFromStateMap = new HashMap<>(); } @Override @@ -274,6 +279,7 @@ public class TransitionManager implements IAtsTransitionManager { @Override public void handleTransition(TransitionResults results) { try { + helper.getChangeSet().addExecuteListener(this); for (IAtsWorkItem workItem : helper.getWorkItems()) { try { IAtsStateDefinition fromState = workItem.getStateDefinition(); @@ -324,6 +330,8 @@ public class TransitionManager implements IAtsTransitionManager { workItemService.clearImplementersCache(workItem); } helper.getChangeSet().add(workItem); + + workItemFromStateMap.put(workItem, fromState.getName()); } } catch (Exception ex) { @@ -382,8 +390,8 @@ public class TransitionManager implements IAtsTransitionManager { // Only check this if TeamWorkflow, not for reviews if (workItem.isTeamWorkflow() && (teamDefRequiresTargetedVersion || pageRequiresTargetedVersion) && // - !helper.getServices().getVersionService().hasTargetedVersion(workItem) && // - !toStateDef.getStateType().isCancelledState()) { + !helper.getServices().getVersionService().hasTargetedVersion(workItem) && // + !toStateDef.getStateType().isCancelledState()) { results.addResult(workItem, TransitionResult.MUST_BE_TARGETED_FOR_VERSION); } @@ -579,4 +587,12 @@ public class TransitionManager implements IAtsTransitionManager { return result; } + @Override + public void changesStored(IAtsChangeSet changes) { + // Notify extension points of transitionAndPersist + for (ITransitionListener listener : helper.getTransitionListeners()) { + listener.transitionPersisted(helper.getWorkItems(), workItemFromStateMap, helper.getToStateName()); + } + } + } |