diff options
author | donald.g.dunne | 2013-10-09 18:02:40 +0000 |
---|---|---|
committer | Ryan T. Baldwin | 2013-10-09 18:02:40 +0000 |
commit | 11b40aaa606d41e45d7cf0766c3e5e02aac86ffd (patch) | |
tree | 0b7429f00b355e46431336f2fd537c0e7766e80e /plugins/org.eclipse.osee.ats.core.client/src | |
parent | ee917348041a5203fe958f75b28c2ecd08cd3296 (diff) | |
download | org.eclipse.osee-11b40aaa606d41e45d7cf0766c3e5e02aac86ffd.tar.gz org.eclipse.osee-11b40aaa606d41e45d7cf0766c3e5e02aac86ffd.tar.xz org.eclipse.osee-11b40aaa606d41e45d7cf0766c3e5e02aac86ffd.zip |
feature[ats_S5JDQ]: Move WorkflowManagerCore to ats.core
Change-Id: I35580e3e674592ef719a4dcc7a78ee5f06d5ca37
Diffstat (limited to 'plugins/org.eclipse.osee.ats.core.client/src')
6 files changed, 60 insertions, 120 deletions
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 6067cbd3eb2..6355cc39b89 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 @@ -54,6 +54,7 @@ import org.eclipse.osee.ats.core.client.internal.workdef.AtsWorkDefinitionCacheP import org.eclipse.osee.ats.core.client.search.AtsArtifactQuery; import org.eclipse.osee.ats.core.client.internal.workdef.AtsWorkItemArtifactProviderImpl; import org.eclipse.osee.ats.core.client.internal.workflow.AtsWorkItemServiceImpl; +import org.eclipse.osee.ats.core.client.search.AtsArtifactQuery; import org.eclipse.osee.ats.core.client.team.ITeamWorkflowProviders; import org.eclipse.osee.ats.core.client.team.TeamWorkFlowManager; import org.eclipse.osee.ats.core.config.IActionableItemFactory; diff --git a/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/internal/user/AtsUserServiceImpl.java b/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/internal/user/AtsUserServiceImpl.java index 3349668fa5b..9d0a4bf1109 100644 --- a/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/internal/user/AtsUserServiceImpl.java +++ b/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/internal/user/AtsUserServiceImpl.java @@ -13,8 +13,11 @@ package org.eclipse.osee.ats.core.client.internal.user; import java.util.Collection; import java.util.LinkedList; import java.util.List; +import org.eclipse.osee.ats.api.IAtsWorkItem; import org.eclipse.osee.ats.api.user.IAtsUser; import org.eclipse.osee.ats.api.user.IAtsUserService; +import org.eclipse.osee.ats.core.client.internal.AtsClientService; +import org.eclipse.osee.ats.core.client.util.AtsUtilCore; import org.eclipse.osee.ats.core.users.AtsCoreUsers; import org.eclipse.osee.framework.core.exception.OseeCoreException; import org.eclipse.osee.framework.skynet.core.User; @@ -90,4 +93,14 @@ public class AtsUserServiceImpl implements IAtsUserService { return userId; } + @Override + public boolean isAtsAdmin() { + return AtsUtilCore.isAtsAdmin(); + } + + @Override + public boolean isAssigneeMe(IAtsWorkItem workItem) throws OseeCoreException { + return workItem.getStateMgr().getAssignees().contains(AtsClientService.get().getUserAdmin().getCurrentUser()); + } + } 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 abcf8d83e18..b252d835c64 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 @@ -11,6 +11,7 @@ package org.eclipse.osee.ats.core.client.internal.workflow; import java.util.Collection; +import java.util.logging.Level; import org.eclipse.osee.ats.api.IAtsObject; import org.eclipse.osee.ats.api.IAtsWorkItem; import org.eclipse.osee.ats.api.review.IAtsAbstractReview; @@ -20,17 +21,22 @@ 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.core.client.internal.Activator; +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.workflow.AbstractWorkflowArtifact; import org.eclipse.osee.ats.core.client.workflow.AtsWorkData; +import org.eclipse.osee.framework.access.AccessControlManager; import org.eclipse.osee.framework.core.data.IArtifactType; import org.eclipse.osee.framework.core.data.IAttributeType; +import org.eclipse.osee.framework.core.enums.PermissionEnum; import org.eclipse.osee.framework.core.exception.OseeArgumentException; import org.eclipse.osee.framework.core.exception.OseeCoreException; import org.eclipse.osee.framework.core.util.Conditions; import org.eclipse.osee.framework.jdk.core.util.Collections; +import org.eclipse.osee.framework.logging.OseeLog; import org.eclipse.osee.framework.skynet.core.artifact.Artifact; import org.eclipse.osee.framework.skynet.core.attribute.AttributeTypeManager; @@ -156,4 +162,28 @@ public class AtsWorkItemServiceImpl implements IAtsWorkItemService { return workItemArtifactProvider; } + @Override + public boolean isReadOnly(IAtsWorkItem workItem) { + boolean readOnly = true; + try { + Artifact artifact = AtsClientService.get().getArtifact(workItem); + readOnly = artifact.isReadOnly(); + } catch (OseeCoreException ex) { + OseeLog.log(Activator.class, Level.SEVERE, ex); + } + return readOnly; + } + + @Override + public boolean isAccessControlWrite(IAtsWorkItem workItem) { + boolean isWrite = false; + try { + Artifact artifact = AtsClientService.get().getArtifact(workItem); + isWrite = AccessControlManager.hasPermission(artifact, PermissionEnum.WRITE); + } catch (OseeCoreException ex) { + OseeLog.log(Activator.class, Level.SEVERE, ex); + } + return isWrite; + } + } diff --git a/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/util/WorkflowManagerCore.java b/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/util/WorkflowManagerCore.java deleted file mode 100644 index 055afd91dba..00000000000 --- a/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/util/WorkflowManagerCore.java +++ /dev/null @@ -1,116 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2011 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.client.util; - -import java.util.Collection; -import org.eclipse.osee.ats.api.data.AtsArtifactTypes; -import org.eclipse.osee.ats.api.data.AtsAttributeTypes; -import org.eclipse.osee.ats.api.data.AtsRelationTypes; -import org.eclipse.osee.ats.api.workdef.IAtsStateDefinition; -import org.eclipse.osee.ats.api.workdef.RuleDefinitionOption; -import org.eclipse.osee.ats.api.workflow.state.IAtsStateManager; -import org.eclipse.osee.ats.core.client.task.TaskArtifact; -import org.eclipse.osee.ats.core.client.workflow.AbstractWorkflowArtifact; -import org.eclipse.osee.framework.core.exception.OseeCoreException; -import org.eclipse.osee.framework.core.exception.OseeStateException; -import org.eclipse.osee.framework.skynet.core.artifact.Artifact; -import org.eclipse.osee.framework.skynet.core.artifact.BranchManager; -import org.eclipse.osee.framework.skynet.core.artifact.search.ArtifactQuery; - -/** - * @author Donald G. Dunne - */ -public class WorkflowManagerCore { - - public static IAtsStateManager getStateManager(Artifact artifact) { - return cast(artifact).getStateMgr(); - } - - public static AbstractWorkflowArtifact cast(Artifact artifact) { - if (artifact instanceof AbstractWorkflowArtifact) { - return (AbstractWorkflowArtifact) artifact; - } - return null; - } - - public static boolean isEditable(AbstractWorkflowArtifact sma, IAtsStateDefinition stateDef, boolean privilegedEditEnabled) throws OseeCoreException { - // must be writeable - return !sma.isReadOnly() && - // and access control writeable - sma.isAccessControlWrite() && - // and current state - (stateDef == null || sma.isInState(stateDef)) && - // and one of these - // - // page is define to allow anyone to edit - (sma.getStateDefinition().hasRule(RuleDefinitionOption.AllowEditToAll.name()) || - // team definition has allowed anyone to edit - sma.teamDefHasRule(RuleDefinitionOption.AllowEditToAll) || - // privileged edit mode is on - privilegedEditEnabled || - // current user is assigned - sma.isAssigneeMe() || - // current user is ats admin - AtsUtilCore.isAtsAdmin()); - } - - /** - * Return parent AWA. Note: Use WorkItemUtil.getParentTeamWorkflow instead. - */ - public static AbstractWorkflowArtifact getParentAWA(Artifact artifact) throws OseeCoreException { - if (artifact.isOfType(AtsArtifactTypes.Task)) { - TaskArtifact ta = (TaskArtifact) artifact; - Collection<Artifact> awas = artifact.getRelatedArtifacts(AtsRelationTypes.TeamWfToTask_TeamWf); - if (awas.isEmpty()) { - throw new OseeStateException("Task has no parent [%s]", ta.getAtsId()); - } - return (AbstractWorkflowArtifact) awas.iterator().next(); - } else if (artifact.isOfType(AtsArtifactTypes.ReviewArtifact)) { - Collection<Artifact> awas = artifact.getRelatedArtifacts(AtsRelationTypes.TeamWorkflowToReview_Team); - if (!awas.isEmpty()) { - return (AbstractWorkflowArtifact) awas.iterator().next(); - } - } - return null; - } - - public static Artifact getTeamDefinition(Artifact artifact) throws OseeCoreException { - Artifact team = getParentTeamWorkflow(artifact); - if (team != null) { - String teamDefGuid = team.getSoleAttributeValue(AtsAttributeTypes.TeamDefinition); - return ArtifactQuery.getArtifactFromId(teamDefGuid, BranchManager.getCommonBranch()); - } - return null; - } - - public static Artifact getParentActionArtifact(Artifact artifact) throws OseeCoreException { - Artifact team = getParentTeamWorkflow(artifact); - if (team != null) { - return artifact.getRelatedArtifact(AtsRelationTypes.ActionToWorkflow_Action); - } - return null; - } - - /** - * Return parent team workflow artifact. Note: Preferred use of WorkItemUtil.getParentTeamWorkflow - */ - public static Artifact getParentTeamWorkflow(Artifact artifact) throws OseeCoreException { - if (artifact.isOfType(AtsArtifactTypes.TeamWorkflow)) { - return artifact; - } else if (artifact.isOfType(AtsArtifactTypes.Task)) { - return getParentAWA(artifact); - } else if (artifact.isOfType(AtsArtifactTypes.ReviewArtifact)) { - return getParentAWA(artifact); - } - return null; - } - -} diff --git a/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/workflow/PercentCompleteSMAStateUtil.java b/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/workflow/PercentCompleteSMAStateUtil.java index cd2522657be..28261612dfe 100644 --- a/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/workflow/PercentCompleteSMAStateUtil.java +++ b/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/workflow/PercentCompleteSMAStateUtil.java @@ -12,9 +12,9 @@ package org.eclipse.osee.ats.core.client.workflow; import org.eclipse.osee.ats.api.data.AtsArtifactTypes; import org.eclipse.osee.ats.api.workdef.IStateToken; +import org.eclipse.osee.ats.api.workflow.state.IAtsStateManager; import org.eclipse.osee.ats.core.client.action.ActionManager; import org.eclipse.osee.ats.core.client.team.TeamWorkFlowArtifact; -import org.eclipse.osee.ats.core.client.util.WorkflowManagerCore; import org.eclipse.osee.framework.core.exception.OseeCoreException; import org.eclipse.osee.framework.skynet.core.artifact.Artifact; @@ -47,7 +47,7 @@ public class PercentCompleteSMAStateUtil { return 0; } if (artifact.isOfType(AtsArtifactTypes.AbstractWorkflowArtifact)) { - return getPercentCompleteSMAState(artifact, WorkflowManagerCore.getStateManager(artifact).getCurrentState()); + return getPercentCompleteSMAState(artifact, getStateManager(artifact).getCurrentState()); } return 0; } @@ -57,9 +57,21 @@ public class PercentCompleteSMAStateUtil { */ public static int getPercentCompleteSMAState(Artifact artifact, IStateToken state) throws OseeCoreException { if (artifact.isOfType(AtsArtifactTypes.AbstractWorkflowArtifact)) { - return WorkflowManagerCore.getStateManager(artifact).getPercentComplete(state.getName()); + return getStateManager(artifact).getPercentComplete(state.getName()); } return 0; } + private static IAtsStateManager getStateManager(Artifact artifact) { + return cast(artifact).getStateMgr(); + } + + private static AbstractWorkflowArtifact cast(Artifact artifact) { + AbstractWorkflowArtifact art = null; + if (artifact instanceof AbstractWorkflowArtifact) { + art = (AbstractWorkflowArtifact) artifact; + } + return art; + } + } diff --git a/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/workflow/transition/TransitionManager.java b/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/workflow/transition/TransitionManager.java index 45e86f9891f..bb70235a886 100644 --- a/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/workflow/transition/TransitionManager.java +++ b/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/workflow/transition/TransitionManager.java @@ -37,11 +37,11 @@ import org.eclipse.osee.ats.core.client.task.AbstractTaskableArtifact; import org.eclipse.osee.ats.core.client.task.TaskArtifact; import org.eclipse.osee.ats.core.client.team.TeamWorkFlowArtifact; import org.eclipse.osee.ats.core.client.util.AtsUtilCore; -import org.eclipse.osee.ats.core.client.util.WorkflowManagerCore; import org.eclipse.osee.ats.core.client.validator.AtsXWidgetValidateManagerClient; import org.eclipse.osee.ats.core.client.workflow.AbstractWorkflowArtifact; import org.eclipse.osee.ats.core.config.AtsVersionService; import org.eclipse.osee.ats.core.users.AtsCoreUsers; +import org.eclipse.osee.ats.core.workflow.WorkflowManagerCore; import org.eclipse.osee.ats.core.workflow.state.TeamState; import org.eclipse.osee.ats.core.workflow.transition.TransitionResult; import org.eclipse.osee.framework.core.exception.OseeCoreException; |