Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/org.eclipse.osee.ats.rest/src/org/eclipse/osee/ats/rest/internal/workitem/AtsWorkItemServiceImpl.java')
-rw-r--r--plugins/org.eclipse.osee.ats.rest/src/org/eclipse/osee/ats/rest/internal/workitem/AtsWorkItemServiceImpl.java197
1 files changed, 197 insertions, 0 deletions
diff --git a/plugins/org.eclipse.osee.ats.rest/src/org/eclipse/osee/ats/rest/internal/workitem/AtsWorkItemServiceImpl.java b/plugins/org.eclipse.osee.ats.rest/src/org/eclipse/osee/ats/rest/internal/workitem/AtsWorkItemServiceImpl.java
new file mode 100644
index 00000000000..58b3bdaf24e
--- /dev/null
+++ b/plugins/org.eclipse.osee.ats.rest/src/org/eclipse/osee/ats/rest/internal/workitem/AtsWorkItemServiceImpl.java
@@ -0,0 +1,197 @@
+/*******************************************************************************
+ * 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.rest.internal.workitem;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.List;
+import org.eclipse.osee.ats.api.IAtsObject;
+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.IAtsWorkItemFactory;
+import org.eclipse.osee.ats.api.workdef.IAtsStateDefinition;
+import org.eclipse.osee.ats.api.workdef.IStateToken;
+import org.eclipse.osee.ats.api.workdef.StateType;
+import org.eclipse.osee.ats.api.workdef.WidgetResult;
+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.IAtsWorkData;
+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.rest.internal.AtsServerImpl;
+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.orcs.data.ArtifactReadable;
+
+/**
+ * @author Donald G. Dunne
+ */
+public class AtsWorkItemServiceImpl implements IAtsWorkItemService {
+
+ private final IAtsWorkItemFactory workItemFactory;
+ private final IArtifactProvider artifactProvider;
+
+ public AtsWorkItemServiceImpl(IAtsWorkItemFactory workItemFactory, IArtifactProvider artifactProvider) {
+ this.workItemFactory = workItemFactory;
+ this.artifactProvider = artifactProvider;
+ }
+
+ @Override
+ public IAtsWorkData getWorkData(IAtsWorkItem workItem) throws OseeCoreException {
+ return new WorkData(workItemFactory.getWorkItem(workItem), artifactProvider.getArtifact(workItem));
+ }
+
+ @Override
+ public IArtifactType getArtifactType(IAtsWorkItem workItem) throws OseeCoreException {
+ return artifactProvider.getArtifact(workItem).getArtifactType();
+ }
+
+ @Override
+ public Collection<Object> getAttributeValues(IAtsObject atsObject, IAttributeType attributeType) throws OseeCoreException {
+ return AtsServerImpl.get().getArtifact(atsObject).getAttributeValues(attributeType);
+ }
+
+ @Override
+ public boolean isOfType(IAtsWorkItem workItem, IArtifactType matchType) throws OseeCoreException {
+ return artifactProvider.getArtifact(workItem).getArtifactType().matches(matchType);
+ }
+
+ @Override
+ public IAtsTeamWorkflow getParentTeamWorkflow(IAtsWorkItem workItem) throws OseeCoreException {
+ return workItemFactory.getWorkItem(workItem).getParentTeamWorkflow();
+ }
+
+ @Override
+ public int getTransactionNumber(IAtsWorkItem workItem) throws OseeCoreException {
+ return artifactProvider.getArtifact(workItem).getTransaction();
+ }
+
+ @Override
+ public Collection<IAtsTeamWorkflow> getTeams(IAtsAction action) throws OseeCoreException {
+ List<IAtsTeamWorkflow> teams = new ArrayList<IAtsTeamWorkflow>();
+ for (ArtifactReadable art : AtsServerImpl.get().getArtifact(action).getRelated(
+ AtsRelationTypes.ActionToWorkflow_WorkFlow)) {
+ teams.add(AtsServerImpl.get().getWorkItemFactory().getTeamWf(art));
+ }
+ return teams;
+ }
+
+ @Override
+ public IStateToken getCurrentState(IAtsWorkItem workItem) throws OseeCoreException {
+ return new SimpleTeamState(getCurrentStateName(workItem), StateType.valueOf(AtsServerImpl.get().getArtifact(
+ workItem).getSoleAttributeValue(AtsAttributeTypes.CurrentStateType, "")));
+ }
+
+ @Override
+ public Collection<IAtsTask> getTasks(IAtsTeamWorkflow teamWf, IStateToken state) throws OseeCoreException {
+ final List<IAtsTask> tasks = new ArrayList<IAtsTask>();
+ for (ArtifactReadable art : AtsServerImpl.get().getArtifact(teamWf).getRelated(AtsRelationTypes.TeamWfToTask_Task)) {
+ String relatedState = art.getSoleAttributeValue(AtsAttributeTypes.RelatedToState, "");
+ if (state.getName().equals(relatedState)) {
+ tasks.add(AtsServerImpl.get().getWorkItemFactory().getTask(art));
+ }
+ }
+ return tasks;
+ }
+
+ @Override
+ public Collection<IAtsAbstractReview> getReviews(IAtsTeamWorkflow teamWf) throws OseeCoreException {
+ final List<IAtsAbstractReview> reviews = new ArrayList<IAtsAbstractReview>();
+ for (ArtifactReadable art : AtsServerImpl.get().getArtifact(teamWf).getRelated(
+ AtsRelationTypes.TeamWorkflowToReview_Review)) {
+ reviews.add(AtsServerImpl.get().getWorkItemFactory().getReview(art));
+ }
+ return reviews;
+ }
+
+ @Override
+ public Collection<IAtsAbstractReview> getReviews(IAtsTeamWorkflow teamWf, IStateToken state) throws OseeCoreException {
+ final List<IAtsAbstractReview> reviews = new ArrayList<IAtsAbstractReview>();
+ for (ArtifactReadable art : AtsServerImpl.get().getArtifact(teamWf).getRelated(
+ AtsRelationTypes.TeamWorkflowToReview_Review)) {
+ String relatedState = art.getSoleAttributeValue(AtsAttributeTypes.RelatedToState, "");
+ if (state.getName().equals(relatedState)) {
+ reviews.add(AtsServerImpl.get().getWorkItemFactory().getReview(art));
+ }
+ }
+ return reviews;
+ }
+
+ @Override
+ public Collection<IAtsTask> getTasks(IAtsTeamWorkflow teamWf) throws OseeCoreException {
+ final List<IAtsTask> tasks = new ArrayList<IAtsTask>();
+ for (ArtifactReadable art : AtsServerImpl.get().getArtifact(teamWf).getRelated(AtsRelationTypes.TeamWfToTask_Task)) {
+ tasks.add(AtsServerImpl.get().getWorkItemFactory().getTask(art));
+ }
+ return tasks;
+ }
+
+ @Override
+ public IAtsTeamWorkflow getFirstTeam(IAtsAction action) throws OseeCoreException {
+ IAtsTeamWorkflow team = null;
+ Collection<IAtsTeamWorkflow> teams = getTeams(action);
+ if (!teams.isEmpty()) {
+ team = teams.iterator().next();
+ }
+ return team;
+ }
+
+ @Override
+ public String getCurrentStateName(IAtsWorkItem workItem) throws OseeCoreException {
+ return artifactProvider.getArtifact(workItem).getSoleAttributeValue(AtsAttributeTypes.CurrentState, "").replaceAll(
+ ";.*$", "");
+ }
+
+ @Override
+ public void clearImplementersCache(IAtsWorkItem workItem) {
+ // do nothing; no cache on server
+ }
+
+ @Override
+ public Collection<WidgetResult> validateWidgetTransition(IAtsWorkItem workItem, IAtsStateDefinition toStateDef) {
+ return Collections.emptyList();
+ }
+
+ @Override
+ public Collection<IAtsTask> getTaskArtifacts(IAtsWorkItem workItem) throws OseeCoreException {
+ if (workItem.isTeamWorkflow()) {
+ return getTasks((IAtsTeamWorkflow) workItem);
+ }
+ return java.util.Collections.emptyList();
+ }
+
+ @Override
+ public Collection<ITransitionListener> getTransitionListeners() {
+ return Collections.emptyList();
+ }
+
+ @Override
+ public String getTargetedVersionStr(IAtsTeamWorkflow teamWf) {
+ String version = "";
+ try {
+ ArtifactReadable art =
+ artifactProvider.getArtifact(teamWf).getRelated(AtsRelationTypes.TeamWorkflowTargetedForVersion_Version).getOneOrNull();
+ if (art != null) {
+ version = art.getName();
+ }
+ } catch (OseeCoreException ex) {
+ version = "exception: " + ex;
+ }
+ return version;
+ }
+
+}

Back to the top