Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--plugins/org.eclipse.osee.ats.api/src/org/eclipse/osee/ats/api/IAtsWorkItem.java3
-rw-r--r--plugins/org.eclipse.osee.ats.api/src/org/eclipse/osee/ats/api/team/TeamWorkflowProviderAdapter.java (renamed from plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/actions/wizard/TeamWorkflowProviderAdapter.java)4
-rw-r--r--plugins/org.eclipse.osee.ats.api/src/org/eclipse/osee/ats/api/workflow/IAtsBranchService.java2
-rw-r--r--plugins/org.eclipse.osee.ats.api/src/org/eclipse/osee/ats/api/workflow/IAtsWorkItemService.java2
-rw-r--r--plugins/org.eclipse.osee.ats.client.demo/src/org/eclipse/osee/ats/client/demo/artifact/DemoTeamWorkflows.java2
-rw-r--r--plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/internal/AtsClientImpl.java3
-rw-r--r--plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/internal/workflow/AtsWorkItemServiceImpl.java5
-rw-r--r--plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/internal/workflow/WorkItem.java18
-rw-r--r--plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/team/TeamWorkFlowArtifact.java13
-rw-r--r--plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/team/TeamWorkFlowManager.java8
-rw-r--r--plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/workflow/AbstractWorkflowArtifact.java11
-rw-r--r--plugins/org.eclipse.osee.ats.core.test/src/org/eclipse/osee/ats/core/mock/MockWorkItem.java6
-rw-r--r--plugins/org.eclipse.osee.ats.core.test/src/org/eclipse/osee/ats/core/workdef/AtsWorkDefinitionAdminImplTest.java3
-rw-r--r--plugins/org.eclipse.osee.ats.core/OSGI-INF/ats.team.workflow.providers.ref.xml5
-rw-r--r--plugins/org.eclipse.osee.ats.core/src/org/eclipse/osee/ats/core/util/AbstractAtsBranchService.java27
-rw-r--r--plugins/org.eclipse.osee.ats.core/src/org/eclipse/osee/ats/core/workdef/AtsWorkDefinitionAdminImpl.java10
-rw-r--r--plugins/org.eclipse.osee.ats.core/src/org/eclipse/osee/ats/core/workflow/TeamWorkflowProviders.java37
-rw-r--r--plugins/org.eclipse.osee.ats.impl/OSGI-INF/ats.team.workflow.providers.ref.xml6
-rw-r--r--plugins/org.eclipse.osee.ats.impl/src/org/eclipse/osee/ats/impl/internal/AtsServerImpl.java9
-rw-r--r--plugins/org.eclipse.osee.ats.impl/src/org/eclipse/osee/ats/impl/internal/notify/WorkItemNotificationProcessor.java5
-rw-r--r--plugins/org.eclipse.osee.ats.impl/src/org/eclipse/osee/ats/impl/internal/util/ITeamWorkflowProvidersLazy.java (renamed from plugins/org.eclipse.osee.ats.impl/src/org/eclipse/osee/ats/impl/internal/util/TeamWorkflowProvider.java)15
-rw-r--r--plugins/org.eclipse.osee.ats.impl/src/org/eclipse/osee/ats/impl/internal/util/TeamWorkflowProviders.java58
-rw-r--r--plugins/org.eclipse.osee.ats.impl/src/org/eclipse/osee/ats/impl/internal/workitem/AtsWorkItemServiceImpl.java30
-rw-r--r--plugins/org.eclipse.osee.ats.impl/src/org/eclipse/osee/ats/impl/internal/workitem/WorkItem.java15
24 files changed, 234 insertions, 63 deletions
diff --git a/plugins/org.eclipse.osee.ats.api/src/org/eclipse/osee/ats/api/IAtsWorkItem.java b/plugins/org.eclipse.osee.ats.api/src/org/eclipse/osee/ats/api/IAtsWorkItem.java
index cc2dd10befd..d6ed6284e5f 100644
--- a/plugins/org.eclipse.osee.ats.api/src/org/eclipse/osee/ats/api/IAtsWorkItem.java
+++ b/plugins/org.eclipse.osee.ats.api/src/org/eclipse/osee/ats/api/IAtsWorkItem.java
@@ -16,6 +16,7 @@ import org.eclipse.osee.ats.api.util.IAtsChangeSet;
import org.eclipse.osee.ats.api.workdef.IAtsStateDefinition;
import org.eclipse.osee.ats.api.workdef.IAtsWorkDefinition;
import org.eclipse.osee.ats.api.workflow.HasAssignees;
+import org.eclipse.osee.ats.api.workflow.IAtsAction;
import org.eclipse.osee.ats.api.workflow.IAtsTeamWorkflow;
import org.eclipse.osee.ats.api.workflow.log.IAtsLog;
import org.eclipse.osee.ats.api.workflow.state.IAtsStateManager;
@@ -68,4 +69,6 @@ public interface IAtsWorkItem extends IAtsObject, HasAssignees {
void setStateManager(IAtsStateManager stateManager);
+ IAtsAction getParentAction();
+
}
diff --git a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/actions/wizard/TeamWorkflowProviderAdapter.java b/plugins/org.eclipse.osee.ats.api/src/org/eclipse/osee/ats/api/team/TeamWorkflowProviderAdapter.java
index 744ef1480b8..a34d743b2ad 100644
--- a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/actions/wizard/TeamWorkflowProviderAdapter.java
+++ b/plugins/org.eclipse.osee.ats.api/src/org/eclipse/osee/ats/api/team/TeamWorkflowProviderAdapter.java
@@ -8,13 +8,11 @@
* Contributors:
* Boeing - initial API and implementation
*******************************************************************************/
-package org.eclipse.osee.ats.actions.wizard;
+package org.eclipse.osee.ats.api.team;
import java.util.Collection;
import org.eclipse.osee.ats.api.IAtsWorkItem;
import org.eclipse.osee.ats.api.ai.IAtsActionableItem;
-import org.eclipse.osee.ats.api.team.IAtsTeamDefinition;
-import org.eclipse.osee.ats.api.team.ITeamWorkflowProvider;
import org.eclipse.osee.ats.api.workflow.IAtsTeamWorkflow;
import org.eclipse.osee.framework.core.data.IArtifactType;
import org.eclipse.osee.framework.jdk.core.type.OseeCoreException;
diff --git a/plugins/org.eclipse.osee.ats.api/src/org/eclipse/osee/ats/api/workflow/IAtsBranchService.java b/plugins/org.eclipse.osee.ats.api/src/org/eclipse/osee/ats/api/workflow/IAtsBranchService.java
index cd12f6fc725..67364f730a3 100644
--- a/plugins/org.eclipse.osee.ats.api/src/org/eclipse/osee/ats/api/workflow/IAtsBranchService.java
+++ b/plugins/org.eclipse.osee.ats.api/src/org/eclipse/osee/ats/api/workflow/IAtsBranchService.java
@@ -128,4 +128,6 @@ public interface IAtsBranchService {
ITransaction getBaseTransaction(IOseeBranch branch);
+ String getBranchName(IAtsTeamWorkflow teamWf);
+
}
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 d52c89ed112..d711693c605 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
@@ -68,4 +68,6 @@ public interface IAtsWorkItemService {
Collection<? extends IAtsTask> getTasks(IAtsWorkItem workItem, IStateToken state);
+ String getArtifactTypeShortName(IAtsTeamWorkflow teamWf);
+
}
diff --git a/plugins/org.eclipse.osee.ats.client.demo/src/org/eclipse/osee/ats/client/demo/artifact/DemoTeamWorkflows.java b/plugins/org.eclipse.osee.ats.client.demo/src/org/eclipse/osee/ats/client/demo/artifact/DemoTeamWorkflows.java
index 78b5b6315e8..564d22381d8 100644
--- a/plugins/org.eclipse.osee.ats.client.demo/src/org/eclipse/osee/ats/client/demo/artifact/DemoTeamWorkflows.java
+++ b/plugins/org.eclipse.osee.ats.client.demo/src/org/eclipse/osee/ats/client/demo/artifact/DemoTeamWorkflows.java
@@ -12,11 +12,11 @@ package org.eclipse.osee.ats.client.demo.artifact;
import java.util.Collection;
import java.util.logging.Level;
-import org.eclipse.osee.ats.actions.wizard.TeamWorkflowProviderAdapter;
import org.eclipse.osee.ats.api.IAtsWorkItem;
import org.eclipse.osee.ats.api.ai.IAtsActionableItem;
import org.eclipse.osee.ats.api.data.AtsArtifactTypes;
import org.eclipse.osee.ats.api.team.IAtsTeamDefinition;
+import org.eclipse.osee.ats.api.team.TeamWorkflowProviderAdapter;
import org.eclipse.osee.ats.api.workflow.IAtsTeamWorkflow;
import org.eclipse.osee.ats.client.demo.DemoArtifactTypes;
import org.eclipse.osee.ats.client.demo.internal.Activator;
diff --git a/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/internal/AtsClientImpl.java b/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/internal/AtsClientImpl.java
index 0cacec343bb..299e0513b7c 100644
--- a/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/internal/AtsClientImpl.java
+++ b/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/internal/AtsClientImpl.java
@@ -219,8 +219,7 @@ public class AtsClientImpl implements IAtsClient {
relationResolver = new AtsRelationResolverServiceImpl();
workDefAdmin =
- new AtsWorkDefinitionAdminImpl(workDefCacheProvider, workItemService, workDefService, teamWorkflowProvider,
- attributeResolverService);
+ new AtsWorkDefinitionAdminImpl(workDefCacheProvider, workItemService, workDefService, attributeResolverService);
branchService = new AtsBranchServiceImpl(this);
reviewService = new AtsReviewServiceImpl(this, this);
diff --git a/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/internal/workflow/AtsWorkItemServiceImpl.java b/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/internal/workflow/AtsWorkItemServiceImpl.java
index bfca98999f3..e50137e2efc 100644
--- a/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/internal/workflow/AtsWorkItemServiceImpl.java
+++ b/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/internal/workflow/AtsWorkItemServiceImpl.java
@@ -26,6 +26,7 @@ import org.eclipse.osee.ats.core.client.internal.AtsClientService;
import org.eclipse.osee.ats.core.client.internal.IAtsWorkItemArtifactService;
import org.eclipse.osee.ats.core.client.review.ReviewManager;
import org.eclipse.osee.ats.core.client.team.TeamWorkFlowArtifact;
+import org.eclipse.osee.ats.core.client.team.TeamWorkFlowManager;
import org.eclipse.osee.ats.core.client.validator.AtsXWidgetValidateManagerClient;
import org.eclipse.osee.ats.core.client.workflow.AbstractWorkflowArtifact;
import org.eclipse.osee.ats.core.client.workflow.transition.TransitionListeners;
@@ -203,4 +204,8 @@ public class AtsWorkItemServiceImpl implements IAtsWorkItemService {
return teamWf.getTeamDefinition().getName();
}
+ @Override
+ public String getArtifactTypeShortName(IAtsTeamWorkflow teamWf) {
+ return TeamWorkFlowManager.getArtifactTypeShortName((TeamWorkFlowArtifact) teamWf.getStoreObject());
+ }
}
diff --git a/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/internal/workflow/WorkItem.java b/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/internal/workflow/WorkItem.java
index 3b648709c2e..135aae34890 100644
--- a/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/internal/workflow/WorkItem.java
+++ b/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/internal/workflow/WorkItem.java
@@ -21,12 +21,16 @@ import org.eclipse.osee.ats.api.util.IAtsChangeSet;
import org.eclipse.osee.ats.api.workdef.IAtsStateDefinition;
import org.eclipse.osee.ats.api.workdef.IAtsWorkDefinition;
import org.eclipse.osee.ats.api.workdef.IWorkDefinitionMatch;
+import org.eclipse.osee.ats.api.workflow.IAtsAction;
import org.eclipse.osee.ats.api.workflow.IAtsTask;
import org.eclipse.osee.ats.api.workflow.IAtsTeamWorkflow;
import org.eclipse.osee.ats.api.workflow.log.IAtsLog;
import org.eclipse.osee.ats.api.workflow.state.IAtsStateManager;
import org.eclipse.osee.ats.core.client.IAtsClient;
+import org.eclipse.osee.ats.core.client.action.ActionArtifact;
import org.eclipse.osee.ats.core.client.internal.Activator;
+import org.eclipse.osee.ats.core.client.internal.AtsClientService;
+import org.eclipse.osee.ats.core.client.workflow.AbstractWorkflowArtifact;
import org.eclipse.osee.ats.core.model.impl.AtsObject;
import org.eclipse.osee.framework.jdk.core.type.OseeCoreException;
import org.eclipse.osee.framework.jdk.core.type.OseeStateException;
@@ -111,6 +115,20 @@ public class WorkItem extends AtsObject implements IAtsWorkItem {
}
@Override
+ public IAtsAction getParentAction() {
+ Artifact actionArt = null;
+ if (artifact instanceof ActionArtifact) {
+ actionArt = artifact;
+ } else if (artifact instanceof AbstractWorkflowArtifact) {
+ actionArt = ((AbstractWorkflowArtifact) artifact).getParentActionArtifact();
+ }
+ if (actionArt != null) {
+ return AtsClientService.get().getWorkItemFactory().getAction(actionArt);
+ }
+ return null;
+ }
+
+ @Override
public boolean isReview() {
return this instanceof IAtsAbstractReview;
}
diff --git a/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/team/TeamWorkFlowArtifact.java b/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/team/TeamWorkFlowArtifact.java
index f3661ccb8d5..6eb7110585c 100644
--- a/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/team/TeamWorkFlowArtifact.java
+++ b/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/team/TeamWorkFlowArtifact.java
@@ -243,19 +243,6 @@ public class TeamWorkFlowArtifact extends AbstractTaskableArtifact implements IA
return (Branch) AtsClientService.get().getBranchService().getWorkingBranch(this);
}
- public String getBranchName() {
- String smaTitle = getName();
- if (smaTitle.length() > 40) {
- smaTitle = smaTitle.substring(0, 39) + "...";
- }
- String typeName = TeamWorkFlowManager.getArtifactTypeShortName(this);
- if (Strings.isValid(typeName)) {
- return String.format("%s - %s - %s", getAtsId(), typeName, smaTitle);
- } else {
- return String.format("%s - %s", getAtsId(), smaTitle);
- }
- }
-
public boolean isWorkingBranchCreationInProgress() {
return creatingWorkingBranch;
}
diff --git a/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/team/TeamWorkFlowManager.java b/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/team/TeamWorkFlowManager.java
index a309eae3be5..f5d85868280 100644
--- a/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/team/TeamWorkFlowManager.java
+++ b/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/team/TeamWorkFlowManager.java
@@ -285,13 +285,7 @@ public class TeamWorkFlowManager {
}
public static String getBranchName(TeamWorkFlowArtifact teamArt) {
- for (ITeamWorkflowProvider teamExtension : getTeamWorkflowProviders()) {
- String name = teamExtension.getBranchName(teamArt);
- if (Strings.isValid(name)) {
- return name;
- }
- }
- return teamArt.getBranchName();
+ return AtsClientService.get().getBranchService().getBranchName(teamArt);
}
public static ITeamWorkflowProvider getTeamWorkflowProvider(IAtsTeamDefinition teamDef, Collection<IAtsActionableItem> actionableItems) {
diff --git a/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/workflow/AbstractWorkflowArtifact.java b/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/workflow/AbstractWorkflowArtifact.java
index ba89c5e3106..5503af05770 100644
--- a/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/workflow/AbstractWorkflowArtifact.java
+++ b/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/workflow/AbstractWorkflowArtifact.java
@@ -32,6 +32,7 @@ import org.eclipse.osee.ats.api.workdef.IAtsWorkDefinition;
import org.eclipse.osee.ats.api.workdef.IStateToken;
import org.eclipse.osee.ats.api.workdef.IWorkDefinitionMatch;
import org.eclipse.osee.ats.api.workdef.RuleDefinitionOption;
+import org.eclipse.osee.ats.api.workflow.IAtsAction;
import org.eclipse.osee.ats.api.workflow.log.IAtsLog;
import org.eclipse.osee.ats.api.workflow.log.IAtsLogItem;
import org.eclipse.osee.ats.api.workflow.log.LogType;
@@ -164,6 +165,15 @@ public abstract class AbstractWorkflowArtifact extends AbstractAtsArtifact imple
return parentTeamArt;
}
+ @Override
+ public IAtsAction getParentAction() {
+ Artifact actionArt = getParentActionArtifact();
+ if (actionArt != null) {
+ return AtsClientService.get().getWorkItemFactory().getAction(actionArt);
+ }
+ return null;
+ }
+
public String getEditorTitle() throws OseeCoreException {
return getType() + ": " + getName();
}
@@ -708,6 +718,7 @@ public abstract class AbstractWorkflowArtifact extends AbstractAtsArtifact imple
return this.isOfType(AtsArtifactTypes.Task);
}
+ @Override
public boolean isReview() {
return this instanceof AbstractReviewArtifact;
}
diff --git a/plugins/org.eclipse.osee.ats.core.test/src/org/eclipse/osee/ats/core/mock/MockWorkItem.java b/plugins/org.eclipse.osee.ats.core.test/src/org/eclipse/osee/ats/core/mock/MockWorkItem.java
index fdb9319b091..963a60ebc01 100644
--- a/plugins/org.eclipse.osee.ats.core.test/src/org/eclipse/osee/ats/core/mock/MockWorkItem.java
+++ b/plugins/org.eclipse.osee.ats.core.test/src/org/eclipse/osee/ats/core/mock/MockWorkItem.java
@@ -18,6 +18,7 @@ import org.eclipse.osee.ats.api.util.IAtsChangeSet;
import org.eclipse.osee.ats.api.workdef.IAtsStateDefinition;
import org.eclipse.osee.ats.api.workdef.IAtsWorkDefinition;
import org.eclipse.osee.ats.api.workdef.StateType;
+import org.eclipse.osee.ats.api.workflow.IAtsAction;
import org.eclipse.osee.ats.api.workflow.IAtsTeamWorkflow;
import org.eclipse.osee.ats.api.workflow.log.IAtsLog;
import org.eclipse.osee.ats.api.workflow.state.IAtsStateManager;
@@ -234,4 +235,9 @@ public class MockWorkItem implements IAtsWorkItem {
return false;
}
+ @Override
+ public IAtsAction getParentAction() {
+ return null;
+ }
+
}
diff --git a/plugins/org.eclipse.osee.ats.core.test/src/org/eclipse/osee/ats/core/workdef/AtsWorkDefinitionAdminImplTest.java b/plugins/org.eclipse.osee.ats.core.test/src/org/eclipse/osee/ats/core/workdef/AtsWorkDefinitionAdminImplTest.java
index f813e4b224d..ab9b3231950 100644
--- a/plugins/org.eclipse.osee.ats.core.test/src/org/eclipse/osee/ats/core/workdef/AtsWorkDefinitionAdminImplTest.java
+++ b/plugins/org.eclipse.osee.ats.core.test/src/org/eclipse/osee/ats/core/workdef/AtsWorkDefinitionAdminImplTest.java
@@ -89,8 +89,7 @@ public class AtsWorkDefinitionAdminImplTest {
when(cacheProvider.get()).thenReturn(cache);
workDefAmin =
- new AtsWorkDefinitionAdminImpl(cacheProvider, workItemService, workDefinitionService, teamWorkflowProviders,
- attributeResolver);
+ new AtsWorkDefinitionAdminImpl(cacheProvider, workItemService, workDefinitionService, attributeResolver);
}
@Test
diff --git a/plugins/org.eclipse.osee.ats.core/OSGI-INF/ats.team.workflow.providers.ref.xml b/plugins/org.eclipse.osee.ats.core/OSGI-INF/ats.team.workflow.providers.ref.xml
new file mode 100644
index 00000000000..48bb75af9d4
--- /dev/null
+++ b/plugins/org.eclipse.osee.ats.core/OSGI-INF/ats.team.workflow.providers.ref.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0">
+ <implementation class="org.eclipse.osee.ats.core.workflow.TeamWorkflowProviders"/>
+ <reference bind="addTeamWorkflowProvider" cardinality="0..n" interface="org.eclipse.osee.ats.api.team.ITeamWorkflowProvider" name="ITeamWorkflowProvider" policy="dynamic" unbind="removeTeamWorkflowProvider"/>
+</scr:component>
diff --git a/plugins/org.eclipse.osee.ats.core/src/org/eclipse/osee/ats/core/util/AbstractAtsBranchService.java b/plugins/org.eclipse.osee.ats.core/src/org/eclipse/osee/ats/core/util/AbstractAtsBranchService.java
index c677d74dde0..26ce356eecc 100644
--- a/plugins/org.eclipse.osee.ats.core/src/org/eclipse/osee/ats/core/util/AbstractAtsBranchService.java
+++ b/plugins/org.eclipse.osee.ats.core/src/org/eclipse/osee/ats/core/util/AbstractAtsBranchService.java
@@ -23,10 +23,12 @@ import org.eclipse.osee.ats.api.commit.CommitStatus;
import org.eclipse.osee.ats.api.commit.ICommitConfigItem;
import org.eclipse.osee.ats.api.data.AtsAttributeTypes;
import org.eclipse.osee.ats.api.team.IAtsTeamDefinition;
+import org.eclipse.osee.ats.api.team.ITeamWorkflowProvider;
import org.eclipse.osee.ats.api.version.IAtsVersion;
import org.eclipse.osee.ats.api.version.IAtsVersionService;
import org.eclipse.osee.ats.api.workflow.IAtsBranchService;
import org.eclipse.osee.ats.api.workflow.IAtsTeamWorkflow;
+import org.eclipse.osee.ats.core.workflow.TeamWorkflowProviders;
import org.eclipse.osee.framework.core.data.IOseeBranch;
import org.eclipse.osee.framework.core.data.ITransaction;
import org.eclipse.osee.framework.core.enums.BranchState;
@@ -43,10 +45,13 @@ public abstract class AbstractAtsBranchService implements IAtsBranchService {
protected static Map<String, IOseeBranch> idToWorkingBranchCache = new HashMap<String, IOseeBranch>();
protected static Map<String, Long> idToWorkingBranchCacheUpdated = new HashMap<String, Long>(50);
- private final IAtsServices atsServices;
+ protected IAtsServices atsServices;
private static final int SHORT_NAME_LIMIT = 35;
private static Set<IOseeBranch> branchesInCommit = new HashSet<IOseeBranch>();
+ public AbstractAtsBranchService() {
+ }
+
public AbstractAtsBranchService(IAtsServices atsServices) {
this.atsServices = atsServices;
}
@@ -607,4 +612,24 @@ public abstract class AbstractAtsBranchService implements IAtsBranchService {
destinationBranchParent, commitTransactionIds);
}
+ @Override
+ public String getBranchName(IAtsTeamWorkflow teamWf) {
+ for (ITeamWorkflowProvider teamExtension : TeamWorkflowProviders.getTeamWorkflowProviders()) {
+ String name = teamExtension.getBranchName(teamWf);
+ if (Strings.isValid(name)) {
+ return name;
+ }
+ }
+ String smaTitle = teamWf.getName();
+ if (smaTitle.length() > 40) {
+ smaTitle = smaTitle.substring(0, 39) + "...";
+ }
+ String typeName = atsServices.getWorkItemService().getArtifactTypeShortName(teamWf);
+ if (Strings.isValid(typeName)) {
+ return String.format("%s - %s - %s", teamWf.getAtsId(), typeName, smaTitle);
+ } else {
+ return String.format("%s - %s", teamWf.getAtsId(), smaTitle);
+ }
+ }
+
}
diff --git a/plugins/org.eclipse.osee.ats.core/src/org/eclipse/osee/ats/core/workdef/AtsWorkDefinitionAdminImpl.java b/plugins/org.eclipse.osee.ats.core/src/org/eclipse/osee/ats/core/workdef/AtsWorkDefinitionAdminImpl.java
index 76b3aea61dc..331bde78ecb 100644
--- a/plugins/org.eclipse.osee.ats.core/src/org/eclipse/osee/ats/core/workdef/AtsWorkDefinitionAdminImpl.java
+++ b/plugins/org.eclipse.osee.ats.core/src/org/eclipse/osee/ats/core/workdef/AtsWorkDefinitionAdminImpl.java
@@ -22,7 +22,6 @@ import org.eclipse.osee.ats.api.review.IAtsDecisionReview;
import org.eclipse.osee.ats.api.review.IAtsPeerToPeerReview;
import org.eclipse.osee.ats.api.team.IAtsTeamDefinition;
import org.eclipse.osee.ats.api.team.ITeamWorkflowProvider;
-import org.eclipse.osee.ats.api.team.ITeamWorkflowProviders;
import org.eclipse.osee.ats.api.workdef.IAtsStateDefinition;
import org.eclipse.osee.ats.api.workdef.IAtsWidgetDefinition;
import org.eclipse.osee.ats.api.workdef.IAtsWorkDefinition;
@@ -35,6 +34,7 @@ import org.eclipse.osee.ats.api.workflow.IAtsTask;
import org.eclipse.osee.ats.api.workflow.IAtsTeamWorkflow;
import org.eclipse.osee.ats.api.workflow.IAtsWorkItemService;
import org.eclipse.osee.ats.core.util.CacheProvider;
+import org.eclipse.osee.ats.core.workflow.TeamWorkflowProviders;
import org.eclipse.osee.framework.core.exception.MultipleAttributesExist;
import org.eclipse.osee.framework.core.util.XResultData;
import org.eclipse.osee.framework.jdk.core.type.OseeCoreException;
@@ -49,15 +49,13 @@ public class AtsWorkDefinitionAdminImpl implements IAtsWorkDefinitionAdmin {
private final CacheProvider<AtsWorkDefinitionCache> cacheProvider;
private final IAtsWorkDefinitionService workDefinitionService;
- private final ITeamWorkflowProviders teamWorkflowProviders;
private final IAtsWorkItemService workItemService;
private final IAttributeResolver attributeResolver;
- public AtsWorkDefinitionAdminImpl(CacheProvider<AtsWorkDefinitionCache> workDefCacheProvider, IAtsWorkItemService workItemService, IAtsWorkDefinitionService workDefinitionService, ITeamWorkflowProviders teamWorkflowProviders, IAttributeResolver attributeResolver) {
+ public AtsWorkDefinitionAdminImpl(CacheProvider<AtsWorkDefinitionCache> workDefCacheProvider, IAtsWorkItemService workItemService, IAtsWorkDefinitionService workDefinitionService, IAttributeResolver attributeResolver) {
this.cacheProvider = workDefCacheProvider;
this.workItemService = workItemService;
this.workDefinitionService = workDefinitionService;
- this.teamWorkflowProviders = teamWorkflowProviders;
this.attributeResolver = attributeResolver;
}
@@ -230,7 +228,7 @@ public class AtsWorkDefinitionAdminImpl implements IAtsWorkDefinitionAdmin {
*/
private IWorkDefinitionMatch getWorkDefinitionForTask(IAtsTeamWorkflow teamWf, IAtsTask task) throws OseeCoreException {
IWorkDefinitionMatch match = new WorkDefinitionMatch();
- for (ITeamWorkflowProvider provider : teamWorkflowProviders.getTeamWorkflowProviders()) {
+ for (ITeamWorkflowProvider provider : TeamWorkflowProviders.getTeamWorkflowProviders()) {
String workFlowDefId = provider.getRelatedTaskWorkflowDefinitionId(teamWf);
if (Strings.isValid(workFlowDefId)) {
match = getWorkDefinition(workFlowDefId);
@@ -269,7 +267,7 @@ public class AtsWorkDefinitionAdminImpl implements IAtsWorkDefinitionAdmin {
}
if (!match.isMatched()) {
// Check extensions for definition handling
- for (ITeamWorkflowProvider provider : teamWorkflowProviders.getTeamWorkflowProviders()) {
+ for (ITeamWorkflowProvider provider : TeamWorkflowProviders.getTeamWorkflowProviders()) {
String workFlowDefId = provider.getWorkflowDefinitionId(workItem);
if (Strings.isValid(workFlowDefId)) {
match = getWorkDefinition(workFlowDefId);
diff --git a/plugins/org.eclipse.osee.ats.core/src/org/eclipse/osee/ats/core/workflow/TeamWorkflowProviders.java b/plugins/org.eclipse.osee.ats.core/src/org/eclipse/osee/ats/core/workflow/TeamWorkflowProviders.java
new file mode 100644
index 00000000000..46be0207f40
--- /dev/null
+++ b/plugins/org.eclipse.osee.ats.core/src/org/eclipse/osee/ats/core/workflow/TeamWorkflowProviders.java
@@ -0,0 +1,37 @@
+/*******************************************************************************
+ * Copyright (c) 2013 Boeing.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Boeing - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.osee.ats.core.workflow;
+
+import java.util.List;
+import java.util.concurrent.CopyOnWriteArrayList;
+import org.eclipse.osee.ats.api.team.ITeamWorkflowProvider;
+
+/**
+ * @author Donald G Dunne
+ */
+public class TeamWorkflowProviders {
+
+ private static final List<ITeamWorkflowProvider> teamWorkflowProviders =
+ new CopyOnWriteArrayList<ITeamWorkflowProvider>();
+
+ public void addTeamWorkflowProvider(ITeamWorkflowProvider teamWorkflowProvider) {
+ teamWorkflowProviders.add(teamWorkflowProvider);
+ }
+
+ public void removeTeamWorkflowProvider(ITeamWorkflowProvider teamWorkflowProvider) {
+ teamWorkflowProviders.remove(teamWorkflowProvider);
+ }
+
+ public static List<ITeamWorkflowProvider> getTeamWorkflowProviders() {
+ return teamWorkflowProviders;
+ }
+
+}
diff --git a/plugins/org.eclipse.osee.ats.impl/OSGI-INF/ats.team.workflow.providers.ref.xml b/plugins/org.eclipse.osee.ats.impl/OSGI-INF/ats.team.workflow.providers.ref.xml
new file mode 100644
index 00000000000..984ba2bda10
--- /dev/null
+++ b/plugins/org.eclipse.osee.ats.impl/OSGI-INF/ats.team.workflow.providers.ref.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" activate="start" deactivate="stop">
+ <implementation class="org.eclipse.osee.ats.impl.internal.util.TeamWorkflowProviders"/>
+ <reference bind="addTeamWorkflowProvider" cardinality="0..n" interface="org.eclipse.osee.ats.api.team.ITeamWorkflowProvider" name="ITeamWorkflowProvider" policy="dynamic" unbind="removeTeamWorkflowProvider"/>
+ <reference bind="setLogger" cardinality="1..1" interface="org.eclipse.osee.logger.Log" name="Log" policy="static"/>
+</scr:component>
diff --git a/plugins/org.eclipse.osee.ats.impl/src/org/eclipse/osee/ats/impl/internal/AtsServerImpl.java b/plugins/org.eclipse.osee.ats.impl/src/org/eclipse/osee/ats/impl/internal/AtsServerImpl.java
index ddd9aede91a..fa4d61fe687 100644
--- a/plugins/org.eclipse.osee.ats.impl/src/org/eclipse/osee/ats/impl/internal/AtsServerImpl.java
+++ b/plugins/org.eclipse.osee.ats.impl/src/org/eclipse/osee/ats/impl/internal/AtsServerImpl.java
@@ -71,7 +71,7 @@ import org.eclipse.osee.ats.impl.internal.util.AtsRelationResolverServiceImpl;
import org.eclipse.osee.ats.impl.internal.util.AtsReviewServiceImpl;
import org.eclipse.osee.ats.impl.internal.util.AtsStoreServiceImpl;
import org.eclipse.osee.ats.impl.internal.util.AtsWorkDefinitionCacheProvider;
-import org.eclipse.osee.ats.impl.internal.util.TeamWorkflowProvider;
+import org.eclipse.osee.ats.impl.internal.util.TeamWorkflowProviders;
import org.eclipse.osee.ats.impl.internal.workitem.AtsProgramService;
import org.eclipse.osee.ats.impl.internal.workitem.AtsTeamDefinitionService;
import org.eclipse.osee.ats.impl.internal.workitem.AtsVersionServiceImpl;
@@ -111,7 +111,6 @@ public class AtsServerImpl implements IAtsServer {
private IAtsReviewService reviewService;
private IAtsWorkDefinitionAdmin workDefAdmin;
private AtsWorkDefinitionCacheProvider workDefCacheProvider;
- private TeamWorkflowProvider teamWorkflowProvider;
private AtsAttributeResolverServiceImpl attributeResolverService;
private IAtsConfig config;
private IAtsConfigItemFactory configItemFactory;
@@ -188,18 +187,16 @@ public class AtsServerImpl implements IAtsServer {
workItemFactory = new WorkItemFactory(logger, this);
configItemFactory = new ConfigItemFactory(logger, this);
- workItemService = new AtsWorkItemServiceImpl(this, this);
+ workItemService = new AtsWorkItemServiceImpl(this, new TeamWorkflowProviders());
branchService = new AtsBranchServiceImpl(getServices(), orcsApi);
reviewService = new AtsReviewServiceImpl(this, this, workItemService);
workDefCacheProvider = new AtsWorkDefinitionCacheProvider(workDefService);
- teamWorkflowProvider = new TeamWorkflowProvider();
attributeResolverService = new AtsAttributeResolverServiceImpl();
relationResolver = new AtsRelationResolverServiceImpl(this);
attributeResolverService.setOrcsApi(orcsApi);
workDefAdmin =
- new AtsWorkDefinitionAdminImpl(workDefCacheProvider, workItemService, workDefService, teamWorkflowProvider,
- attributeResolverService);
+ new AtsWorkDefinitionAdminImpl(workDefCacheProvider, workItemService, workDefService, attributeResolverService);
atsLogFactory = AtsCoreFactory.newLogFactory();
atsStateFactory = AtsCoreFactory.newStateFactory(getServices(), atsLogFactory);
diff --git a/plugins/org.eclipse.osee.ats.impl/src/org/eclipse/osee/ats/impl/internal/notify/WorkItemNotificationProcessor.java b/plugins/org.eclipse.osee.ats.impl/src/org/eclipse/osee/ats/impl/internal/notify/WorkItemNotificationProcessor.java
index 9a4951566b2..484d5b21b1c 100644
--- a/plugins/org.eclipse.osee.ats.impl/src/org/eclipse/osee/ats/impl/internal/notify/WorkItemNotificationProcessor.java
+++ b/plugins/org.eclipse.osee.ats.impl/src/org/eclipse/osee/ats/impl/internal/notify/WorkItemNotificationProcessor.java
@@ -151,7 +151,10 @@ public class WorkItemNotificationProcessor {
try {
IAtsStateDefinition stateDefinition = workItem.getStateDefinition();
StateType stateType = stateDefinition.getStateType();
- if (types.contains(AtsNotifyType.Cancelled) || types.contains(AtsNotifyType.Completed) && (!workItem.isTask() && (stateType.isCompleted() || stateType.isCancelled()))) {
+ boolean notificationTypeIsCompletedOrCancelled =
+ types.contains(AtsNotifyType.Cancelled) || types.contains(AtsNotifyType.Completed);
+ boolean stateTypeIsCompletedOrCancelled = stateType.isCompleted() || stateType.isCancelled();
+ if (notificationTypeIsCompletedOrCancelled && !workItem.isTask() && stateTypeIsCompletedOrCancelled) {
IAtsUser originator = workItem.getCreatedBy();
if (originator.isActive()) {
if (!EmailUtil.isEmailValid(originator.getEmail())) {
diff --git a/plugins/org.eclipse.osee.ats.impl/src/org/eclipse/osee/ats/impl/internal/util/TeamWorkflowProvider.java b/plugins/org.eclipse.osee.ats.impl/src/org/eclipse/osee/ats/impl/internal/util/ITeamWorkflowProvidersLazy.java
index 679d58df17b..c927e96049f 100644
--- a/plugins/org.eclipse.osee.ats.impl/src/org/eclipse/osee/ats/impl/internal/util/TeamWorkflowProvider.java
+++ b/plugins/org.eclipse.osee.ats.impl/src/org/eclipse/osee/ats/impl/internal/util/ITeamWorkflowProvidersLazy.java
@@ -10,25 +10,14 @@
*******************************************************************************/
package org.eclipse.osee.ats.impl.internal.util;
-import java.util.Collections;
-import java.util.Iterator;
import java.util.List;
import org.eclipse.osee.ats.api.team.ITeamWorkflowProvider;
-import org.eclipse.osee.ats.api.team.ITeamWorkflowProviders;
/**
* @author Donald G. Dunne
*/
-public class TeamWorkflowProvider implements ITeamWorkflowProviders {
+public interface ITeamWorkflowProvidersLazy {
- @Override
- public Iterator<ITeamWorkflowProvider> iterator() {
- return getTeamWorkflowProviders().iterator();
- }
-
- @Override
- public List<ITeamWorkflowProvider> getTeamWorkflowProviders() {
- return Collections.emptyList();
- }
+ public List<ITeamWorkflowProvider> getProviders();
}
diff --git a/plugins/org.eclipse.osee.ats.impl/src/org/eclipse/osee/ats/impl/internal/util/TeamWorkflowProviders.java b/plugins/org.eclipse.osee.ats.impl/src/org/eclipse/osee/ats/impl/internal/util/TeamWorkflowProviders.java
new file mode 100644
index 00000000000..09a2ede7941
--- /dev/null
+++ b/plugins/org.eclipse.osee.ats.impl/src/org/eclipse/osee/ats/impl/internal/util/TeamWorkflowProviders.java
@@ -0,0 +1,58 @@
+/*******************************************************************************
+ * Copyright (c) 2015 Boeing.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Boeing - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.osee.ats.impl.internal.util;
+
+import java.util.List;
+import java.util.concurrent.CopyOnWriteArrayList;
+import org.eclipse.osee.ats.api.team.ITeamWorkflowProvider;
+import org.eclipse.osee.framework.jdk.core.type.OseeCoreException;
+import org.eclipse.osee.logger.Log;
+
+/**
+ * @author Donald G Dunne
+ */
+public class TeamWorkflowProviders implements ITeamWorkflowProvidersLazy {
+
+ private Log logger;
+ private static final List<ITeamWorkflowProvider> teamWorkflowProviders =
+ new CopyOnWriteArrayList<ITeamWorkflowProvider>();
+
+ public void setLogger(Log logger) {
+ this.logger = logger;
+ }
+
+ public void addTeamWorkflowProvider(ITeamWorkflowProvider teamWorkflowProvider) {
+ teamWorkflowProviders.add(teamWorkflowProvider);
+ }
+
+ public void removeTeamWorkflowProvider(ITeamWorkflowProvider teamWorkflowProvider) {
+ teamWorkflowProviders.remove(teamWorkflowProvider);
+ }
+
+ public void start() throws OseeCoreException {
+ logger.info("AtsTeamWorkflowProviders started");
+ }
+
+ public void stop() {
+ logger = null;
+ teamWorkflowProviders.clear();
+ }
+
+ public static List<ITeamWorkflowProvider> getTeamWorkflowProviders() {
+ return teamWorkflowProviders;
+ }
+
+ @Override
+ public List<ITeamWorkflowProvider> getProviders() {
+ return teamWorkflowProviders;
+ }
+
+}
diff --git a/plugins/org.eclipse.osee.ats.impl/src/org/eclipse/osee/ats/impl/internal/workitem/AtsWorkItemServiceImpl.java b/plugins/org.eclipse.osee.ats.impl/src/org/eclipse/osee/ats/impl/internal/workitem/AtsWorkItemServiceImpl.java
index 6cef274d494..3bb907ee268 100644
--- a/plugins/org.eclipse.osee.ats.impl/src/org/eclipse/osee/ats/impl/internal/workitem/AtsWorkItemServiceImpl.java
+++ b/plugins/org.eclipse.osee.ats.impl/src/org/eclipse/osee/ats/impl/internal/workitem/AtsWorkItemServiceImpl.java
@@ -19,6 +19,7 @@ import org.eclipse.osee.ats.api.IAtsWorkItem;
import org.eclipse.osee.ats.api.data.AtsAttributeTypes;
import org.eclipse.osee.ats.api.data.AtsRelationTypes;
import org.eclipse.osee.ats.api.review.IAtsAbstractReview;
+import org.eclipse.osee.ats.api.team.ITeamWorkflowProvider;
import org.eclipse.osee.ats.api.workdef.IAtsStateDefinition;
import org.eclipse.osee.ats.api.workdef.IStateToken;
import org.eclipse.osee.ats.api.workdef.StateType;
@@ -30,9 +31,11 @@ import org.eclipse.osee.ats.api.workflow.IAtsWorkItemService;
import org.eclipse.osee.ats.api.workflow.transition.ITransitionListener;
import org.eclipse.osee.ats.core.workflow.state.SimpleTeamState;
import org.eclipse.osee.ats.impl.IAtsServer;
+import org.eclipse.osee.ats.impl.internal.util.ITeamWorkflowProvidersLazy;
import org.eclipse.osee.framework.core.data.IArtifactType;
import org.eclipse.osee.framework.core.data.IAttributeType;
import org.eclipse.osee.framework.jdk.core.type.OseeCoreException;
+import org.eclipse.osee.framework.jdk.core.util.Strings;
import org.eclipse.osee.orcs.data.ArtifactReadable;
/**
@@ -40,17 +43,17 @@ import org.eclipse.osee.orcs.data.ArtifactReadable;
*/
public class AtsWorkItemServiceImpl implements IAtsWorkItemService {
- private final IArtifactProvider artifactProvider;
private final IAtsServer atsServer;
+ private final ITeamWorkflowProvidersLazy teamWorkflowProvidersLazy;
- public AtsWorkItemServiceImpl(IAtsServer atsServer, IArtifactProvider artifactProvider) {
+ public AtsWorkItemServiceImpl(IAtsServer atsServer, ITeamWorkflowProvidersLazy teamWorkflowProvidersLazy) {
this.atsServer = atsServer;
- this.artifactProvider = artifactProvider;
+ this.teamWorkflowProvidersLazy = teamWorkflowProvidersLazy;
}
@Override
public IArtifactType getArtifactType(IAtsWorkItem workItem) throws OseeCoreException {
- return artifactProvider.getArtifact(workItem).getArtifactType();
+ return atsServer.getArtifact(workItem).getArtifactType();
}
@Override
@@ -60,7 +63,7 @@ public class AtsWorkItemServiceImpl implements IAtsWorkItemService {
@Override
public boolean isOfType(IAtsWorkItem workItem, IArtifactType matchType) throws OseeCoreException {
- return artifactProvider.getArtifact(workItem).getArtifactType().matches(matchType);
+ return atsServer.getArtifact(workItem).isOfType(matchType);
}
@Override
@@ -70,7 +73,7 @@ public class AtsWorkItemServiceImpl implements IAtsWorkItemService {
@Override
public int getTransactionNumber(IAtsWorkItem workItem) throws OseeCoreException {
- return artifactProvider.getArtifact(workItem).getTransaction();
+ return atsServer.getArtifact(workItem).getTransaction();
}
@Override
@@ -151,7 +154,7 @@ public class AtsWorkItemServiceImpl implements IAtsWorkItemService {
@Override
public String getCurrentStateName(IAtsWorkItem workItem) throws OseeCoreException {
- return artifactProvider.getArtifact(workItem).getSoleAttributeValue(AtsAttributeTypes.CurrentState, "").replaceAll(
+ return atsServer.getArtifact(workItem).getSoleAttributeValue(AtsAttributeTypes.CurrentState, "").replaceAll(
";.*$", "");
}
@@ -183,7 +186,7 @@ public class AtsWorkItemServiceImpl implements IAtsWorkItemService {
String version = "";
try {
ArtifactReadable art =
- artifactProvider.getArtifact(teamWf).getRelated(AtsRelationTypes.TeamWorkflowTargetedForVersion_Version).getOneOrNull();
+ atsServer.getArtifact(teamWf).getRelated(AtsRelationTypes.TeamWorkflowTargetedForVersion_Version).getOneOrNull();
if (art != null) {
version = art.getName();
}
@@ -198,4 +201,15 @@ public class AtsWorkItemServiceImpl implements IAtsWorkItemService {
return teamWf.getTeamDefinition().getName();
}
+ @Override
+ public String getArtifactTypeShortName(IAtsTeamWorkflow teamWf) {
+ for (ITeamWorkflowProvider atsTeamWorkflow : teamWorkflowProvidersLazy.getProviders()) {
+ String typeName = atsTeamWorkflow.getArtifactTypeShortName(teamWf);
+ if (Strings.isValid(typeName)) {
+ return typeName;
+ }
+ }
+ return null;
+ }
+
}
diff --git a/plugins/org.eclipse.osee.ats.impl/src/org/eclipse/osee/ats/impl/internal/workitem/WorkItem.java b/plugins/org.eclipse.osee.ats.impl/src/org/eclipse/osee/ats/impl/internal/workitem/WorkItem.java
index 945c2bbb491..dab372db45c 100644
--- a/plugins/org.eclipse.osee.ats.impl/src/org/eclipse/osee/ats/impl/internal/workitem/WorkItem.java
+++ b/plugins/org.eclipse.osee.ats.impl/src/org/eclipse/osee/ats/impl/internal/workitem/WorkItem.java
@@ -21,6 +21,7 @@ import org.eclipse.osee.ats.api.util.IAtsChangeSet;
import org.eclipse.osee.ats.api.workdef.IAtsStateDefinition;
import org.eclipse.osee.ats.api.workdef.IAtsWorkDefinition;
import org.eclipse.osee.ats.api.workdef.IWorkDefinitionMatch;
+import org.eclipse.osee.ats.api.workflow.IAtsAction;
import org.eclipse.osee.ats.api.workflow.IAtsTask;
import org.eclipse.osee.ats.api.workflow.IAtsTeamWorkflow;
import org.eclipse.osee.ats.api.workflow.log.IAtsLog;
@@ -111,6 +112,20 @@ public class WorkItem extends AtsObject implements IAtsWorkItem {
}
@Override
+ public IAtsAction getParentAction() {
+ ArtifactReadable actionArt = null;
+ IAtsTeamWorkflow teamWf = getParentTeamWorkflow();
+ if (teamWf != null) {
+ ResultSet<ArtifactReadable> results =
+ ((ArtifactReadable) teamWf.getStoreObject()).getRelated(AtsRelationTypes.ActionToWorkflow_Action);
+ if (!results.isEmpty()) {
+ actionArt = results.iterator().next();
+ }
+ }
+ return atsServer.getWorkItemFactory().getAction(actionArt);
+ }
+
+ @Override
public boolean isReview() {
return this instanceof IAtsAbstractReview;
}

Back to the top