Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/artifact/TaskableStateMachineArtifact.java')
-rw-r--r--plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/artifact/TaskableStateMachineArtifact.java680
1 files changed, 340 insertions, 340 deletions
diff --git a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/artifact/TaskableStateMachineArtifact.java b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/artifact/TaskableStateMachineArtifact.java
index 73310d05b99..533f4179e2a 100644
--- a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/artifact/TaskableStateMachineArtifact.java
+++ b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/artifact/TaskableStateMachineArtifact.java
@@ -1,343 +1,343 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2007 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.artifact;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Date;
-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.artifact.ATSLog.LogType;
-import org.eclipse.osee.ats.artifact.TaskArtifact.TaskStates;
-import org.eclipse.osee.ats.config.AtsCacheManager;
-import org.eclipse.osee.ats.internal.AtsPlugin;
-import org.eclipse.osee.ats.util.AtsArtifactTypes;
-import org.eclipse.osee.ats.util.AtsRelationTypes;
-import org.eclipse.osee.ats.util.AtsUtil;
-import org.eclipse.osee.framework.core.exception.OseeCoreException;
-import org.eclipse.osee.framework.core.exception.OseeDataStoreException;
-import org.eclipse.osee.framework.core.model.Branch;
-import org.eclipse.osee.framework.core.model.type.ArtifactType;
-import org.eclipse.osee.framework.logging.OseeLevel;
-import org.eclipse.osee.framework.logging.OseeLog;
-import org.eclipse.osee.framework.skynet.core.User;
-import org.eclipse.osee.framework.skynet.core.UserManager;
-import org.eclipse.osee.framework.skynet.core.artifact.Artifact;
-import org.eclipse.osee.framework.skynet.core.artifact.ArtifactFactory;
-import org.eclipse.osee.framework.skynet.core.artifact.ArtifactTypeManager;
-import org.eclipse.osee.framework.skynet.core.transaction.SkynetTransaction;
-import org.eclipse.osee.framework.ui.plugin.util.Result;
-import org.eclipse.osee.framework.ui.skynet.widgets.workflow.WorkPageDefinition;
-
-/**
- * @author Donald G. Dunne
- */
-public abstract class TaskableStateMachineArtifact extends StateMachineArtifact {
-
- public TaskableStateMachineArtifact(ArtifactFactory parentFactory, String guid, String humanReadableId, Branch branch, ArtifactType artifactType) throws OseeDataStoreException {
- super(parentFactory, guid, humanReadableId, branch, artifactType);
- registerAtsWorldRelation(AtsRelationTypes.SmaToTask_Task);
- }
-
- @SuppressWarnings("unused")
- @Override
- public Set<User> getPrivilegedUsers() throws OseeCoreException {
- return null;
- }
-
- @Override
- public void getSmaArtifactsOneLevel(StateMachineArtifact smaArtifact, Set<Artifact> artifacts) throws OseeCoreException {
- super.getSmaArtifactsOneLevel(smaArtifact, artifacts);
- artifacts.addAll(getTaskArtifacts());
- }
-
- @SuppressWarnings("unused")
- @Override
- public Date getWorldViewReleaseDate() throws OseeCoreException {
- return null;
- }
-
- @Override
- public String getHyperTargetVersion() {
- return null;
- }
-
- @SuppressWarnings("unused")
- @Override
- public String getWorldViewParentID() throws OseeCoreException {
- return null;
- }
-
- @Override
- public VersionArtifact getWorldViewTargetedVersion() throws OseeCoreException {
- TeamWorkFlowArtifact teamArt = getParentTeamWorkflow();
- if (teamArt == null) {
- return null;
- }
- return teamArt.getWorldViewTargetedVersion();
- }
-
- @Override
- public boolean showTaskTab() throws OseeCoreException {
- return isTaskable() || isCompleted() || isCancelled();
- }
-
- @Override
- public void atsDelete(Set<Artifact> deleteArts, Map<Artifact, Object> allRelated) throws OseeCoreException {
- super.atsDelete(deleteArts, allRelated);
- for (TaskArtifact taskArt : getTaskArtifacts()) {
- taskArt.atsDelete(deleteArts, allRelated);
- }
- }
-
- @Override
- public void transitioned(WorkPageDefinition fromPage, WorkPageDefinition toPage, Collection<User> toAssignees, boolean persist, SkynetTransaction transaction) throws OseeCoreException {
- super.transitioned(fromPage, toPage, toAssignees, persist, transaction);
- for (TaskArtifact taskArt : getTaskArtifacts()) {
- taskArt.parentWorkFlowTransitioned(fromPage, toPage, toAssignees, persist, transaction);
- }
- }
-
- @Override
- public String getWorldViewNumberOfTasksRemaining() throws OseeCoreException {
- if (getTaskArtifacts().isEmpty()) {
- return "";
- }
- return String.valueOf(getNumTasksInWork());
- }
-
- public String getStatus(String stateName) throws OseeCoreException {
- int completed = 0, cancelled = 0, inWork = 0;
- for (TaskArtifact taskArt : getTaskArtifacts(stateName)) {
- if (taskArt.isCompleted()) {
- completed++;
- } else if (taskArt.isCancelled()) {
- cancelled++;
- } else {
- inWork++;
- }
- }
- return String.format("Total: %d - InWork: %d - Completed: %d - Cancelled: %d",
- getTaskArtifacts(stateName).size(), inWork, completed, cancelled);
- }
-
- public Collection<TaskArtifact> getTaskArtifacts() throws OseeCoreException {
- return AtsCacheManager.getTaskArtifacts(this);
- }
-
- public Collection<TaskArtifact> getTaskArtifactsSorted() throws OseeCoreException {
- return AtsCacheManager.getTaskArtifacts(this);
- }
-
- public Collection<TaskArtifact> getTaskArtifactsFromCurrentState() throws OseeCoreException {
- return getTaskArtifacts(getStateMgr().getCurrentStateName());
- }
-
- public Collection<TaskArtifact> getTaskArtifacts(String stateName) throws OseeCoreException {
- List<TaskArtifact> arts = new ArrayList<TaskArtifact>();
- for (TaskArtifact taskArt : getTaskArtifacts()) {
+/*******************************************************************************
+ * Copyright (c) 2004, 2007 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.artifact;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Date;
+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.artifact.ATSLog.LogType;
+import org.eclipse.osee.ats.artifact.TaskArtifact.TaskStates;
+import org.eclipse.osee.ats.config.AtsCacheManager;
+import org.eclipse.osee.ats.internal.AtsPlugin;
+import org.eclipse.osee.ats.util.AtsArtifactTypes;
+import org.eclipse.osee.ats.util.AtsRelationTypes;
+import org.eclipse.osee.ats.util.AtsUtil;
+import org.eclipse.osee.framework.core.exception.OseeCoreException;
+import org.eclipse.osee.framework.core.exception.OseeDataStoreException;
+import org.eclipse.osee.framework.core.model.Branch;
+import org.eclipse.osee.framework.core.model.type.ArtifactType;
+import org.eclipse.osee.framework.logging.OseeLevel;
+import org.eclipse.osee.framework.logging.OseeLog;
+import org.eclipse.osee.framework.skynet.core.User;
+import org.eclipse.osee.framework.skynet.core.UserManager;
+import org.eclipse.osee.framework.skynet.core.artifact.Artifact;
+import org.eclipse.osee.framework.skynet.core.artifact.ArtifactFactory;
+import org.eclipse.osee.framework.skynet.core.artifact.ArtifactTypeManager;
+import org.eclipse.osee.framework.skynet.core.transaction.SkynetTransaction;
+import org.eclipse.osee.framework.ui.plugin.util.Result;
+import org.eclipse.osee.framework.ui.skynet.widgets.workflow.WorkPageDefinition;
+
+/**
+ * @author Donald G. Dunne
+ */
+public abstract class TaskableStateMachineArtifact extends StateMachineArtifact {
+
+ public TaskableStateMachineArtifact(ArtifactFactory parentFactory, String guid, String humanReadableId, Branch branch, ArtifactType artifactType) throws OseeDataStoreException {
+ super(parentFactory, guid, humanReadableId, branch, artifactType);
+ registerAtsWorldRelation(AtsRelationTypes.SmaToTask_Task);
+ }
+
+ @SuppressWarnings("unused")
+ @Override
+ public Set<User> getPrivilegedUsers() throws OseeCoreException {
+ return null;
+ }
+
+ @Override
+ public void getSmaArtifactsOneLevel(StateMachineArtifact smaArtifact, Set<Artifact> artifacts) throws OseeCoreException {
+ super.getSmaArtifactsOneLevel(smaArtifact, artifacts);
+ artifacts.addAll(getTaskArtifacts());
+ }
+
+ @SuppressWarnings("unused")
+ @Override
+ public Date getWorldViewReleaseDate() throws OseeCoreException {
+ return null;
+ }
+
+ @Override
+ public String getHyperTargetVersion() {
+ return null;
+ }
+
+ @SuppressWarnings("unused")
+ @Override
+ public String getWorldViewParentID() throws OseeCoreException {
+ return null;
+ }
+
+ @Override
+ public VersionArtifact getWorldViewTargetedVersion() throws OseeCoreException {
+ TeamWorkFlowArtifact teamArt = getParentTeamWorkflow();
+ if (teamArt == null) {
+ return null;
+ }
+ return teamArt.getWorldViewTargetedVersion();
+ }
+
+ @Override
+ public boolean showTaskTab() throws OseeCoreException {
+ return isTaskable() || isCompleted() || isCancelled();
+ }
+
+ @Override
+ public void atsDelete(Set<Artifact> deleteArts, Map<Artifact, Object> allRelated) throws OseeCoreException {
+ super.atsDelete(deleteArts, allRelated);
+ for (TaskArtifact taskArt : getTaskArtifacts()) {
+ taskArt.atsDelete(deleteArts, allRelated);
+ }
+ }
+
+ @Override
+ public void transitioned(WorkPageDefinition fromPage, WorkPageDefinition toPage, Collection<User> toAssignees, boolean persist, SkynetTransaction transaction) throws OseeCoreException {
+ super.transitioned(fromPage, toPage, toAssignees, persist, transaction);
+ for (TaskArtifact taskArt : getTaskArtifacts()) {
+ taskArt.parentWorkFlowTransitioned(fromPage, toPage, toAssignees, persist, transaction);
+ }
+ }
+
+ @Override
+ public String getWorldViewNumberOfTasksRemaining() throws OseeCoreException {
+ if (getTaskArtifacts().isEmpty()) {
+ return "";
+ }
+ return String.valueOf(getNumTasksInWork());
+ }
+
+ public String getStatus(String stateName) throws OseeCoreException {
+ int completed = 0, cancelled = 0, inWork = 0;
+ for (TaskArtifact taskArt : getTaskArtifacts(stateName)) {
+ if (taskArt.isCompleted()) {
+ completed++;
+ } else if (taskArt.isCancelled()) {
+ cancelled++;
+ } else {
+ inWork++;
+ }
+ }
+ return String.format("Total: %d - InWork: %d - Completed: %d - Cancelled: %d",
+ getTaskArtifacts(stateName).size(), inWork, completed, cancelled);
+ }
+
+ public Collection<TaskArtifact> getTaskArtifacts() throws OseeCoreException {
+ return AtsCacheManager.getTaskArtifacts(this);
+ }
+
+ public Collection<TaskArtifact> getTaskArtifactsSorted() throws OseeCoreException {
+ return AtsCacheManager.getTaskArtifacts(this);
+ }
+
+ public Collection<TaskArtifact> getTaskArtifactsFromCurrentState() throws OseeCoreException {
+ return getTaskArtifacts(getStateMgr().getCurrentStateName());
+ }
+
+ public Collection<TaskArtifact> getTaskArtifacts(String stateName) throws OseeCoreException {
+ List<TaskArtifact> arts = new ArrayList<TaskArtifact>();
+ for (TaskArtifact taskArt : getTaskArtifacts()) {
if (taskArt.getSoleAttributeValue(AtsAttributeTypes.RelatedToState, "").equals(stateName)) {
- arts.add(taskArt);
- }
- }
- return arts;
- }
-
- public boolean hasTaskArtifacts() {
- try {
- return getRelatedArtifactsCount(AtsRelationTypes.SmaToTask_Task) > 0;
- } catch (OseeCoreException ex) {
- OseeLog.log(AtsPlugin.class, OseeLevel.SEVERE_POPUP, ex);
- return false;
- }
- }
-
- public TaskArtifact createNewTask(String title) throws OseeCoreException {
- return createNewTask(Arrays.asList(UserManager.getUser()), title);
- }
-
- public TaskArtifact createNewTask(User assignee, String title) throws OseeCoreException {
- return createNewTask(Arrays.asList(assignee), title);
- }
-
- public TaskArtifact createNewTask(Collection<User> assignees, String title) throws OseeCoreException {
- TaskArtifact taskArt = null;
- taskArt = (TaskArtifact) ArtifactTypeManager.addArtifact(AtsArtifactTypes.Task, AtsUtil.getAtsBranch(), title);
- taskArt.getLog().addLog(LogType.Originated, "", "");
-
- // Initialize state machine
- taskArt.getStateMgr().initializeStateMachine(TaskStates.InWork.name(), assignees);
- taskArt.getLog().addLog(LogType.StateEntered, "InWork", "");
-
- // Set parent state task is related to
+ arts.add(taskArt);
+ }
+ }
+ return arts;
+ }
+
+ public boolean hasTaskArtifacts() {
+ try {
+ return getRelatedArtifactsCount(AtsRelationTypes.SmaToTask_Task) > 0;
+ } catch (OseeCoreException ex) {
+ OseeLog.log(AtsPlugin.class, OseeLevel.SEVERE_POPUP, ex);
+ return false;
+ }
+ }
+
+ public TaskArtifact createNewTask(String title) throws OseeCoreException {
+ return createNewTask(Arrays.asList(UserManager.getUser()), title);
+ }
+
+ public TaskArtifact createNewTask(User assignee, String title) throws OseeCoreException {
+ return createNewTask(Arrays.asList(assignee), title);
+ }
+
+ public TaskArtifact createNewTask(Collection<User> assignees, String title) throws OseeCoreException {
+ TaskArtifact taskArt = null;
+ taskArt = (TaskArtifact) ArtifactTypeManager.addArtifact(AtsArtifactTypes.Task, AtsUtil.getAtsBranch(), title);
+ taskArt.getLog().addLog(LogType.Originated, "", "");
+
+ // Initialize state machine
+ taskArt.getStateMgr().initializeStateMachine(TaskStates.InWork.name(), assignees);
+ taskArt.getLog().addLog(LogType.StateEntered, "InWork", "");
+
+ // Set parent state task is related to
taskArt.setSoleAttributeValue(AtsAttributeTypes.RelatedToState, getStateMgr().getCurrentStateName());
-
- addRelation(AtsRelationTypes.SmaToTask_Task, taskArt);
-
- return taskArt;
- }
-
- public Result areTasksComplete() {
- try {
- for (TaskArtifact taskArt : getTaskArtifacts()) {
- if (taskArt.isInWork()) {
- return new Result(false, "Task " + taskArt.getGuid() + " Not Complete");
- }
- }
- } catch (Exception ex) {
- OseeLog.log(AtsPlugin.class, Level.SEVERE, ex);
- return new Result(false, "Exception " + ex.getLocalizedMessage());
- }
- return Result.TrueResult;
- }
-
- public Result areTasksComplete(String stateName) {
- try {
- for (TaskArtifact taskArt : getTaskArtifacts(stateName)) {
- if (taskArt.isInWork()) {
- return new Result(false, "Task " + taskArt.getGuid() + " Not Complete");
- }
- }
- } catch (Exception ex) {
- OseeLog.log(AtsPlugin.class, Level.SEVERE, ex);
- return new Result(false, "Exception " + ex.getLocalizedMessage());
- }
- return Result.TrueResult;
- }
-
- public int getNumTasksInWork() {
- int num = 0;
- try {
- for (TaskArtifact taskArt : getTaskArtifacts()) {
- if (taskArt.isInWork()) {
- num++;
- }
- }
- } catch (Exception ex) {
- OseeLog.log(AtsPlugin.class, Level.SEVERE, ex);
- }
- return num;
- }
-
- /**
- * Return Estimated Task Hours of "Related to State" stateName
- *
- * @param relatedToStateName state name of parent workflow's state
- * @return Returns the Estimated Hours
- */
- @Override
- public double getEstimatedHoursFromTasks(String relatedToStateName) throws OseeCoreException {
- double hours = 0;
- for (TaskArtifact taskArt : getTaskArtifacts(relatedToStateName)) {
- hours += taskArt.getEstimatedHoursTotal();
- }
- return hours;
- }
-
- /**
- * Return Estimated Hours for all tasks
- *
- * @return hours
- * @throws Exception
- */
- @Override
- public double getEstimatedHoursFromTasks() throws OseeCoreException {
- double hours = 0;
- for (TaskArtifact taskArt : getTaskArtifacts()) {
- hours += taskArt.getEstimatedHoursFromArtifact();
- }
- return hours;
-
- }
-
- /**
- * Return Remain Task Hours of "Related to State" stateName
- *
- * @param relatedToStateName state name of parent workflow's state
- * @return Returns the Remain Hours
- */
- public double getRemainHoursFromTasks(String relatedToStateName) throws OseeCoreException {
- double hours = 0;
- for (TaskArtifact taskArt : getTaskArtifacts(relatedToStateName)) {
- hours += taskArt.getRemainHoursFromArtifact();
- }
- return hours;
- }
-
- /**
- * Return Remain Hours for all tasks
- *
- * @return hours
- * @throws Exception
- */
- public double getRemainHoursFromTasks() throws OseeCoreException {
- double hours = 0;
- for (TaskArtifact taskArt : getTaskArtifacts()) {
- hours += taskArt.getRemainHoursFromArtifact();
- }
- return hours;
-
- }
-
- /**
- * Return Hours Spent for Tasks of "Related to State" stateName
- *
- * @param relatedToStateName state name of parent workflow's state
- * @return Returns the Hours Spent
- */
- public double getHoursSpentFromTasks(String relatedToStateName) throws OseeCoreException {
- double spent = 0;
- for (TaskArtifact taskArt : getTaskArtifacts(relatedToStateName)) {
- spent += taskArt.getHoursSpentSMATotal();
- }
- return spent;
- }
-
- /**
- * Return Total Percent Complete / # Tasks for "Related to State" stateName
- *
- * @param relatedToStateName state name of parent workflow's state
- * @return Returns the Percent Complete.
- */
- public int getPercentCompleteFromTasks(String relatedToStateName) throws OseeCoreException {
- int spent = 0;
- Collection<TaskArtifact> taskArts = getTaskArtifacts(relatedToStateName);
- for (TaskArtifact taskArt : taskArts) {
- spent += taskArt.getPercentCompleteSMATotal();
- }
- if (spent == 0) {
- return 0;
- }
- return spent / taskArts.size();
- }
-
- public Collection<TaskArtifact> createTasks(List<String> titles, List<User> assignees, SkynetTransaction transaction) throws OseeCoreException {
- List<TaskArtifact> tasks = new ArrayList<TaskArtifact>();
- for (String title : titles) {
- TaskArtifact taskArt = createNewTask(title);
- if (assignees != null && assignees.size() > 0) {
- Set<User> users = new HashSet<User>();
- for (User art : assignees) {
- users.add(art);
- }
- taskArt.getStateMgr().setAssignees(users);
- }
- tasks.add(taskArt);
- taskArt.persist(transaction);
- }
- return tasks;
- }
-
+
+ addRelation(AtsRelationTypes.SmaToTask_Task, taskArt);
+
+ return taskArt;
+ }
+
+ public Result areTasksComplete() {
+ try {
+ for (TaskArtifact taskArt : getTaskArtifacts()) {
+ if (taskArt.isInWork()) {
+ return new Result(false, "Task " + taskArt.getGuid() + " Not Complete");
+ }
+ }
+ } catch (Exception ex) {
+ OseeLog.log(AtsPlugin.class, Level.SEVERE, ex);
+ return new Result(false, "Exception " + ex.getLocalizedMessage());
+ }
+ return Result.TrueResult;
+ }
+
+ public Result areTasksComplete(String stateName) {
+ try {
+ for (TaskArtifact taskArt : getTaskArtifacts(stateName)) {
+ if (taskArt.isInWork()) {
+ return new Result(false, "Task " + taskArt.getGuid() + " Not Complete");
+ }
+ }
+ } catch (Exception ex) {
+ OseeLog.log(AtsPlugin.class, Level.SEVERE, ex);
+ return new Result(false, "Exception " + ex.getLocalizedMessage());
+ }
+ return Result.TrueResult;
+ }
+
+ public int getNumTasksInWork() {
+ int num = 0;
+ try {
+ for (TaskArtifact taskArt : getTaskArtifacts()) {
+ if (taskArt.isInWork()) {
+ num++;
+ }
+ }
+ } catch (Exception ex) {
+ OseeLog.log(AtsPlugin.class, Level.SEVERE, ex);
+ }
+ return num;
+ }
+
+ /**
+ * Return Estimated Task Hours of "Related to State" stateName
+ *
+ * @param relatedToStateName state name of parent workflow's state
+ * @return Returns the Estimated Hours
+ */
+ @Override
+ public double getEstimatedHoursFromTasks(String relatedToStateName) throws OseeCoreException {
+ double hours = 0;
+ for (TaskArtifact taskArt : getTaskArtifacts(relatedToStateName)) {
+ hours += taskArt.getEstimatedHoursTotal();
+ }
+ return hours;
+ }
+
+ /**
+ * Return Estimated Hours for all tasks
+ *
+ * @return hours
+ * @throws Exception
+ */
+ @Override
+ public double getEstimatedHoursFromTasks() throws OseeCoreException {
+ double hours = 0;
+ for (TaskArtifact taskArt : getTaskArtifacts()) {
+ hours += taskArt.getEstimatedHoursFromArtifact();
+ }
+ return hours;
+
+ }
+
+ /**
+ * Return Remain Task Hours of "Related to State" stateName
+ *
+ * @param relatedToStateName state name of parent workflow's state
+ * @return Returns the Remain Hours
+ */
+ public double getRemainHoursFromTasks(String relatedToStateName) throws OseeCoreException {
+ double hours = 0;
+ for (TaskArtifact taskArt : getTaskArtifacts(relatedToStateName)) {
+ hours += taskArt.getRemainHoursFromArtifact();
+ }
+ return hours;
+ }
+
+ /**
+ * Return Remain Hours for all tasks
+ *
+ * @return hours
+ * @throws Exception
+ */
+ public double getRemainHoursFromTasks() throws OseeCoreException {
+ double hours = 0;
+ for (TaskArtifact taskArt : getTaskArtifacts()) {
+ hours += taskArt.getRemainHoursFromArtifact();
+ }
+ return hours;
+
+ }
+
+ /**
+ * Return Hours Spent for Tasks of "Related to State" stateName
+ *
+ * @param relatedToStateName state name of parent workflow's state
+ * @return Returns the Hours Spent
+ */
+ public double getHoursSpentFromTasks(String relatedToStateName) throws OseeCoreException {
+ double spent = 0;
+ for (TaskArtifact taskArt : getTaskArtifacts(relatedToStateName)) {
+ spent += taskArt.getHoursSpentSMATotal();
+ }
+ return spent;
+ }
+
+ /**
+ * Return Total Percent Complete / # Tasks for "Related to State" stateName
+ *
+ * @param relatedToStateName state name of parent workflow's state
+ * @return Returns the Percent Complete.
+ */
+ public int getPercentCompleteFromTasks(String relatedToStateName) throws OseeCoreException {
+ int spent = 0;
+ Collection<TaskArtifact> taskArts = getTaskArtifacts(relatedToStateName);
+ for (TaskArtifact taskArt : taskArts) {
+ spent += taskArt.getPercentCompleteSMATotal();
+ }
+ if (spent == 0) {
+ return 0;
+ }
+ return spent / taskArts.size();
+ }
+
+ public Collection<TaskArtifact> createTasks(List<String> titles, List<User> assignees, SkynetTransaction transaction) throws OseeCoreException {
+ List<TaskArtifact> tasks = new ArrayList<TaskArtifact>();
+ for (String title : titles) {
+ TaskArtifact taskArt = createNewTask(title);
+ if (assignees != null && assignees.size() > 0) {
+ Set<User> users = new HashSet<User>();
+ for (User art : assignees) {
+ users.add(art);
+ }
+ taskArt.getStateMgr().setAssignees(users);
+ }
+ tasks.add(taskArt);
+ taskArt.persist(transaction);
+ }
+ return tasks;
+ }
+
} \ No newline at end of file

Back to the top