diff options
author | donald.g.dunne | 2017-05-16 21:13:43 +0000 |
---|---|---|
committer | donald.g.dunne | 2017-05-17 20:34:25 +0000 |
commit | f72a9cc0a3ee0eae7350b8f42677bbc2984cbb59 (patch) | |
tree | 686113c879927fcf13852105029ecfa8f924a6d9 | |
parent | 75ad6385ba9e36058569f4484a3541f413fb0210 (diff) | |
download | org.eclipse.osee-f72a9cc0a3ee0eae7350b8f42677bbc2984cbb59.tar.gz org.eclipse.osee-f72a9cc0a3ee0eae7350b8f42677bbc2984cbb59.tar.xz org.eclipse.osee-f72a9cc0a3ee0eae7350b8f42677bbc2984cbb59.zip |
feature[ats_ATS371066]: HLR - Changes in support of action
Change-Id: I77b8a07a562e0b4e1f9d5e822bba3314fa54a1f9
5 files changed, 29 insertions, 10 deletions
diff --git a/plugins/org.eclipse.osee.ats.api/src/org/eclipse/osee/ats/api/team/ITeamWorkflowProvider.java b/plugins/org.eclipse.osee.ats.api/src/org/eclipse/osee/ats/api/team/ITeamWorkflowProvider.java index 781c5a127bc..4a6f6dec732 100644 --- a/plugins/org.eclipse.osee.ats.api/src/org/eclipse/osee/ats/api/team/ITeamWorkflowProvider.java +++ b/plugins/org.eclipse.osee.ats.api/src/org/eclipse/osee/ats/api/team/ITeamWorkflowProvider.java @@ -16,9 +16,7 @@ import org.eclipse.osee.ats.api.workflow.IAtsTeamWorkflow; /** * @author Donald G. Dunne */ -public - -interface ITeamWorkflowProvider { +public interface ITeamWorkflowProvider { public default String getWorkflowDefinitionId(IAtsWorkItem workItem) { return null; @@ -47,4 +45,8 @@ interface ITeamWorkflowProvider { } public boolean isResponsibleFor(IAtsWorkItem workItem); + + public default String getOverrideWorkflowDefinitionId(IAtsTeamWorkflow teamWf) { + return null; + } } diff --git a/plugins/org.eclipse.osee.ats.api/src/org/eclipse/osee/ats/api/workflow/IAtsWorkItemService.java b/plugins/org.eclipse.osee.ats.api/src/org/eclipse/osee/ats/api/workflow/IAtsWorkItemService.java index d1bd79110b4..0ad29d92744 100644 --- a/plugins/org.eclipse.osee.ats.api/src/org/eclipse/osee/ats/api/workflow/IAtsWorkItemService.java +++ b/plugins/org.eclipse.osee.ats.api/src/org/eclipse/osee/ats/api/workflow/IAtsWorkItemService.java @@ -55,4 +55,6 @@ public interface IAtsWorkItemService { String getCombinedPcrId(IAtsWorkItem workItem) throws OseeCoreException; IAtsWorkItemNotes getNotes(IAtsWorkItem workItem); + + ITeamWorkflowProvidersLazy getTeamWorkflowProviders(); } diff --git a/plugins/org.eclipse.osee.ats.core/src/org/eclipse/osee/ats/core/util/ActionFactory.java b/plugins/org.eclipse.osee.ats.core/src/org/eclipse/osee/ats/core/util/ActionFactory.java index 119e2e5f50d..7d1b1a50d1c 100644 --- a/plugins/org.eclipse.osee.ats.core/src/org/eclipse/osee/ats/core/util/ActionFactory.java +++ b/plugins/org.eclipse.osee.ats.core/src/org/eclipse/osee/ats/core/util/ActionFactory.java @@ -30,6 +30,7 @@ import org.eclipse.osee.ats.api.team.ChangeType; import org.eclipse.osee.ats.api.team.CreateTeamOption; import org.eclipse.osee.ats.api.team.IAtsTeamDefinition; import org.eclipse.osee.ats.api.team.IAtsWorkItemFactory; +import org.eclipse.osee.ats.api.team.ITeamWorkflowProvider; import org.eclipse.osee.ats.api.user.IAtsUser; import org.eclipse.osee.ats.api.util.IAtsChangeSet; import org.eclipse.osee.ats.api.util.IAtsUtilService; @@ -219,6 +220,15 @@ public class ActionFactory implements IAtsActionFactory { changes.setSoleAttributeValue(teamWf, AtsAttributeTypes.WorkflowDefinition, overrideWorkDefId); } } + // else if work def is specified by provider, set as attribute + else { + for (ITeamWorkflowProvider provider : services.getWorkItemService().getTeamWorkflowProviders().getProviders()) { + String overrideWorkDefId = provider.getOverrideWorkflowDefinitionId(teamWf); + if (Strings.isValid(overrideWorkDefId)) { + changes.setSoleAttributeValue(teamWf, AtsAttributeTypes.WorkflowDefinition, overrideWorkDefId); + } + } + } // Initialize state machine String workDefinitionName = getWorkDefinitionName(teamDef); diff --git a/plugins/org.eclipse.osee.ats.core/src/org/eclipse/osee/ats/core/workflow/AtsWorkItemServiceImpl.java b/plugins/org.eclipse.osee.ats.core/src/org/eclipse/osee/ats/core/workflow/AtsWorkItemServiceImpl.java index 406d4d02244..3d70b66d492 100644 --- a/plugins/org.eclipse.osee.ats.core/src/org/eclipse/osee/ats/core/workflow/AtsWorkItemServiceImpl.java +++ b/plugins/org.eclipse.osee.ats.core/src/org/eclipse/osee/ats/core/workflow/AtsWorkItemServiceImpl.java @@ -179,4 +179,9 @@ public class AtsWorkItemServiceImpl implements IAtsWorkItemService { return new AtsWorkItemNotes(new ArtifactNote(workItem, services), services); } + @Override + public ITeamWorkflowProvidersLazy getTeamWorkflowProviders() { + return teamWorkflowProvidersLazy; + } + } diff --git a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/util/AtsBranchManager.java b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/util/AtsBranchManager.java index e6af58607f0..e59597d701a 100644 --- a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/util/AtsBranchManager.java +++ b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/util/AtsBranchManager.java @@ -287,25 +287,25 @@ public final class AtsBranchManager { * * @param commitConfigArt that configures commit or null */ - public static ChangeData getChangeData(TeamWorkFlowArtifact teamArt, ICommitConfigItem commitConfigArt) throws OseeCoreException { + public static ChangeData getChangeData(IAtsTeamWorkflow teamWf, ICommitConfigItem commitConfigArt) throws OseeCoreException { if (commitConfigArt != null && !isBaselinBranchConfigured(commitConfigArt)) { throw new OseeArgumentException("Parent Branch not configured for [%s]", commitConfigArt); } Collection<Change> changes = new ArrayList<>(); IOperation operation = null; - if (AtsClientService.get().getBranchService().isWorkingBranchInWork(teamArt)) { - operation = ChangeManager.comparedToParent(AtsClientService.get().getBranchService().getWorkingBranch(teamArt), - changes); + if (AtsClientService.get().getBranchService().isWorkingBranchInWork(teamWf)) { + operation = + ChangeManager.comparedToParent(AtsClientService.get().getBranchService().getWorkingBranch(teamWf), changes); Operations.executeWorkAndCheckStatus(operation); } else { - if (AtsClientService.get().getBranchService().isCommittedBranchExists(teamArt)) { + if (AtsClientService.get().getBranchService().isCommittedBranchExists(teamWf)) { TransactionToken transactionId = null; if (commitConfigArt == null) { - transactionId = AtsClientService.get().getBranchService().getEarliestTransactionId(teamArt); + transactionId = AtsClientService.get().getBranchService().getEarliestTransactionId(teamWf); } else { Collection<TransactionRecord> transIds = - AtsClientService.get().getBranchService().getTransactionIds(teamArt, false); + AtsClientService.get().getBranchService().getTransactionIds(teamWf, false); if (transIds.size() == 1) { transactionId = transIds.iterator().next(); } else { |