Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authordonald.g.dunne2013-11-14 16:47:40 +0000
committerRoberto E. Escobar2013-11-25 23:45:45 +0000
commit2df533bcff7abd33fb59b17a6ffcbcea96b259d8 (patch)
tree983a8cceb9f986d7b098e081f6644c1b33fa667a /plugins/org.eclipse.osee.ats.core.client
parent36fca032d160199d6b964ed5046015ae7fb83f99 (diff)
downloadorg.eclipse.osee-2df533bcff7abd33fb59b17a6ffcbcea96b259d8.tar.gz
org.eclipse.osee-2df533bcff7abd33fb59b17a6ffcbcea96b259d8.tar.xz
org.eclipse.osee-2df533bcff7abd33fb59b17a6ffcbcea96b259d8.zip
feature[ats_S5JDQ]: Implement ATS transition on server
Diffstat (limited to 'plugins/org.eclipse.osee.ats.core.client')
-rw-r--r--plugins/org.eclipse.osee.ats.core.client/META-INF/MANIFEST.MF1
-rw-r--r--plugins/org.eclipse.osee.ats.core.client/OSGI-INF/ats.notify.service.xml1
-rw-r--r--plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/IAtsClient.java4
-rw-r--r--plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/action/ActionArtifact.java5
-rw-r--r--plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/action/ActionManager.java5
-rw-r--r--plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/internal/AtsClientImpl.java25
-rw-r--r--plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/internal/IArtifactProvider.java (renamed from plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/internal/CacheProvider.java)13
-rw-r--r--plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/internal/config/AtsConfigCacheProvider.java2
-rw-r--r--plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/internal/notify/AtsNotificationServiceImpl.java8
-rw-r--r--plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/internal/review/AtsReviewServiceImpl.java19
-rw-r--r--plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/internal/store/AtsVersionCache.java2
-rw-r--r--plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/internal/store/AtsVersionServiceImpl.java2
-rw-r--r--plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/internal/user/AtsUser.java5
-rw-r--r--plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/internal/workdef/AtsWorkDefinitionAdminImpl.java424
-rw-r--r--plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/internal/workdef/AtsWorkDefinitionCache.java67
-rw-r--r--plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/internal/workdef/AtsWorkDefinitionCacheProvider.java3
-rw-r--r--plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/internal/workdef/AttributeWrapper.java5
-rw-r--r--plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/internal/workdef/LoadAtsWorkDefinitionCacheCallable.java1
-rw-r--r--plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/internal/workflow/AtsAttributeResolverServiceImpl.java69
-rw-r--r--plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/internal/workflow/AtsWorkItemServiceImpl.java43
-rw-r--r--plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/review/DecisionReviewDefinitionManager.java4
-rw-r--r--plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/review/DecisionReviewManager.java4
-rw-r--r--plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/review/PeerReviewDefinitionManager.java2
-rw-r--r--plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/review/role/UserRoleManager.java2
-rw-r--r--plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/task/AbstractTaskableArtifact.java11
-rw-r--r--plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/task/TaskArtifact.java30
-rw-r--r--plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/task/TaskManager.java3
-rw-r--r--plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/team/ITeamWorkflowProviders.java23
-rw-r--r--plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/team/TeamWorkFlowArtifact.java5
-rw-r--r--plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/team/TeamWorkFlowManager.java7
-rw-r--r--plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/util/AtsChangeSet.java64
-rw-r--r--plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/workflow/AbstractWorkflowArtifact.java89
-rw-r--r--plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/workflow/AtsBranchServiceImpl.java6
-rw-r--r--plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/workflow/AtsWorkData.java16
-rw-r--r--plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/workflow/ITeamWorkflowProvider.java71
-rw-r--r--plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/workflow/log/ArtifactLog.java96
-rw-r--r--plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/workflow/transition/TransitionHelperAdapter.java21
37 files changed, 290 insertions, 868 deletions
diff --git a/plugins/org.eclipse.osee.ats.core.client/META-INF/MANIFEST.MF b/plugins/org.eclipse.osee.ats.core.client/META-INF/MANIFEST.MF
index c907ea660ee..acd51966196 100644
--- a/plugins/org.eclipse.osee.ats.core.client/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.osee.ats.core.client/META-INF/MANIFEST.MF
@@ -103,7 +103,6 @@ Export-Package: org.eclipse.osee.ats.core.client,
org.eclipse.osee.ats.core.client.util,
org.eclipse.osee.ats.core.client.validator,
org.eclipse.osee.ats.core.client.workflow,
- org.eclipse.osee.ats.core.client.workflow.log,
org.eclipse.osee.ats.core.client.workflow.note,
org.eclipse.osee.ats.core.client.workflow.stateitem,
org.eclipse.osee.ats.core.client.workflow.transition
diff --git a/plugins/org.eclipse.osee.ats.core.client/OSGI-INF/ats.notify.service.xml b/plugins/org.eclipse.osee.ats.core.client/OSGI-INF/ats.notify.service.xml
index bb016d7ea93..20a39865c1a 100644
--- a/plugins/org.eclipse.osee.ats.core.client/OSGI-INF/ats.notify.service.xml
+++ b/plugins/org.eclipse.osee.ats.core.client/OSGI-INF/ats.notify.service.xml
@@ -2,6 +2,7 @@
<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="org.eclipse.osee.ats.core.client.internal.notify.AtsNotificationServiceImpl">
<implementation class="org.eclipse.osee.ats.core.client.internal.notify.AtsNotificationServiceImpl"/>
<service>
+ <provide interface="org.eclipse.osee.ats.api.notify.IAtsNotificationServiceProvider"/>
<provide interface="org.eclipse.osee.ats.api.notify.IAtsNotificationService"/>
</service>
</scr:component>
diff --git a/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/IAtsClient.java b/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/IAtsClient.java
index 65c2ebaf83e..24f0d7a635d 100644
--- a/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/IAtsClient.java
+++ b/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/IAtsClient.java
@@ -27,6 +27,7 @@ import org.eclipse.osee.ats.api.workflow.IAtsBranchService;
import org.eclipse.osee.ats.api.workflow.IAtsBranchServiceProvider;
import org.eclipse.osee.ats.api.workflow.IAtsWorkItemService;
import org.eclipse.osee.ats.api.workflow.IAtsWorkItemServiceProvider;
+import org.eclipse.osee.ats.core.client.internal.IArtifactProvider;
import org.eclipse.osee.ats.core.client.internal.IAtsWorkItemArtifactServiceProvider;
import org.eclipse.osee.ats.core.client.workflow.AbstractWorkflowArtifact;
import org.eclipse.osee.ats.core.config.IActionableItemFactory;
@@ -40,7 +41,7 @@ import org.eclipse.osee.framework.skynet.core.artifact.Artifact;
/**
* @author Donald G. Dunne
*/
-public interface IAtsClient extends IAttributeResolverProvider, IAtsReviewServiceProvider, IAtsBranchServiceProvider, IAtsWorkItemArtifactServiceProvider, IAtsWorkItemServiceProvider, IAtsConfigProvider, ITeamDefinitionFactory, IActionableItemFactory, IVersionFactory, IAtsQueryService, IAtsVersionServiceProvider, IAtsEarnedValueServiceProvider {
+public interface IAtsClient extends IAttributeResolverProvider, IAtsReviewServiceProvider, IAtsBranchServiceProvider, IAtsWorkItemArtifactServiceProvider, IAtsWorkItemServiceProvider, IAtsConfigProvider, ITeamDefinitionFactory, IActionableItemFactory, IArtifactProvider, IVersionFactory, IAtsQueryService, IAtsVersionServiceProvider, IAtsEarnedValueServiceProvider {
<T extends IAtsConfigObject> Artifact storeConfigObject(T configObject, IAtsChangeSet changes) throws OseeCoreException;
@@ -51,6 +52,7 @@ public interface IAtsClient extends IAttributeResolverProvider, IAtsReviewServic
/**
* @return corresponding Artifact or null if not found
*/
+ @Override
Artifact getArtifact(IAtsObject atsObject) throws OseeCoreException;
AbstractWorkflowArtifact getWorkflowArtifact(IAtsObject atsObject) throws OseeCoreException;
diff --git a/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/action/ActionArtifact.java b/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/action/ActionArtifact.java
index 23b2a8cf0e9..e568e8518b9 100644
--- a/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/action/ActionArtifact.java
+++ b/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/action/ActionArtifact.java
@@ -77,4 +77,9 @@ public class ActionArtifact extends Artifact implements IAtsAction {
setSoleAttributeFromString(AtsAttributeTypes.AtsId, atsId);
}
+ @Override
+ public Object getStoreObject() {
+ return this;
+ }
+
}
diff --git a/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/action/ActionManager.java b/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/action/ActionManager.java
index 637f71ec4c4..d11ba29da80 100644
--- a/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/action/ActionManager.java
+++ b/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/action/ActionManager.java
@@ -21,9 +21,9 @@ import org.eclipse.osee.ats.api.data.AtsAttributeTypes;
import org.eclipse.osee.ats.api.data.AtsRelationTypes;
import org.eclipse.osee.ats.api.team.CreateTeamOption;
import org.eclipse.osee.ats.api.team.IAtsTeamDefinition;
+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.core.AtsCore;
import org.eclipse.osee.ats.core.client.internal.AtsClientService;
import org.eclipse.osee.ats.core.client.notify.AtsNotificationManager;
import org.eclipse.osee.ats.core.client.team.TeamWorkFlowArtifact;
@@ -31,7 +31,6 @@ import org.eclipse.osee.ats.core.client.team.TeamWorkFlowManager;
import org.eclipse.osee.ats.core.client.util.AtsUtilCore;
import org.eclipse.osee.ats.core.client.workflow.ChangeType;
import org.eclipse.osee.ats.core.client.workflow.ChangeTypeUtil;
-import org.eclipse.osee.ats.core.client.workflow.ITeamWorkflowProvider;
import org.eclipse.osee.ats.core.config.TeamDefinitions;
import org.eclipse.osee.framework.core.data.IArtifactType;
import org.eclipse.osee.framework.core.util.Conditions;
@@ -79,8 +78,6 @@ public class ActionManager {
TeamWorkFlowArtifact teamWf =
createTeamWorkflow(actionArt, teamDef, actionableItems, leads, changes, createdDate, createdBy,
newActionListener);
-
- AtsCore.getLogFactory().writeToStore(teamWf);
changes.add(teamWf);
}
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 1066e7f4c71..2014c7e0539 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
@@ -24,6 +24,7 @@ import org.eclipse.osee.ats.api.ev.IAtsEarnedValueService;
import org.eclipse.osee.ats.api.query.IAtsQuery;
import org.eclipse.osee.ats.api.review.IAtsReviewService;
import org.eclipse.osee.ats.api.team.IAtsTeamDefinition;
+import org.eclipse.osee.ats.api.team.ITeamWorkflowProviders;
import org.eclipse.osee.ats.api.user.IAtsUserService;
import org.eclipse.osee.ats.api.util.IAtsChangeSet;
import org.eclipse.osee.ats.api.version.IAtsVersion;
@@ -53,14 +54,11 @@ import org.eclipse.osee.ats.core.client.internal.store.TeamDefinitionArtifactWri
import org.eclipse.osee.ats.core.client.internal.store.VersionArtifactReader;
import org.eclipse.osee.ats.core.client.internal.store.VersionArtifactWriter;
import org.eclipse.osee.ats.core.client.internal.user.AtsUserAdminImpl;
-import org.eclipse.osee.ats.core.client.internal.workdef.AtsWorkDefinitionAdminImpl;
-import org.eclipse.osee.ats.core.client.internal.workdef.AtsWorkDefinitionCache;
import org.eclipse.osee.ats.core.client.internal.workdef.AtsWorkDefinitionCacheProvider;
import org.eclipse.osee.ats.core.client.internal.workdef.AtsWorkItemArtifactProviderImpl;
import org.eclipse.osee.ats.core.client.internal.workflow.AtsAttributeResolverServiceImpl;
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.client.workflow.AbstractWorkflowArtifact;
import org.eclipse.osee.ats.core.client.workflow.AtsBranchServiceImpl;
@@ -68,6 +66,9 @@ import org.eclipse.osee.ats.core.config.IActionableItemFactory;
import org.eclipse.osee.ats.core.config.IAtsConfig;
import org.eclipse.osee.ats.core.config.ITeamDefinitionFactory;
import org.eclipse.osee.ats.core.config.IVersionFactory;
+import org.eclipse.osee.ats.core.util.CacheProvider;
+import org.eclipse.osee.ats.core.workdef.AtsWorkDefinitionAdminImpl;
+import org.eclipse.osee.ats.core.workdef.AtsWorkDefinitionCache;
import org.eclipse.osee.framework.core.data.IArtifactType;
import org.eclipse.osee.framework.core.exception.ArtifactDoesNotExist;
import org.eclipse.osee.framework.core.util.Conditions;
@@ -154,7 +155,7 @@ public class AtsClientImpl implements IAtsClient {
new AtsWorkDefinitionAdminImpl(workDefCacheProvider, workItemService, workDefService, teamWorkflowProvider,
attributeResolverService);
branchService = new AtsBranchServiceImpl();
- reviewService = new AtsReviewServiceImpl();
+ reviewService = new AtsReviewServiceImpl(this);
started = true;
}
@@ -367,13 +368,17 @@ public class AtsClientImpl implements IAtsClient {
@Override
public Artifact getArtifact(IAtsObject atsObject) throws OseeCoreException {
Artifact results = null;
- if (atsObject instanceof Artifact) {
- results = (Artifact) atsObject;
+ if (atsObject.getStoreObject() != null) {
+ results = (Artifact) atsObject.getStoreObject();
} else {
- try {
- results = AtsArtifactQuery.getArtifactFromId(atsObject.getGuid());
- } catch (ArtifactDoesNotExist ex) {
- // do nothing
+ if (atsObject instanceof Artifact) {
+ results = (Artifact) atsObject;
+ } else {
+ try {
+ results = AtsArtifactQuery.getArtifactFromId(atsObject.getGuid());
+ } catch (ArtifactDoesNotExist ex) {
+ // do nothing
+ }
}
}
return results;
diff --git a/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/internal/CacheProvider.java b/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/internal/IArtifactProvider.java
index 7b4dab0cb71..105e98c59eb 100644
--- a/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/internal/CacheProvider.java
+++ b/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/internal/IArtifactProvider.java
@@ -10,15 +10,14 @@
*******************************************************************************/
package org.eclipse.osee.ats.core.client.internal;
+import org.eclipse.osee.ats.api.IAtsObject;
import org.eclipse.osee.framework.jdk.core.type.OseeCoreException;
+import org.eclipse.osee.framework.skynet.core.artifact.Artifact;
/**
- * @author Donald G. Dunne
+ * @author Donald G Dunne
*/
-public interface CacheProvider<T> {
+public interface IArtifactProvider {
- T get() throws OseeCoreException;
-
- void invalidate();
-
-} \ No newline at end of file
+ Artifact getArtifact(IAtsObject atsObject) throws OseeCoreException;
+}
diff --git a/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/internal/config/AtsConfigCacheProvider.java b/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/internal/config/AtsConfigCacheProvider.java
index 3835bd3a5be..b628811eb3c 100644
--- a/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/internal/config/AtsConfigCacheProvider.java
+++ b/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/internal/config/AtsConfigCacheProvider.java
@@ -12,8 +12,8 @@ package org.eclipse.osee.ats.core.client.internal.config;
import java.util.concurrent.Callable;
import java.util.concurrent.FutureTask;
-import org.eclipse.osee.ats.core.client.internal.CacheProvider;
import org.eclipse.osee.ats.core.client.internal.IAtsArtifactStore;
+import org.eclipse.osee.ats.core.util.CacheProvider;
import org.eclipse.osee.framework.core.data.LazyObject;
/**
diff --git a/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/internal/notify/AtsNotificationServiceImpl.java b/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/internal/notify/AtsNotificationServiceImpl.java
index 8e7d5b53d58..4380ccfb722 100644
--- a/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/internal/notify/AtsNotificationServiceImpl.java
+++ b/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/internal/notify/AtsNotificationServiceImpl.java
@@ -17,6 +17,7 @@ import org.eclipse.osee.ats.api.IAtsWorkItem;
import org.eclipse.osee.ats.api.notify.AtsNotificationEvent;
import org.eclipse.osee.ats.api.notify.AtsNotifyType;
import org.eclipse.osee.ats.api.notify.IAtsNotificationService;
+import org.eclipse.osee.ats.api.notify.IAtsNotificationServiceProvider;
import org.eclipse.osee.ats.api.user.IAtsUser;
import org.eclipse.osee.ats.core.client.internal.AtsClientService;
import org.eclipse.osee.ats.core.client.notify.AtsNotificationManager;
@@ -28,7 +29,7 @@ import org.eclipse.osee.framework.ui.skynet.notify.OseeNotificationManager;
/**
* @author Donald G. Dunne
*/
-public class AtsNotificationServiceImpl implements IAtsNotificationService {
+public class AtsNotificationServiceImpl implements IAtsNotificationService, IAtsNotificationServiceProvider {
public AtsNotificationServiceImpl() {
}
@@ -66,4 +67,9 @@ public class AtsNotificationServiceImpl implements IAtsNotificationService {
notifyUsers, notifyTypes);
}
+ @Override
+ public IAtsNotificationService getNotifyService() {
+ return this;
+ }
+
}
diff --git a/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/internal/review/AtsReviewServiceImpl.java b/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/internal/review/AtsReviewServiceImpl.java
index 6a22635c435..2800709b2d8 100644
--- a/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/internal/review/AtsReviewServiceImpl.java
+++ b/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/internal/review/AtsReviewServiceImpl.java
@@ -13,6 +13,7 @@ package org.eclipse.osee.ats.core.client.internal.review;
import java.util.Collection;
import java.util.Date;
import org.eclipse.osee.ats.api.IAtsWorkItem;
+import org.eclipse.osee.ats.api.data.AtsAttributeTypes;
import org.eclipse.osee.ats.api.review.IAtsAbstractReview;
import org.eclipse.osee.ats.api.review.IAtsDecisionReview;
import org.eclipse.osee.ats.api.review.IAtsReviewService;
@@ -20,18 +21,32 @@ import org.eclipse.osee.ats.api.user.IAtsUser;
import org.eclipse.osee.ats.api.util.IAtsChangeSet;
import org.eclipse.osee.ats.api.workdef.ReviewBlockType;
import org.eclipse.osee.ats.api.workflow.IAtsTeamWorkflow;
+import org.eclipse.osee.ats.core.client.internal.IArtifactProvider;
import org.eclipse.osee.ats.core.client.review.AbstractReviewArtifact;
import org.eclipse.osee.ats.core.client.review.ReviewManager;
import org.eclipse.osee.ats.core.client.review.ValidateReviewManager;
import org.eclipse.osee.ats.core.client.team.TeamWorkFlowArtifact;
-import org.eclipse.osee.ats.core.client.workflow.AbstractWorkflowArtifact;
import org.eclipse.osee.framework.jdk.core.type.OseeCoreException;
+/**
+ * @author Donald G Dunne
+ */
public class AtsReviewServiceImpl implements IAtsReviewService {
+ private final IArtifactProvider artifactProvider;
+
+ public AtsReviewServiceImpl(IArtifactProvider artifactProvider) {
+ this.artifactProvider = artifactProvider;
+ }
+
@Override
public boolean isValidationReviewRequired(IAtsWorkItem workItem) throws OseeCoreException {
- return ((AbstractWorkflowArtifact) workItem).isValidationRequired();
+ boolean required = false;
+ if (workItem.isTeamWorkflow()) {
+ required =
+ artifactProvider.getArtifact(workItem).getSoleAttributeValue(AtsAttributeTypes.ValidationRequired, false);
+ }
+ return required;
}
@Override
diff --git a/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/internal/store/AtsVersionCache.java b/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/internal/store/AtsVersionCache.java
index af2cdb81338..7c2eca942a6 100644
--- a/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/internal/store/AtsVersionCache.java
+++ b/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/internal/store/AtsVersionCache.java
@@ -12,8 +12,8 @@ package org.eclipse.osee.ats.core.client.internal.store;
import org.eclipse.osee.ats.api.version.IAtsVersion;
import org.eclipse.osee.ats.api.workflow.IAtsTeamWorkflow;
-import org.eclipse.osee.ats.core.client.internal.CacheProvider;
import org.eclipse.osee.ats.core.client.internal.config.AtsArtifactConfigCache;
+import org.eclipse.osee.ats.core.util.CacheProvider;
import org.eclipse.osee.framework.jdk.core.type.OseeCoreException;
/**
diff --git a/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/internal/store/AtsVersionServiceImpl.java b/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/internal/store/AtsVersionServiceImpl.java
index 8fa4d33d691..b3831170e4f 100644
--- a/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/internal/store/AtsVersionServiceImpl.java
+++ b/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/internal/store/AtsVersionServiceImpl.java
@@ -22,13 +22,13 @@ import org.eclipse.osee.ats.api.version.IAtsVersion;
import org.eclipse.osee.ats.api.workflow.IAtsTeamWorkflow;
import org.eclipse.osee.ats.core.client.IAtsVersionAdmin;
import org.eclipse.osee.ats.core.client.internal.Activator;
-import org.eclipse.osee.ats.core.client.internal.CacheProvider;
import org.eclipse.osee.ats.core.client.internal.IAtsArtifactStore;
import org.eclipse.osee.ats.core.client.internal.config.AtsArtifactConfigCache;
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.util.AtsUtilCore;
import org.eclipse.osee.ats.core.client.workflow.AbstractWorkflowArtifact;
+import org.eclipse.osee.ats.core.util.CacheProvider;
import org.eclipse.osee.framework.core.exception.ArtifactDoesNotExist;
import org.eclipse.osee.framework.jdk.core.type.Identity;
import org.eclipse.osee.framework.jdk.core.type.OseeCoreException;
diff --git a/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/internal/user/AtsUser.java b/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/internal/user/AtsUser.java
index ac515508598..ed975c4dca3 100644
--- a/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/internal/user/AtsUser.java
+++ b/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/internal/user/AtsUser.java
@@ -144,4 +144,9 @@ public class AtsUser implements IAtsUser {
return String.format("[%s][%s]", getName(), getGuid());
}
+ @Override
+ public Object getStoreObject() {
+ return user;
+ }
+
}
diff --git a/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/internal/workdef/AtsWorkDefinitionAdminImpl.java b/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/internal/workdef/AtsWorkDefinitionAdminImpl.java
deleted file mode 100644
index b36eb0aca64..00000000000
--- a/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/internal/workdef/AtsWorkDefinitionAdminImpl.java
+++ /dev/null
@@ -1,424 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2010 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.internal.workdef;
-
-import java.util.Collection;
-import java.util.List;
-import java.util.logging.Level;
-import org.eclipse.osee.ats.api.IAtsWorkItem;
-import org.eclipse.osee.ats.api.ai.IAtsActionableItem;
-import org.eclipse.osee.ats.api.data.AtsAttributeTypes;
-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.workdef.IAtsStateDefinition;
-import org.eclipse.osee.ats.api.workdef.IAtsWidgetDefinition;
-import org.eclipse.osee.ats.api.workdef.IAtsWorkDefinition;
-import org.eclipse.osee.ats.api.workdef.IAtsWorkDefinitionAdmin;
-import org.eclipse.osee.ats.api.workdef.IAtsWorkDefinitionService;
-import org.eclipse.osee.ats.api.workdef.IAttributeResolver;
-import org.eclipse.osee.ats.api.workdef.IWorkDefinitionMatch;
-import org.eclipse.osee.ats.api.workflow.IAtsGoal;
-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.client.internal.Activator;
-import org.eclipse.osee.ats.core.client.internal.CacheProvider;
-import org.eclipse.osee.ats.core.client.team.ITeamWorkflowProviders;
-import org.eclipse.osee.ats.core.client.workflow.ITeamWorkflowProvider;
-import org.eclipse.osee.ats.core.workdef.WorkDefinitionMatch;
-import org.eclipse.osee.framework.core.exception.MultipleAttributesExist;
-import org.eclipse.osee.framework.core.util.Conditions;
-import org.eclipse.osee.framework.core.util.XResultData;
-import org.eclipse.osee.framework.jdk.core.type.OseeCoreException;
-import org.eclipse.osee.framework.jdk.core.util.Strings;
-import org.eclipse.osee.framework.logging.OseeLog;
-
-/**
- * @author Donald G. Dunne
- */
-public class AtsWorkDefinitionAdminImpl implements IAtsWorkDefinitionAdmin {
-
- private final CacheProvider<AtsWorkDefinitionCache> cacheProvider;
- private final IAtsWorkItemService workItemService;
- private final IAtsWorkDefinitionService workDefinitionService;
- private final ITeamWorkflowProviders teamWorkflowProviders;
- private final IAttributeResolver attributeResolver;
-
- public AtsWorkDefinitionAdminImpl(CacheProvider<AtsWorkDefinitionCache> workDefCacheProvider, IAtsWorkItemService workItemService, IAtsWorkDefinitionService workDefinitionService, ITeamWorkflowProviders teamWorkflowProviders, IAttributeResolver attributeResolver) {
- this.cacheProvider = workDefCacheProvider;
- this.workItemService = workItemService;
- this.workDefinitionService = workDefinitionService;
- this.teamWorkflowProviders = teamWorkflowProviders;
- this.attributeResolver = attributeResolver;
- }
-
- private AtsWorkDefinitionCache getCache() throws OseeCoreException {
- return cacheProvider.get();
- }
-
- @Override
- public void clearCaches() {
- cacheProvider.invalidate();
- }
-
- @Override
- public void addWorkDefinition(IAtsWorkDefinition workDef) throws OseeCoreException {
- WorkDefinitionMatch match =
- new WorkDefinitionMatch(workDef.getId(), "programatically added via WorkDefinitionFactory.addWorkDefinition");
- match.setWorkDefinition(workDef);
- getCache().cache(workDef, match);
- }
-
- @Override
- public void removeWorkDefinition(IAtsWorkDefinition workDef) throws OseeCoreException {
- getCache().invalidate(workDef);
- }
-
- @Override
- public IWorkDefinitionMatch getWorkDefinition(IAtsWorkItem workItem) throws OseeCoreException {
- AtsWorkDefinitionCache cache = getCache();
- IWorkDefinitionMatch toReturn = cache.getWorkDefinition(workItem);
- if (toReturn == null) {
- toReturn = getWorkDefinitionNew(workItem);
- getCache().cache(workItem, toReturn);
- }
- return toReturn;
- }
-
- @Override
- public IWorkDefinitionMatch getWorkDefinition(String id) throws OseeCoreException {
- IWorkDefinitionMatch toReturn = getCache().getWorkDefinition(id);
- if (toReturn == null) {
- WorkDefinitionMatch match = new WorkDefinitionMatch();
- // Try to get from new DSL provider if configured to use it
- if (!match.isMatched()) {
- try {
- XResultData resultData = new XResultData(false);
- if (workDefinitionService == null) {
- throw new IllegalStateException("ATS Work Definition Service is not found.");
- }
- IAtsWorkDefinition workDef = workDefinitionService.getWorkDef(id, resultData);
- if (workDef != null) {
- match.setWorkDefinition(workDef);
- if (!resultData.isEmpty()) {
- match.addTrace((String.format("from DSL provider loaded id [%s] [%s]", id, resultData.toString())));
- } else {
- match.addTrace((String.format("from DSL provider loaded id [%s]", id)));
- }
- }
- } catch (Exception ex) {
- return new WorkDefinitionMatch(null, ex.getLocalizedMessage());
- }
- }
- if (match.isMatched()) {
- OseeLog.logf(Activator.class, Level.INFO, "Loaded Work Definition [%s]", match);
- getCache().cache(id, match);
- toReturn = match;
- } else {
- OseeLog.logf(Activator.class, Level.INFO, "Unable to load Work Definition [%s]", id);
- }
- }
- if (toReturn == null) {
- toReturn = new WorkDefinitionMatch();
- }
- return toReturn;
- }
-
- private IWorkDefinitionMatch getWorkDefinitionFromArtifactsAttributeValue(IAtsTeamDefinition teamDef) throws OseeCoreException {
- // If this artifact specifies it's own workflow definition, use it
- String workFlowDefId = teamDef.getWorkflowDefinition();
- if (Strings.isValid(workFlowDefId)) {
- IWorkDefinitionMatch match = getWorkDefinition(workFlowDefId);
- if (match.isMatched()) {
- match.addTrace(String.format("from artifact [%s] for id [%s]", teamDef, workFlowDefId));
- return match;
- }
- }
- return new WorkDefinitionMatch();
- }
-
- private IWorkDefinitionMatch getTaskWorkDefinitionFromArtifactsAttributeValue(IAtsTeamDefinition teamDef) throws OseeCoreException {
- // If this artifact specifies it's own workflow definition, use it
- String workFlowDefId = teamDef.getRelatedTaskWorkDefinition();
- if (Strings.isValid(workFlowDefId)) {
- IWorkDefinitionMatch match = getWorkDefinition(workFlowDefId);
- if (match.isMatched()) {
- match.addTrace(String.format("from artifact [%s] for id [%s]", teamDef, workFlowDefId));
- return match;
- }
- }
- return new WorkDefinitionMatch();
- }
-
- private IWorkDefinitionMatch getWorkDefinitionFromArtifactsAttributeValue(IAtsWorkItem workItem) throws OseeCoreException {
- // If this artifact specifies it's own workflow definition, use it
- String workFlowDefId = null;
- Collection<Object> attributeValues =
- workItemService.getAttributeValues(workItem, AtsAttributeTypes.WorkflowDefinition);
- if (!attributeValues.isEmpty()) {
- workFlowDefId = (String) attributeValues.iterator().next();
- }
- if (Strings.isValid(workFlowDefId)) {
- IWorkDefinitionMatch match = getWorkDefinition(workFlowDefId);
- if (match.isMatched()) {
- match.addTrace(String.format("from artifact [%s] for id [%s]", workItem, workFlowDefId));
- return match;
- }
- }
- return new WorkDefinitionMatch();
- }
-
- private IWorkDefinitionMatch getTaskWorkDefinitionFromArtifactsAttributeValue(IAtsWorkItem workItem) throws OseeCoreException {
- // If this artifact specifies it's own workflow definition, use it
- String workFlowDefId = null;
- Collection<Object> attributeValues =
- workItemService.getAttributeValues(workItem, AtsAttributeTypes.RelatedTaskWorkDefinition);
- if (!attributeValues.isEmpty()) {
- workFlowDefId = (String) attributeValues.iterator().next();
- }
- if (Strings.isValid(workFlowDefId)) {
- IWorkDefinitionMatch match = getWorkDefinition(workFlowDefId);
- if (match.isMatched()) {
- match.addTrace(String.format("from artifact [%s] for id [%s]", workItem, workFlowDefId));
- return match;
- }
- }
- return new WorkDefinitionMatch();
- }
-
- /**
- * Look at team def's attribute for Work Definition setting, otherwise, walk up team tree for setting
- */
- private IWorkDefinitionMatch getWorkDefinitionFromTeamDefinitionAttributeInherited(IAtsTeamDefinition teamDef) throws OseeCoreException {
- IWorkDefinitionMatch match = getWorkDefinitionFromArtifactsAttributeValue(teamDef);
- if (match.isMatched()) {
- return match;
- }
- IAtsTeamDefinition parentArt = teamDef.getParentTeamDef();
- if (parentArt != null) {
- return getWorkDefinitionFromTeamDefinitionAttributeInherited(parentArt);
- }
- return new WorkDefinitionMatch();
- }
-
- @Override
- public IWorkDefinitionMatch getWorkDefinitionForTask(IAtsTask task) throws OseeCoreException {
- IAtsTeamWorkflow teamWf = workItemService.getParentTeamWorkflow(task);
- return getWorkDefinitionForTask(teamWf, task);
- }
-
- /**
- * Return the WorkDefinition that would be assigned to a new Task. This is not necessarily the actual WorkDefinition
- * used because it can be overridden once the Task artifact is created.
- */
- @Override
- public IWorkDefinitionMatch getWorkDefinitionForTaskNotYetCreated(IAtsTeamWorkflow teamWf) throws OseeCoreException {
- return getWorkDefinitionForTask(teamWf, null);
- }
-
- /**
- * @param task - if null, returned WorkDefinition will be proposed; else returned will be actual
- */
- private IWorkDefinitionMatch getWorkDefinitionForTask(IAtsTeamWorkflow teamWf, IAtsTask task) throws OseeCoreException {
- IWorkDefinitionMatch match = new WorkDefinitionMatch();
- for (ITeamWorkflowProvider provider : teamWorkflowProviders.getTeamWorkflowProviders()) {
- String workFlowDefId = provider.getRelatedTaskWorkflowDefinitionId(teamWf);
- if (Strings.isValid(workFlowDefId)) {
- match = getWorkDefinition(workFlowDefId);
- match.addTrace((String.format("from provider [%s] for id [%s]", provider.getClass().getSimpleName(),
- workFlowDefId)));
- break;
- }
- }
- if (!match.isMatched() && task != null) {
- // If task specifies it's own workflow id, use it
- match = getWorkDefinitionFromArtifactsAttributeValue(task);
- }
- if (!match.isMatched()) {
- // Else If parent SMA has a related task definition workflow id specified, use it
- IWorkDefinitionMatch match2 = getTaskWorkDefinitionFromArtifactsAttributeValue(teamWf);
- if (match2.isMatched()) {
- match2.addTrace(String.format("from task parent SMA [%s]", teamWf));
- match = match2;
- }
- }
- if (!match.isMatched()) {
- // Else If parent TeamWorkflow's IAtsTeamDefinition has a related task definition workflow id, use it
- match = getTaskWorkDefinitionFromArtifactsAttributeValue(teamWf.getTeamDefinition());
- }
- if (!match.isMatched()) {
- match = getWorkDefinition(TaskWorkflowDefinitionId);
- match.addTrace("WorkDefinitionFactory - Default Task");
- }
- return match;
- }
-
- private IWorkDefinitionMatch getWorkDefinitionNew(IAtsWorkItem workItem) throws OseeCoreException {
- IWorkDefinitionMatch match = new WorkDefinitionMatch();
- if (workItem instanceof IAtsTask) {
- match = getWorkDefinitionForTask((IAtsTask) workItem);
- }
- if (!match.isMatched()) {
- // Check extensions for definition handling
- for (ITeamWorkflowProvider provider : teamWorkflowProviders.getTeamWorkflowProviders()) {
- String workFlowDefId = provider.getWorkflowDefinitionId(workItem);
- if (Strings.isValid(workFlowDefId)) {
- match = getWorkDefinition(workFlowDefId);
- }
- }
- if (!match.isMatched()) {
- // If this artifact specifies it's own workflow definition, use it
- match = getWorkDefinitionFromArtifactsAttributeValue(workItem);
- if (!match.isMatched()) {
- // Otherwise, use workflow defined by attribute of WorkflowDefinition
- // Note: This is new. Old TeamDefs got workflow off relation
- if (workItem instanceof IAtsTeamWorkflow) {
- IAtsTeamDefinition teamDef = ((IAtsTeamWorkflow) workItem).getTeamDefinition();
- match = getWorkDefinitionFromTeamDefinitionAttributeInherited(teamDef);
- } else if (workItem instanceof IAtsGoal) {
- match = getWorkDefinition(GoalWorkflowDefinitionId);
- match.addTrace("WorkDefinitionFactory - GoalWorkflowDefinitionId");
- } else if (workItem instanceof IAtsPeerToPeerReview) {
- match = getWorkDefinition(PeerToPeerDefaultWorkflowDefinitionId);
- match.addTrace("WorkDefinitionFactory - PeerToPeerWorkflowDefinitionId");
- } else if (workItem instanceof IAtsDecisionReview) {
- match = getWorkDefinition(DecisionWorkflowDefinitionId);
- match.addTrace("WorkDefinitionFactory - DecisionWorkflowDefinitionId");
- }
- }
- }
- }
- return match;
- }
-
- @Override
- public boolean isTaskOverridingItsWorkDefinition(IAtsTask task) throws MultipleAttributesExist, OseeCoreException {
- return attributeResolver.getSoleAttributeValueAsString(task, AtsAttributeTypes.WorkflowDefinition, null) != null;
- }
-
- /**
- * @return WorkDefinitionMatch for Peer Review either from attribute value or default
- */
- @Override
- public IWorkDefinitionMatch getWorkDefinitionForPeerToPeerReview(IAtsPeerToPeerReview review) throws OseeCoreException {
- Conditions.notNull(review, AtsWorkDefinitionAdminImpl.class.getSimpleName());
- IWorkDefinitionMatch match = getWorkDefinitionFromArtifactsAttributeValue(review);
- if (!match.isMatched()) {
- match = getDefaultPeerToPeerWorkflowDefinitionMatch();
- }
- return match;
- }
-
- @Override
- public IWorkDefinitionMatch getDefaultPeerToPeerWorkflowDefinitionMatch() throws OseeCoreException {
- IWorkDefinitionMatch match = getWorkDefinition(PeerToPeerDefaultWorkflowDefinitionId);
- match.addTrace("WorkDefinitionFactory - Default PeerToPeer");
- return match;
- }
-
- /**
- * @return WorkDefinitionMatch for peer review off created teamWf. Will use configured value off team definitions
- * with recurse or return default review work definition
- */
- @Override
- public IWorkDefinitionMatch getWorkDefinitionForPeerToPeerReviewNotYetCreated(IAtsTeamWorkflow teamWf) throws OseeCoreException {
- Conditions.notNull(teamWf, AtsWorkDefinitionAdminImpl.class.getSimpleName());
- IAtsTeamDefinition teamDefinition = teamWf.getTeamDefinition();
- IWorkDefinitionMatch match = getPeerToPeerWorkDefinitionFromTeamDefinitionAttributeValueRecurse(teamDefinition);
- if (!match.isMatched()) {
- match = getDefaultPeerToPeerWorkflowDefinitionMatch();
- }
- return match;
- }
-
- /**
- * @return WorkDefinitionMatch of peer review from team definition related to actionableItem or return default review
- * work definition
- */
- @Override
- public IWorkDefinitionMatch getWorkDefinitionForPeerToPeerReviewNotYetCreatedAndStandalone(IAtsActionableItem actionableItem) throws OseeCoreException {
- Conditions.notNull(actionableItem, AtsWorkDefinitionAdminImpl.class.getSimpleName());
- IWorkDefinitionMatch match = new WorkDefinitionMatch();
- IAtsTeamDefinition teamDefinitionInherited = actionableItem.getTeamDefinitionInherited();
- match = getPeerToPeerWorkDefinitionFromTeamDefinitionAttributeValueRecurse(teamDefinitionInherited);
- if (!match.isMatched()) {
- match = getDefaultPeerToPeerWorkflowDefinitionMatch();
- }
- return match;
- }
-
- /**
- * @return WorkDefinitionMatch of teamDefinition configured with RelatedPeerWorkflowDefinition attribute with recurse
- * up to top teamDefinition or will return no match
- */
- protected IWorkDefinitionMatch getPeerToPeerWorkDefinitionFromTeamDefinitionAttributeValueRecurse(IAtsTeamDefinition teamDefinition) throws OseeCoreException {
- Conditions.notNull(teamDefinition, AtsWorkDefinitionAdminImpl.class.getSimpleName());
- IWorkDefinitionMatch match = new WorkDefinitionMatch();
- String workDefId = teamDefinition.getRelatedPeerWorkDefinition();
- if (!Strings.isValid(workDefId)) {
- IAtsTeamDefinition parentTeamDef = teamDefinition.getParentTeamDef();
- if (parentTeamDef != null) {
- match = getPeerToPeerWorkDefinitionFromTeamDefinitionAttributeValueRecurse(parentTeamDef);
- }
- } else {
- match = getWorkDefinition(workDefId);
- match.addTrace("PeerToPeer from Team Definition");
- }
- return match;
- }
-
- @Override
- public IAtsWorkDefinition copyWorkDefinition(String newName, IAtsWorkDefinition workDef, XResultData resultData) {
- return workDefinitionService.copyWorkDefinition(newName, workDef, resultData);
- }
-
- @Override
- public List<IAtsStateDefinition> getStatesOrderedByOrdinal(IAtsWorkDefinition workDef) {
- return workDefinitionService.getStatesOrderedByOrdinal(workDef);
- }
-
- @Override
- public Collection<String> getStateNames(IAtsWorkDefinition workDef) {
- return workDefinitionService.getStateNames(workDef);
- }
-
- @Override
- public String getStorageString(IAtsWorkDefinition workDef, XResultData resultData) throws Exception {
- return workDefinitionService.getStorageString(workDef, resultData);
- }
-
- @Override
- public IAtsWorkDefinition getWorkDef(String id, XResultData resultData) throws Exception {
- return workDefinitionService.getWorkDef(id, resultData);
- }
-
- @Override
- public List<IAtsWidgetDefinition> getWidgetsFromLayoutItems(IAtsStateDefinition stateDef) {
- return workDefinitionService.getWidgetsFromLayoutItems(stateDef);
- }
-
- @Override
- public boolean isStateWeightingEnabled(IAtsWorkDefinition workDef) {
- return workDefinitionService.isStateWeightingEnabled(workDef);
- }
-
- @Override
- public IAtsStateDefinition getStateDefinitionByName(IAtsWorkItem workItem, String stateName) throws OseeCoreException {
- return getWorkDefinition(workItem).getWorkDefinition().getStateByName(stateName);
- }
-
- @Override
- public Collection<String> getAllValidStateNames() {
- return workDefinitionService.getAllValidStateNames();
- }
-
-}
diff --git a/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/internal/workdef/AtsWorkDefinitionCache.java b/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/internal/workdef/AtsWorkDefinitionCache.java
deleted file mode 100644
index 3604a7ad8af..00000000000
--- a/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/internal/workdef/AtsWorkDefinitionCache.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/*******************************************************************************
- * 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.client.internal.workdef;
-
-import java.util.Map;
-import java.util.concurrent.ConcurrentHashMap;
-import org.eclipse.osee.ats.api.IAtsWorkItem;
-import org.eclipse.osee.ats.api.workdef.IAtsWorkDefinition;
-import org.eclipse.osee.ats.api.workdef.IWorkDefinitionMatch;
-import org.eclipse.osee.ats.core.workdef.WorkDefinitionMatch;
-
-/**
- * @author Donald G. Dunne
- */
-public class AtsWorkDefinitionCache {
-
- // Cache the WorkDefinition used for each AbstractWorkflowId so don't have to recompute each time
- private final Map<String, IWorkDefinitionMatch> awaGuidToWorkDefinition =
- new ConcurrentHashMap<String, IWorkDefinitionMatch>();
- // Cache the WorkDefinition object for each WorkDefinition id so don't have to reload
- // This grows as WorkDefinitions are requested/loaded
- private final Map<String, IWorkDefinitionMatch> workDefIdToWorkDefintion =
- new ConcurrentHashMap<String, IWorkDefinitionMatch>();
-
- public void cache(IAtsWorkDefinition workDef, WorkDefinitionMatch match) {
- cache(workDef.getName(), match);
- }
-
- public void cache(String id, WorkDefinitionMatch match) {
- workDefIdToWorkDefintion.put(id, match);
- }
-
- public void cache(IAtsWorkItem workItem, IWorkDefinitionMatch match) {
- awaGuidToWorkDefinition.put(workItem.getGuid(), match);
- }
-
- public IWorkDefinitionMatch getWorkDefinition(IAtsWorkItem workItem) {
- return awaGuidToWorkDefinition.get(workItem.getGuid());
- }
-
- //IAtsWorkDefinition
- public IWorkDefinitionMatch getWorkDefinition(String id) {
- return workDefIdToWorkDefintion.get(id);
- }
-
- public Iterable<IWorkDefinitionMatch> getAllWorkDefinitions() {
- return workDefIdToWorkDefintion.values();
- }
-
- public void invalidate(IAtsWorkDefinition workDef) {
- workDefIdToWorkDefintion.remove(workDef.getName());
- }
-
- public void invalidateAll() {
- awaGuidToWorkDefinition.clear();
- workDefIdToWorkDefintion.clear();
- }
-
-}
diff --git a/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/internal/workdef/AtsWorkDefinitionCacheProvider.java b/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/internal/workdef/AtsWorkDefinitionCacheProvider.java
index e8625a55248..dd6f3e38d86 100644
--- a/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/internal/workdef/AtsWorkDefinitionCacheProvider.java
+++ b/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/internal/workdef/AtsWorkDefinitionCacheProvider.java
@@ -13,7 +13,8 @@ package org.eclipse.osee.ats.core.client.internal.workdef;
import java.util.concurrent.Callable;
import java.util.concurrent.FutureTask;
import org.eclipse.osee.ats.api.workdef.IAtsWorkDefinitionService;
-import org.eclipse.osee.ats.core.client.internal.CacheProvider;
+import org.eclipse.osee.ats.core.util.CacheProvider;
+import org.eclipse.osee.ats.core.workdef.AtsWorkDefinitionCache;
import org.eclipse.osee.framework.core.data.LazyObject;
/**
diff --git a/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/internal/workdef/AttributeWrapper.java b/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/internal/workdef/AttributeWrapper.java
index 4b8b70b4851..2d6d3d7be43 100644
--- a/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/internal/workdef/AttributeWrapper.java
+++ b/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/internal/workdef/AttributeWrapper.java
@@ -45,4 +45,9 @@ public class AttributeWrapper<T> implements IAttribute<T> {
attr.setValue(value);
}
+ @Override
+ public int getId() {
+ return attr.getId();
+ }
+
}
diff --git a/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/internal/workdef/LoadAtsWorkDefinitionCacheCallable.java b/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/internal/workdef/LoadAtsWorkDefinitionCacheCallable.java
index 7e7c5b7da61..8102d24829b 100644
--- a/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/internal/workdef/LoadAtsWorkDefinitionCacheCallable.java
+++ b/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/internal/workdef/LoadAtsWorkDefinitionCacheCallable.java
@@ -15,6 +15,7 @@ import java.util.logging.Level;
import org.eclipse.osee.ats.api.workdef.IAtsWorkDefinitionAdmin;
import org.eclipse.osee.ats.api.workdef.IAtsWorkDefinitionService;
import org.eclipse.osee.ats.core.client.internal.Activator;
+import org.eclipse.osee.ats.core.workdef.AtsWorkDefinitionCache;
import org.eclipse.osee.framework.core.util.XResultData;
import org.eclipse.osee.framework.logging.OseeLog;
diff --git a/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/internal/workflow/AtsAttributeResolverServiceImpl.java b/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/internal/workflow/AtsAttributeResolverServiceImpl.java
index 4d42c660623..afc2c7e64ce 100644
--- a/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/internal/workflow/AtsAttributeResolverServiceImpl.java
+++ b/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/internal/workflow/AtsAttributeResolverServiceImpl.java
@@ -15,6 +15,7 @@ import java.util.Collection;
import java.util.List;
import java.util.logging.Level;
import org.eclipse.osee.ats.api.IAtsWorkItem;
+import org.eclipse.osee.ats.api.util.IAtsChangeSet;
import org.eclipse.osee.ats.api.workdef.IAtsWidgetDefinition;
import org.eclipse.osee.ats.api.workdef.IAttributeResolver;
import org.eclipse.osee.ats.api.workflow.IAttribute;
@@ -62,6 +63,7 @@ public class AtsAttributeResolverServiceImpl implements IAttributeResolver {
return getAttributeType(attributeName).getDescription();
}
+ @Override
public AttributeType getAttributeType(String attributeName) {
try {
return AttributeTypeManager.getType(attributeName);
@@ -138,4 +140,71 @@ public class AtsAttributeResolverServiceImpl implements IAttributeResolver {
attributeById.delete();
}
+ @Override
+ public void deleteSoleAttribute(IAtsWorkItem workItem, IAttributeType attributeType, IAtsChangeSet changes) throws OseeCoreException {
+ if (changes != null) {
+ changes.deleteSoleAttribute(workItem, attributeType);
+ } else {
+ deleteSoleAttribute(workItem, attributeType);
+ }
+ }
+
+ @Override
+ public void setSoleAttributeValue(IAtsWorkItem workItem, IAttributeType attributeType, String value, IAtsChangeSet changes) throws OseeCoreException {
+ if (changes != null) {
+ changes.setSoleAttributeValue(workItem, attributeType, value);
+ } else {
+ setSoleAttributeValue(workItem, attributeType, value);
+ }
+ }
+
+ @Override
+ public void setSoleAttributeValue(IAtsWorkItem workItem, IAttributeType attributeType, Object value, IAtsChangeSet changes) throws OseeCoreException {
+ if (changes != null) {
+ changes.setSoleAttributeValue(workItem, attributeType, value);
+ } else {
+ setSoleAttributeValue(workItem, attributeType, value);
+ }
+ }
+
+ @Override
+ public void addAttribute(IAtsWorkItem workItem, IAttributeType attributeType, Object value, IAtsChangeSet changes) throws OseeCoreException {
+ if (changes != null) {
+ changes.addAttribute(workItem, attributeType, value);
+ } else {
+ AtsClientService.get().getArtifact(workItem).addAttribute(attributeType, value);
+ }
+ }
+
+ @Override
+ public void deleteSoleAttribute(IAtsWorkItem workItem, IAttributeType attributeType, Object value, IAtsChangeSet changes) throws OseeCoreException {
+ if (changes != null) {
+ changes.deleteAttribute(workItem, attributeType, value);
+ } else {
+ AtsClientService.get().getArtifact(workItem).deleteAttribute(attributeType, value);
+ }
+ }
+
+ @Override
+ public <T> void setValue(IAtsWorkItem workItem, IAttribute<String> attr, IAttributeType attributeType, T value, IAtsChangeSet changes) throws OseeCoreException {
+ if (changes != null) {
+ changes.setValue(workItem, attr, attributeType, value);
+ } else {
+ @SuppressWarnings("unchecked")
+ Attribute<T> attribute = (Attribute<T>) attr.getData();
+ attribute.setValue(value);
+ }
+ }
+
+ @Override
+ public <T> void deleteAttribute(IAtsWorkItem workItem, IAttribute<T> attr, IAtsChangeSet changes) throws OseeCoreException {
+ if (changes != null) {
+ changes.deleteAttribute(workItem, attr);
+ } else {
+ Artifact artifact = AtsClientService.get().getArtifact(workItem);
+ Attribute<?> attribute = (Attribute<?>) attr.getData();
+ Attribute<?> attributeById = artifact.getAttributeById(attribute.getId(), false);
+ attributeById.delete();
+ }
+ }
}
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 c9e39bc80e0..75f21def9da 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,13 +11,9 @@
package org.eclipse.osee.ats.core.client.internal.workflow;
import java.util.Collection;
-import java.util.List;
-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;
-import org.eclipse.osee.ats.api.user.IAtsUser;
-import org.eclipse.osee.ats.api.util.IAtsChangeSet;
import org.eclipse.osee.ats.api.workdef.IAtsStateDefinition;
import org.eclipse.osee.ats.api.workdef.IStateToken;
import org.eclipse.osee.ats.api.workdef.WidgetResult;
@@ -26,9 +22,7 @@ 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.log.ILogStorageProvider;
import org.eclipse.osee.ats.api.workflow.transition.ITransitionListener;
-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;
@@ -36,18 +30,14 @@ import org.eclipse.osee.ats.core.client.team.TeamWorkFlowArtifact;
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.AtsWorkData;
-import org.eclipse.osee.ats.core.client.workflow.log.ArtifactLog;
import org.eclipse.osee.ats.core.client.workflow.transition.TransitionListeners;
-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.util.Conditions;
import org.eclipse.osee.framework.jdk.core.type.OseeArgumentException;
import org.eclipse.osee.framework.jdk.core.type.OseeCoreException;
import org.eclipse.osee.framework.jdk.core.type.OseeStateException;
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;
@@ -174,30 +164,6 @@ public class AtsWorkItemServiceImpl implements IAtsWorkItemService {
}
@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;
- }
-
- @Override
public String getCurrentStateName(IAtsWorkItem workItem) {
return ((AbstractWorkflowArtifact) workItem).getCurrentStateName();
}
@@ -222,18 +188,13 @@ public class AtsWorkItemServiceImpl implements IAtsWorkItemService {
}
@Override
- public void transitioned(IAtsWorkItem workItem, IAtsStateDefinition fromState, IAtsStateDefinition toState, List<? extends IAtsUser> updatedAssigees, IAtsChangeSet changes) throws OseeCoreException {
- ((AbstractWorkflowArtifact) workItem).transitioned(fromState, toState, updatedAssigees, changes);
- }
-
- @Override
public Collection<ITransitionListener> getTransitionListeners() {
return TransitionListeners.getListeners();
}
@Override
- public ILogStorageProvider getLogStorageProvider(IAtsWorkItem workItem) {
- return new ArtifactLog(((AbstractWorkflowArtifact) workItem));
+ public String getTargetedVersionStr(IAtsTeamWorkflow teamWf) throws OseeCoreException {
+ return AtsClientService.get().getAtsVersionService().getTargetedVersion(teamWf).getName();
}
}
diff --git a/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/review/DecisionReviewDefinitionManager.java b/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/review/DecisionReviewDefinitionManager.java
index 88b8324882e..69ea04ae3ce 100644
--- a/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/review/DecisionReviewDefinitionManager.java
+++ b/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/review/DecisionReviewDefinitionManager.java
@@ -66,14 +66,14 @@ public class DecisionReviewDefinitionManager extends TransitionAdapter {
} else {
decArt =
DecisionReviewManager.createNewDecisionReview(teamArt, revDef.getBlockingType(), revDef.getReviewTitle(),
- revDef.getRelatedToState(), revDef.getDescription(), revDef.getOptions(), users, createdDate, createdBy, changes);
+ revDef.getRelatedToState(), revDef.getDescription(), revDef.getOptions(), users, createdDate, createdBy,
+ changes);
}
decArt.getLog().addLog(LogType.Note, null, String.format("Review [%s] auto-generated", revDef.getName()),
AtsCore.getUserService().getCurrentUser().getUserId());
for (IReviewProvider provider : ReviewProviders.getAtsReviewProviders()) {
provider.reviewCreated(decArt);
}
- AtsCore.getLogFactory().writeToStore(decArt);
changes.add(decArt);
return decArt;
}
diff --git a/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/review/DecisionReviewManager.java b/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/review/DecisionReviewManager.java
index 41b3156e797..69a1f3ea781 100644
--- a/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/review/DecisionReviewManager.java
+++ b/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/review/DecisionReviewManager.java
@@ -27,7 +27,6 @@ import org.eclipse.osee.ats.api.workdef.ReviewBlockType;
import org.eclipse.osee.ats.api.workdef.StateType;
import org.eclipse.osee.ats.api.workflow.transition.TransitionOption;
import org.eclipse.osee.ats.api.workflow.transition.TransitionResults;
-import org.eclipse.osee.ats.core.AtsCore;
import org.eclipse.osee.ats.core.client.internal.AtsClientService;
import org.eclipse.osee.ats.core.client.team.TeamWorkFlowArtifact;
import org.eclipse.osee.ats.core.client.util.AtsUtilCore;
@@ -99,7 +98,6 @@ public class DecisionReviewManager {
}
reviewArt.setSoleAttributeValue(AtsAttributeTypes.EstimatedHours, estimateHours);
reviewArt.getStateMgr().updateMetrics(reviewArt.getStateDefinition(), stateHoursSpent, statePercentComplete, true);
- AtsCore.getLogFactory().writeToStore(reviewArt);
return Result.TrueResult;
}
@@ -126,7 +124,6 @@ public class DecisionReviewManager {
reviewArt.setSoleAttributeValue(AtsAttributeTypes.Decision, decision ? "Yes" : "No");
reviewArt.getStateMgr().updateMetrics(reviewArt.getStateDefinition(), stateHoursSpent, statePercentComplete, true);
- AtsCore.getLogFactory().writeToStore(reviewArt);
return Result.TrueResult;
}
@@ -149,7 +146,6 @@ public class DecisionReviewManager {
}
// ensure assignees are as requested
decRev.getStateMgr().setAssignees(assignees);
- AtsCore.getLogFactory().writeToStore(decRev);
changes.add(decRev);
return decRev;
}
diff --git a/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/review/PeerReviewDefinitionManager.java b/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/review/PeerReviewDefinitionManager.java
index 94bb41d702e..172a59e22f3 100644
--- a/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/review/PeerReviewDefinitionManager.java
+++ b/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/review/PeerReviewDefinitionManager.java
@@ -73,7 +73,7 @@ public class PeerReviewDefinitionManager extends TransitionAdapter {
for (IReviewProvider provider : ReviewProviders.getAtsReviewProviders()) {
provider.reviewCreated(peerArt);
}
- AtsCore.getLogFactory().writeToStore(peerArt);
+ changes.add(peerArt);
return peerArt;
}
diff --git a/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/review/role/UserRoleManager.java b/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/review/role/UserRoleManager.java
index a59a28a3638..629b5b7252a 100644
--- a/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/review/role/UserRoleManager.java
+++ b/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/review/role/UserRoleManager.java
@@ -20,7 +20,6 @@ import org.eclipse.osee.ats.api.data.AtsAttributeTypes;
import org.eclipse.osee.ats.api.notify.AtsNotifyType;
import org.eclipse.osee.ats.api.user.IAtsUser;
import org.eclipse.osee.ats.api.util.IAtsChangeSet;
-import org.eclipse.osee.ats.core.AtsCore;
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.notify.AtsNotificationManager;
@@ -257,6 +256,5 @@ public class UserRoleManager {
awa.getStateMgr().setMetrics(awa.getStateDefinition(), hoursSpent,
awa.getStateMgr().getPercentComplete(awa.getCurrentStateName()), true,
AtsClientService.get().getUserAdmin().getCurrentUser(), new Date());
- AtsCore.getLogFactory().writeToStore(awa);
}
}
diff --git a/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/task/AbstractTaskableArtifact.java b/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/task/AbstractTaskableArtifact.java
index 4ced79e6a8a..4bfd8d9d633 100644
--- a/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/task/AbstractTaskableArtifact.java
+++ b/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/task/AbstractTaskableArtifact.java
@@ -24,9 +24,7 @@ import org.eclipse.osee.ats.api.data.AtsAttributeTypes;
import org.eclipse.osee.ats.api.data.AtsRelationTypes;
import org.eclipse.osee.ats.api.user.IAtsUser;
import org.eclipse.osee.ats.api.util.IAtsChangeSet;
-import org.eclipse.osee.ats.api.workdef.IAtsStateDefinition;
import org.eclipse.osee.ats.api.workdef.IStateToken;
-import org.eclipse.osee.ats.core.AtsCore;
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.util.AtsTaskCache;
@@ -65,14 +63,6 @@ public abstract class AbstractTaskableArtifact extends AbstractWorkflowArtifact
}
}
- @Override
- public void transitioned(IAtsStateDefinition fromState, IAtsStateDefinition toState, Collection<? extends IAtsUser> toAssignees, IAtsChangeSet changes) throws OseeCoreException {
- super.transitioned(fromState, toState, toAssignees, changes);
- for (TaskArtifact taskArt : getTaskArtifacts()) {
- taskArt.parentWorkFlowTransitioned(fromState, toState, toAssignees, changes);
- }
- }
-
public Collection<TaskArtifact> getTaskArtifacts() throws OseeCoreException {
return AtsTaskCache.getTaskArtifacts(this);
}
@@ -126,7 +116,6 @@ public abstract class AbstractTaskableArtifact extends AbstractWorkflowArtifact
if (Strings.isValid(relatedToState)) {
taskArt.setSoleAttributeValue(AtsAttributeTypes.RelatedToState, relatedToState);
}
- AtsCore.getLogFactory().writeToStore(taskArt);
AtsTaskCache.decache(this);
changes.add(taskArt);
return taskArt;
diff --git a/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/task/TaskArtifact.java b/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/task/TaskArtifact.java
index 0f35358a0d5..2b2824b2794 100644
--- a/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/task/TaskArtifact.java
+++ b/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/task/TaskArtifact.java
@@ -10,31 +10,20 @@
*******************************************************************************/
package org.eclipse.osee.ats.core.client.task;
-import java.util.Arrays;
import java.util.Collection;
import java.util.Date;
import java.util.List;
import org.eclipse.osee.ats.api.data.AtsAttributeTypes;
import org.eclipse.osee.ats.api.data.AtsRelationTypes;
-import org.eclipse.osee.ats.api.user.IAtsUser;
-import org.eclipse.osee.ats.api.util.IAtsChangeSet;
-import org.eclipse.osee.ats.api.workdef.IAtsStateDefinition;
import org.eclipse.osee.ats.api.workflow.IAtsTask;
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;
-import org.eclipse.osee.ats.api.workflow.transition.TransitionOption;
-import org.eclipse.osee.ats.api.workflow.transition.TransitionResults;
import org.eclipse.osee.ats.core.client.action.ActionArtifact;
-import org.eclipse.osee.ats.core.client.internal.AtsClientService;
import org.eclipse.osee.ats.core.client.team.TeamWorkFlowArtifact;
import org.eclipse.osee.ats.core.client.workflow.AbstractWorkflowArtifact;
-import org.eclipse.osee.ats.core.workflow.state.TeamState;
-import org.eclipse.osee.ats.core.workflow.transition.TransitionHelper;
-import org.eclipse.osee.ats.core.workflow.transition.TransitionManager;
import org.eclipse.osee.framework.core.data.IArtifactType;
import org.eclipse.osee.framework.core.model.Branch;
-import org.eclipse.osee.framework.core.util.Result;
import org.eclipse.osee.framework.jdk.core.type.OseeCoreException;
import org.eclipse.osee.framework.jdk.core.type.OseeStateException;
import org.eclipse.osee.framework.jdk.core.util.Strings;
@@ -67,25 +56,6 @@ public class TaskArtifact extends AbstractWorkflowArtifact implements IAtsTask,
}
}
- public Result parentWorkFlowTransitioned(IAtsStateDefinition fromState, IAtsStateDefinition toState, Collection<? extends IAtsUser> toAssignees, IAtsChangeSet changes) throws OseeCoreException {
- if (toState.getName().equals(TeamState.Cancelled.getName()) && isInWork()) {
- TransitionHelper helper =
- new TransitionHelper("Transition to Cancelled", Arrays.asList(this), TaskStates.Cancelled.getName(), null,
- "Parent Cancelled", changes, TransitionOption.None);
- TransitionManager transitionMgr = new TransitionManager(helper);
- TransitionResults results = transitionMgr.handleAll();
-
- if (!results.isEmpty()) {
- return new Result("Transition Error %s", results.toString());
- }
- } else if (fromState.getName().equals(TeamState.Cancelled.getName()) && isCancelled()) {
- Result result =
- TaskManager.transitionToInWork(this, AtsClientService.get().getUserAdmin().getCurrentUser(), 99, 0, changes);
- return result;
- }
- return Result.TrueResult;
- }
-
@Override
public double getManHrsPerDayPreference() throws OseeCoreException {
return getParentAWA().getManHrsPerDayPreference();
diff --git a/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/task/TaskManager.java b/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/task/TaskManager.java
index c7e6d750465..2a920929a19 100644
--- a/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/task/TaskManager.java
+++ b/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/task/TaskManager.java
@@ -21,7 +21,6 @@ import org.eclipse.osee.ats.api.util.IAtsChangeSet;
import org.eclipse.osee.ats.api.workdef.IWorkDefinitionMatch;
import org.eclipse.osee.ats.api.workflow.transition.TransitionOption;
import org.eclipse.osee.ats.api.workflow.transition.TransitionResults;
-import org.eclipse.osee.ats.core.AtsCore;
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.team.TeamWorkFlowArtifact;
@@ -58,7 +57,6 @@ public class TaskManager {
taskArt.getStateMgr().setAssignee(AtsClientService.get().getUserAdmin().getCurrentUser());
}
taskArt.getStateMgr().updateMetrics(taskArt.getStateDefinition(), additionalHours, 100, true);
- AtsCore.getLogFactory().writeToStore(taskArt);
if (estimatedHours > 0.0) {
taskArt.setSoleAttributeValue(AtsAttributeTypes.EstimatedHours, estimatedHours);
}
@@ -93,7 +91,6 @@ public class TaskManager {
}
if (taskArt.getStateMgr().getPercentComplete(taskArt.getCurrentStateName()) != percentComplete || additionalHours > 0) {
taskArt.getStateMgr().updateMetrics(taskArt.getStateDefinition(), additionalHours, percentComplete, true);
- AtsCore.getLogFactory().writeToStore(taskArt);
}
if (changes != null) {
taskArt.saveSMA(changes);
diff --git a/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/team/ITeamWorkflowProviders.java b/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/team/ITeamWorkflowProviders.java
deleted file mode 100644
index 1a10fca4208..00000000000
--- a/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/team/ITeamWorkflowProviders.java
+++ /dev/null
@@ -1,23 +0,0 @@
-/*******************************************************************************
- * 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.client.team;
-
-import java.util.List;
-import org.eclipse.osee.ats.core.client.workflow.ITeamWorkflowProvider;
-
-/**
- * @author Donald G. Dunne
- */
-public interface ITeamWorkflowProviders extends Iterable<ITeamWorkflowProvider> {
-
- List<ITeamWorkflowProvider> getTeamWorkflowProviders();
-
-} \ No newline at end of file
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 e27663d2201..b26cc49ea6c 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
@@ -100,11 +100,6 @@ public class TeamWorkFlowArtifact extends AbstractTaskableArtifact implements IA
}
@Override
- public boolean isValidationRequired() throws OseeCoreException {
- return getSoleAttributeValue(AtsAttributeTypes.ValidationRequired, false);
- }
-
- @Override
public String getEditorTitle() throws OseeCoreException {
try {
if (getTeamDefinition().isTeamUsesVersions()) {
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 88ca0d74851..03590b5de0e 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
@@ -24,17 +24,17 @@ import org.eclipse.osee.ats.api.ai.IAtsActionableItem;
import org.eclipse.osee.ats.api.data.AtsArtifactTypes;
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.team.ITeamWorkflowProviders;
import org.eclipse.osee.ats.api.user.IAtsUser;
import org.eclipse.osee.ats.api.util.IAtsChangeSet;
import org.eclipse.osee.ats.api.workdef.IStateToken;
import org.eclipse.osee.ats.api.workflow.IAtsTeamWorkflow;
import org.eclipse.osee.ats.api.workflow.transition.TransitionOption;
import org.eclipse.osee.ats.api.workflow.transition.TransitionResults;
-import org.eclipse.osee.ats.core.AtsCore;
import org.eclipse.osee.ats.core.client.internal.Activator;
import org.eclipse.osee.ats.core.client.util.AtsUtilCore;
import org.eclipse.osee.ats.core.client.workflow.AbstractWorkflowArtifact;
-import org.eclipse.osee.ats.core.client.workflow.ITeamWorkflowProvider;
import org.eclipse.osee.ats.core.workflow.state.TeamState;
import org.eclipse.osee.ats.core.workflow.transition.TransitionHelper;
import org.eclipse.osee.ats.core.workflow.transition.TransitionManager;
@@ -203,7 +203,6 @@ public class TeamWorkFlowManager {
}
teamArt.setSoleAttributeValue(AtsAttributeTypes.EstimatedHours, hourEstimate);
teamArt.getStateMgr().setMetrics(TeamState.Analyze, stateHoursSpent, statePercentComplete, true, user, date);
- AtsCore.getLogFactory().writeToStore(teamArt);
return Result.TrueResult;
}
@@ -215,7 +214,6 @@ public class TeamWorkFlowManager {
}
}
teamArt.getStateMgr().setMetrics(TeamState.Authorize, stateHoursSpent, statePercentComplete, true, user, date);
- AtsCore.getLogFactory().writeToStore(teamArt);
return Result.TrueResult;
}
@@ -227,7 +225,6 @@ public class TeamWorkFlowManager {
}
}
teamArt.getStateMgr().setMetrics(TeamState.Implement, stateHoursSpent, statePercentComplete, true, user, date);
- AtsCore.getLogFactory().writeToStore(teamArt);
return Result.TrueResult;
}
diff --git a/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/util/AtsChangeSet.java b/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/util/AtsChangeSet.java
index af906490efb..7ff81888189 100644
--- a/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/util/AtsChangeSet.java
+++ b/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/util/AtsChangeSet.java
@@ -16,11 +16,15 @@ import java.util.concurrent.CopyOnWriteArrayList;
import org.eclipse.osee.ats.api.IAtsWorkItem;
import org.eclipse.osee.ats.api.util.IAtsChangeSet;
import org.eclipse.osee.ats.api.util.IExecuteListener;
+import org.eclipse.osee.ats.api.workflow.IAttribute;
import org.eclipse.osee.ats.core.AtsCore;
+import org.eclipse.osee.ats.core.client.internal.AtsClientService;
+import org.eclipse.osee.framework.core.data.IAttributeType;
import org.eclipse.osee.framework.core.util.Conditions;
import org.eclipse.osee.framework.jdk.core.type.OseeArgumentException;
import org.eclipse.osee.framework.jdk.core.type.OseeCoreException;
import org.eclipse.osee.framework.skynet.core.artifact.Artifact;
+import org.eclipse.osee.framework.skynet.core.artifact.Attribute;
import org.eclipse.osee.framework.skynet.core.transaction.SkynetTransaction;
import org.eclipse.osee.framework.skynet.core.transaction.TransactionManager;
@@ -75,7 +79,7 @@ public class AtsChangeSet implements IAtsChangeSet {
AtsCore.getStateFactory().writeToStore(workItem, this);
}
if (workItem.getLog().isDirty()) {
- AtsCore.getLogFactory().writeToStore(workItem);
+ AtsCore.getLogFactory().writeToStore(workItem, AtsClientService.get().getAttributeResolver(), this);
}
}
}
@@ -150,4 +154,62 @@ public class AtsChangeSet implements IAtsChangeSet {
}
changes.execute();
}
+
+ @Override
+ public void deleteSoleAttribute(IAtsWorkItem workItem, IAttributeType attributeType) throws OseeCoreException {
+ Artifact artifact = AtsClientService.get().getArtifact(workItem);
+ artifact.deleteSoleAttribute(attributeType);
+ add(artifact);
+ }
+
+ @Override
+ public void setSoleAttributeValue(IAtsWorkItem workItem, IAttributeType attributeType, String value) throws OseeCoreException {
+ Artifact artifact = AtsClientService.get().getArtifact(workItem);
+ artifact.setSoleAttributeValue(attributeType, value);
+ add(artifact);
+ }
+
+ @Override
+ public void setSoleAttributeValue(IAtsWorkItem workItem, IAttributeType attributeType, Object value) throws OseeCoreException {
+ Artifact artifact = AtsClientService.get().getArtifact(workItem);
+ artifact.setSoleAttributeValue(attributeType, value);
+ add(artifact);
+ }
+
+ @Override
+ public void addAttribute(IAtsWorkItem workItem, IAttributeType attributeType, Object value) throws OseeCoreException {
+ Artifact artifact = AtsClientService.get().getArtifact(workItem);
+ artifact.addAttribute(attributeType, value);
+ add(artifact);
+ }
+
+ @Override
+ public void deleteAttribute(IAtsWorkItem workItem, IAttributeType attributeType, Object value) throws OseeCoreException {
+ Artifact artifact = AtsClientService.get().getArtifact(workItem);
+ artifact.deleteAttribute(attributeType, value);
+ add(artifact);
+ }
+
+ @Override
+ public <T> void setValue(IAtsWorkItem workItem, IAttribute<String> attr, IAttributeType attributeType, T value) throws OseeCoreException {
+ Artifact artifact = AtsClientService.get().getArtifact(workItem);
+ @SuppressWarnings("unchecked")
+ Attribute<T> attribute = (Attribute<T>) attr.getData();
+ attribute.setValue(value);
+ add(artifact);
+ }
+
+ @Override
+ public <T> void deleteAttribute(IAtsWorkItem workItem, IAttribute<T> attr) throws OseeCoreException {
+ Artifact artifact = AtsClientService.get().getArtifact(workItem);
+ Attribute<?> attribute = (Attribute<?>) attr.getData();
+ attribute.delete();
+ add(artifact);
+ }
+
+ @Override
+ public boolean isAttributeTypeValid(IAtsWorkItem workItem, IAttributeType attributeType) {
+ Artifact artifact = AtsClientService.get().getArtifact(workItem);
+ return artifact.getAttributeTypes().contains(attributeType);
+ }
}
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 4aa8bd723b4..dbbd209808f 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
@@ -61,6 +61,7 @@ import org.eclipse.osee.framework.core.enums.PermissionEnum;
import org.eclipse.osee.framework.core.model.Branch;
import org.eclipse.osee.framework.core.services.CmAccessControl;
import org.eclipse.osee.framework.core.services.HasCmAccessControl;
+import org.eclipse.osee.framework.core.util.Conditions;
import org.eclipse.osee.framework.core.util.IGroupExplorerProvider;
import org.eclipse.osee.framework.core.util.Result;
import org.eclipse.osee.framework.jdk.core.type.OseeArgumentException;
@@ -98,11 +99,14 @@ public abstract class AbstractWorkflowArtifact extends AbstractAtsArtifact imple
}
public void initializeNewStateMachine(List<? extends IAtsUser> assignees, Date createdDate, IAtsUser createdBy, IAtsChangeSet changes) throws OseeCoreException {
+ Conditions.checkNotNull(createdDate, "createdDate");
+ Conditions.checkNotNull(createdBy, "createdBy");
+ Conditions.checkNotNull(changes, "changes");
IAtsStateDefinition startState = getWorkDefinition().getStartState();
StateManagerUtility.initializeStateMachine(getStateMgr(), startState, assignees,
(createdBy == null ? AtsClientService.get().getUserAdmin().getCurrentUser() : createdBy), changes);
IAtsUser user = createdBy == null ? AtsClientService.get().getUserAdmin().getCurrentUser() : createdBy;
- setCreatedBy(user, true, createdDate);
+ setCreatedBy(user, true, createdDate, changes);
TransitionManager.logStateStartedEvent(this, startState, createdDate, user);
}
@@ -144,10 +148,6 @@ public abstract class AbstractWorkflowArtifact extends AbstractAtsArtifact imple
return 0;
}
- public boolean isValidationRequired() throws OseeCoreException {
- return false;
- }
-
@Override
public String getDescription() {
return "";
@@ -336,11 +336,7 @@ public abstract class AbstractWorkflowArtifact extends AbstractAtsArtifact imple
getSmaArtifactsOneLevel(this, artifacts);
for (Artifact artifact : artifacts) {
if (artifact instanceof AbstractWorkflowArtifact) {
- AbstractWorkflowArtifact awa = (AbstractWorkflowArtifact) artifact;
changes.add(artifact);
- if (awa.getLog().isDirty()) {
- AtsCore.getLogFactory().writeToStore(awa);
- }
}
}
} catch (Exception ex) {
@@ -406,7 +402,7 @@ public abstract class AbstractWorkflowArtifact extends AbstractAtsArtifact imple
@Override
public IAtsLog getLog() {
if (atsLog == null || atsLogTransactionNumber != getTransactionNumber()) {
- atsLog = AtsCore.getLogFactory().getLogLoaded(this);
+ atsLog = AtsCore.getLogFactory().getLogLoaded(this, AtsClientService.get().getAttributeResolver());
atsLogTransactionNumber = getTransactionNumber();
}
return atsLog;
@@ -489,17 +485,27 @@ public abstract class AbstractWorkflowArtifact extends AbstractAtsArtifact imple
OseeLog.log(Activator.class, OseeLevel.SEVERE_POPUP, ex);
return false;
}
+
}
- public void setCreatedBy(IAtsUser user, boolean logChange, Date date) throws OseeCoreException {
+ public void setCreatedBy(IAtsUser user, boolean logChange, Date date, IAtsChangeSet changes) throws OseeCoreException {
if (logChange) {
logCreatedByChange(user, date);
}
- if (isAttributeTypeValid(AtsAttributeTypes.CreatedBy)) {
- setSoleAttributeValue(AtsAttributeTypes.CreatedBy, user.getUserId());
- }
- if (isAttributeTypeValid(AtsAttributeTypes.CreatedDate)) {
- setSoleAttributeValue(AtsAttributeTypes.CreatedDate, date);
+ if (changes == null) {
+ if (isAttributeTypeValid(AtsAttributeTypes.CreatedBy)) {
+ setSoleAttributeValue(AtsAttributeTypes.CreatedBy, user.getUserId());
+ }
+ if (isAttributeTypeValid(AtsAttributeTypes.CreatedDate)) {
+ setSoleAttributeValue(AtsAttributeTypes.CreatedDate, date);
+ }
+ } else {
+ if (changes.isAttributeTypeValid(this, AtsAttributeTypes.CreatedBy)) {
+ changes.setSoleAttributeValue(this, AtsAttributeTypes.CreatedBy, user.getUserId());
+ }
+ if (changes.isAttributeTypeValid(this, AtsAttributeTypes.CreatedDate)) {
+ changes.setSoleAttributeValue(this, AtsAttributeTypes.CreatedDate, date);
+ }
}
AtsNotificationManager.notify(this, AtsNotifyType.Originator);
}
@@ -512,33 +518,19 @@ public abstract class AbstractWorkflowArtifact extends AbstractAtsArtifact imple
"Changed by " + AtsClientService.get().getUserAdmin().getCurrentUser().getName(), date, user.getUserId());
getLog().internalResetOriginator(user);
}
- AtsCore.getLogFactory().writeToStore(this);
}
- public void setCreatedBy(IAtsUser user, boolean logChange) throws OseeCoreException {
- Date date = new Date();
- if (logChange) {
- logCreatedByChange(user, date);
- }
- if (isAttributeTypeValid(AtsAttributeTypes.CreatedBy)) {
- setSoleAttributeValue(AtsAttributeTypes.CreatedBy, user.getUserId());
- }
- AtsNotificationManager.notify(this, AtsNotifyType.Originator);
- }
-
- public void internalSetCreatedBy(IAtsUser user) throws OseeCoreException {
+ public void internalSetCreatedBy(IAtsUser user, IAtsChangeSet changes) throws OseeCoreException {
getLog().internalResetOriginator(user);
- AtsCore.getLogFactory().writeToStore(this);
- if (isAttributeTypeValid(AtsAttributeTypes.CreatedBy)) {
- setSoleAttributeValue(AtsAttributeTypes.CreatedBy, user.getUserId());
+ if (changes.isAttributeTypeValid(this, AtsAttributeTypes.CreatedBy)) {
+ changes.setSoleAttributeValue(this, AtsAttributeTypes.CreatedBy, user.getUserId());
}
}
- public void internalSetCreatedDate(Date date) throws OseeCoreException {
+ public void internalSetCreatedDate(Date date, IAtsChangeSet changes) throws OseeCoreException {
getLog().internalResetCreatedDate(date);
- AtsCore.getLogFactory().writeToStore(this);
- if (isAttributeTypeValid(AtsAttributeTypes.CreatedDate)) {
- setSoleAttributeValue(AtsAttributeTypes.CreatedDate, date);
+ if (changes.isAttributeTypeValid(this, AtsAttributeTypes.CreatedDate)) {
+ changes.setSoleAttributeValue(this, AtsAttributeTypes.CreatedDate, date);
}
}
@@ -578,8 +570,12 @@ public abstract class AbstractWorkflowArtifact extends AbstractAtsArtifact imple
return reason;
}
- public void setCancellationReason(String reason) throws OseeCoreException {
- setSoleAttributeValue(AtsAttributeTypes.CancelledReason, reason);
+ public void setCancellationReason(String reason, IAtsChangeSet changes) throws OseeCoreException {
+ if (changes == null) {
+ setSoleAttributeValue(AtsAttributeTypes.CancelledReason, reason);
+ } else {
+ changes.setSoleAttributeValue(this, AtsAttributeTypes.CancelledReason, reason);
+ }
}
public String getCancelledFromState() throws OseeCoreException {
@@ -614,15 +610,6 @@ public abstract class AbstractWorkflowArtifact extends AbstractAtsArtifact imple
return getLog().getStateEvent(LogType.StateCancelled, stateName);
}
- @Override
- public IAtsLogItem getStateStartedData(IStateToken state) throws OseeCoreException {
- return getStateStartedData(state.getName());
- }
-
- public IAtsLogItem getStateStartedData(String stateName) throws OseeCoreException {
- return getLog().getStateEvent(LogType.StateEntered, stateName);
- }
-
public String getCompletedFromState() throws OseeCoreException {
String fromState = getSoleAttributeValue(AtsAttributeTypes.CompletedFromState, null);
if (!Strings.isValid(fromState)) {
@@ -774,13 +761,13 @@ public abstract class AbstractWorkflowArtifact extends AbstractAtsArtifact imple
}
@Override
- public void setAtsId(String atsId) throws OseeCoreException {
- setSoleAttributeFromString(AtsAttributeTypes.AtsId, atsId);
+ public void setAtsId(String atsId, IAtsChangeSet changes) throws OseeCoreException {
+ changes.setSoleAttributeValue(this, AtsAttributeTypes.AtsId, atsId);
}
@Override
- public String getTypeName() {
- return getArtifactTypeName();
+ public Object getStoreObject() {
+ return this;
}
}
diff --git a/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/workflow/AtsBranchServiceImpl.java b/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/workflow/AtsBranchServiceImpl.java
index 14202bb9c1e..a0b55326355 100644
--- a/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/workflow/AtsBranchServiceImpl.java
+++ b/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/workflow/AtsBranchServiceImpl.java
@@ -14,6 +14,7 @@ import org.eclipse.osee.ats.api.workflow.IAtsBranchService;
import org.eclipse.osee.ats.api.workflow.IAtsTeamWorkflow;
import org.eclipse.osee.ats.core.client.branch.AtsBranchManagerCore;
import org.eclipse.osee.ats.core.client.team.TeamWorkFlowArtifact;
+import org.eclipse.osee.framework.core.model.Branch;
import org.eclipse.osee.framework.jdk.core.type.OseeCoreException;
/**
@@ -31,4 +32,9 @@ public class AtsBranchServiceImpl implements IAtsBranchService {
return AtsBranchManagerCore.isWorkingBranchInWork(teamWf);
}
+ @Override
+ public Branch getBranch(IAtsTeamWorkflow teamWf) throws OseeCoreException {
+ return AtsBranchManagerCore.getWorkingBranch((TeamWorkFlowArtifact) teamWf);
+ }
+
}
diff --git a/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/workflow/AtsWorkData.java b/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/workflow/AtsWorkData.java
index 4844c6d1208..8ec9f9a8566 100644
--- a/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/workflow/AtsWorkData.java
+++ b/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/workflow/AtsWorkData.java
@@ -15,6 +15,7 @@ import org.eclipse.osee.ats.api.data.AtsAttributeTypes;
import org.eclipse.osee.ats.api.user.IAtsUser;
import org.eclipse.osee.ats.api.workdef.StateType;
import org.eclipse.osee.ats.api.workflow.IAtsWorkData;
+import org.eclipse.osee.ats.core.AtsCore;
import org.eclipse.osee.framework.jdk.core.type.OseeCoreException;
/**
@@ -113,4 +114,19 @@ public class AtsWorkData implements IAtsWorkData {
awa.setSoleAttributeValue(AtsAttributeTypes.CompletedDate, cancelledBy);
}
+ @Override
+ public IAtsUser getCreatedBy() throws OseeCoreException {
+ return AtsCore.getUserService().getUserById(awa.getSoleAttributeValue(AtsAttributeTypes.CreatedBy, ""));
+ }
+
+ @Override
+ public Date getCreatedDate() throws OseeCoreException {
+ return awa.getSoleAttributeValue(AtsAttributeTypes.CreatedDate);
+ }
+
+ @Override
+ public String getArtifactTypeName() throws OseeCoreException {
+ return awa.getArtifactTypeName();
+ }
+
}
diff --git a/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/workflow/ITeamWorkflowProvider.java b/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/workflow/ITeamWorkflowProvider.java
deleted file mode 100644
index ecff4cd7b68..00000000000
--- a/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/workflow/ITeamWorkflowProvider.java
+++ /dev/null
@@ -1,71 +0,0 @@
-/*******************************************************************************
- * 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.core.client.workflow;
-
-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.workflow.IAtsTeamWorkflow;
-import org.eclipse.osee.ats.core.client.team.TeamWorkFlowArtifact;
-import org.eclipse.osee.framework.core.data.IArtifactType;
-import org.eclipse.osee.framework.jdk.core.type.OseeCoreException;
-
-/**
- * @author Donald G. Dunne
- */
-public interface ITeamWorkflowProvider {
-
- /**
- * Return true if this class/plugin is responsible for the creation of the Team Workflow that will be created for the
- * given Team Definition. This should be a light-weight check.
- *
- * @param teamDef related to the workflow to be created
- * @param actionableItems that were selected for the creation
- * @return true if responsible, false if not
- */
- public boolean isResponsibleForTeamWorkflowCreation(IAtsTeamDefinition teamDef, Collection<IAtsActionableItem> actionableItems) throws OseeCoreException;
-
- /**
- * Same as @link getTeamWorkflowArtifactName() but returns the IArtifactType instead of String name.
- */
- public IArtifactType getTeamWorkflowArtifactType(IAtsTeamDefinition teamDef, Collection<IAtsActionableItem> actionableItems) throws OseeCoreException;
-
- /**
- * Notification that a teamWorkflow is being duplicated. This allows the extension to do necessary changes to
- * duplicated workflow.
- */
- public void teamWorkflowDuplicating(TeamWorkFlowArtifact teamArt, TeamWorkFlowArtifact dupTeamArt) throws OseeCoreException;
-
- /**
- * Notification that a teamWorkflow was created. This allows the extension to do necessary initial tasks after the
- * team workflow artifact is created. All changes made to dupTeamArt will be persisted after this call.
- */
- public void teamWorkflowCreated(TeamWorkFlowArtifact teamArt);
-
- public String getWorkflowDefinitionId(IAtsWorkItem workItem) throws OseeCoreException;
-
- public String getRelatedTaskWorkflowDefinitionId(IAtsTeamWorkflow teamWf) throws OseeCoreException;
-
- /**
- * Assigned or computed Id that will show at the top of the editor
- */
- public String getPcrId(TeamWorkFlowArtifact teamArt) throws OseeCoreException;
-
- /**
- * 5-9 character short name for UI and display purposes
- */
- public String getArtifactTypeShortName(TeamWorkFlowArtifact teamArt);
-
- public String getBranchName(TeamWorkFlowArtifact teamArt);
-
- public boolean isResponsibleFor(AbstractWorkflowArtifact awa);
-}
diff --git a/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/workflow/log/ArtifactLog.java b/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/workflow/log/ArtifactLog.java
deleted file mode 100644
index 9431ad1c443..00000000000
--- a/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/workflow/log/ArtifactLog.java
+++ /dev/null
@@ -1,96 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2010 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.workflow.log;
-
-import java.lang.ref.WeakReference;
-import java.util.logging.Level;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.osee.ats.api.data.AtsAttributeTypes;
-import org.eclipse.osee.ats.api.user.IAtsUser;
-import org.eclipse.osee.ats.api.workflow.log.ILogStorageProvider;
-import org.eclipse.osee.ats.core.AtsCore;
-import org.eclipse.osee.ats.core.client.internal.Activator;
-import org.eclipse.osee.ats.core.client.util.AtsUtilCore;
-import org.eclipse.osee.framework.jdk.core.type.OseeCoreException;
-import org.eclipse.osee.framework.jdk.core.type.OseeStateException;
-import org.eclipse.osee.framework.logging.OseeLog;
-import org.eclipse.osee.framework.skynet.core.artifact.Artifact;
-
-/**
- * @author Donald G. Dunne
- */
-public class ArtifactLog implements ILogStorageProvider {
- private final WeakReference<Artifact> artifactRef;
-
- public ArtifactLog(Artifact artifact) {
- this.artifactRef = new WeakReference<Artifact>(artifact);
- }
-
- @Override
- public String getLogXml() {
- try {
- return getArtifact().getSoleAttributeValue(AtsAttributeTypes.Log, "");
- } catch (OseeCoreException ex) {
- OseeLog.log(Activator.class, Level.SEVERE, ex);
- return "getLogXml exception " + ex.getLocalizedMessage();
- }
- }
-
- @Override
- public IStatus saveLogXml(String xml) {
- try {
- getArtifact().setSoleAttributeValue(AtsAttributeTypes.Log, xml);
- return Status.OK_STATUS;
- } catch (OseeCoreException ex) {
- OseeLog.log(Activator.class, Level.SEVERE, ex);
- return new Status(IStatus.ERROR, Activator.PLUGIN_ID, "saveLogXml exception " + ex.getLocalizedMessage());
- }
- }
-
- public Artifact getArtifact() throws OseeStateException {
- if (artifactRef.get() == null) {
- throw new OseeStateException("Artifact has been garbage collected");
- }
- return artifactRef.get();
- }
-
- @Override
- public String getLogTitle() {
- try {
- return "History for \"" + getArtifact().getArtifactTypeName() + "\" - " + getLogId() + " - titled \"" + getArtifact().getName() + "\"";
- } catch (OseeCoreException ex) {
- OseeLog.log(Activator.class, Level.SEVERE, ex);
- return "getLogTitle exception " + ex.getLocalizedMessage();
- }
- }
-
- @Override
- public String getLogId() {
- try {
- return AtsUtilCore.getAtsId(getArtifact());
- } catch (OseeCoreException ex) {
- OseeLog.log(Activator.class, Level.SEVERE, ex);
- }
- return "unknown";
- }
-
- @Override
- public String getNameFromUserId(String userId) {
- String name = "unknown (" + userId + ")";
- IAtsUser user = AtsCore.getUserService().getUserById(userId);
- if (user != null) {
- name = user.getName();
- }
- return name;
- }
-
-}
diff --git a/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/workflow/transition/TransitionHelperAdapter.java b/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/workflow/transition/TransitionHelperAdapter.java
index f84d425b89f..36ec539f556 100644
--- a/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/workflow/transition/TransitionHelperAdapter.java
+++ b/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/workflow/transition/TransitionHelperAdapter.java
@@ -11,17 +11,21 @@
package org.eclipse.osee.ats.core.client.workflow.transition;
import org.eclipse.osee.ats.api.IAtsWorkItem;
+import org.eclipse.osee.ats.api.user.IAtsUser;
import org.eclipse.osee.ats.api.workflow.IAtsTeamWorkflow;
import org.eclipse.osee.ats.api.workflow.transition.ITransitionHelper;
import org.eclipse.osee.ats.core.AtsCore;
import org.eclipse.osee.ats.core.users.AtsCoreUsers;
import org.eclipse.osee.framework.jdk.core.type.OseeCoreException;
+import org.eclipse.osee.framework.jdk.core.type.OseeStateException;
/**
* @author Donald G. Dunne
*/
public abstract class TransitionHelperAdapter implements ITransitionHelper {
+ IAtsUser transitionUser;
+
@Override
public boolean isPrivilegedEditEnabled() {
return false;
@@ -49,7 +53,7 @@ public abstract class TransitionHelperAdapter implements ITransitionHelper {
@Override
public boolean isSystemUser() throws OseeCoreException {
- return AtsCoreUsers.isAtsCoreUser(AtsCore.getUserService().getCurrentUser());
+ return AtsCoreUsers.isAtsCoreUser(getTransitionUser());
}
@Override
@@ -57,4 +61,19 @@ public abstract class TransitionHelperAdapter implements ITransitionHelper {
return workItem.getStateMgr().getAssignees().contains(AtsCoreUsers.GUEST_USER) || workItem.getStateMgr().getAssignees().contains(
AtsCoreUsers.SYSTEM_USER);
}
+
+ @Override
+ public IAtsUser getTransitionUser() throws OseeStateException, OseeCoreException {
+ IAtsUser user = transitionUser;
+ if (user == null) {
+ user = AtsCore.getUserService().getCurrentUser();
+ }
+ return user;
+ }
+
+ @Override
+ public void setTransitionUser(IAtsUser user) throws OseeCoreException {
+ transitionUser = user;
+ }
+
}

Back to the top