Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authordonald.g.dunne2015-02-23 22:53:57 +0000
committerRyan T. Baldwin2015-02-23 22:53:57 +0000
commitfe2ece20a23791d3bf8593ec22da350c1c8d4a84 (patch)
tree33083c8449fc0d5727ea43e622aee1c9a9f8bc00 /plugins/org.eclipse.osee.ats.impl/src/org/eclipse/osee/ats/impl/internal/agile/AgileItemWriter.java
parentbfe770709c8f93f2577b7fda83b7aa2be667bc44 (diff)
downloadorg.eclipse.osee-fe2ece20a23791d3bf8593ec22da350c1c8d4a84.tar.gz
org.eclipse.osee-fe2ece20a23791d3bf8593ec22da350c1c8d4a84.tar.xz
org.eclipse.osee-fe2ece20a23791d3bf8593ec22da350c1c8d4a84.zip
feature[ats_ATS124191]: Agile - Modularize AgileService and SprintColumn
Diffstat (limited to 'plugins/org.eclipse.osee.ats.impl/src/org/eclipse/osee/ats/impl/internal/agile/AgileItemWriter.java')
-rw-r--r--plugins/org.eclipse.osee.ats.impl/src/org/eclipse/osee/ats/impl/internal/agile/AgileItemWriter.java83
1 files changed, 83 insertions, 0 deletions
diff --git a/plugins/org.eclipse.osee.ats.impl/src/org/eclipse/osee/ats/impl/internal/agile/AgileItemWriter.java b/plugins/org.eclipse.osee.ats.impl/src/org/eclipse/osee/ats/impl/internal/agile/AgileItemWriter.java
new file mode 100644
index 00000000000..f3b2b43c743
--- /dev/null
+++ b/plugins/org.eclipse.osee.ats.impl/src/org/eclipse/osee/ats/impl/internal/agile/AgileItemWriter.java
@@ -0,0 +1,83 @@
+/*******************************************************************************
+ * Copyright (c) 2015 Boeing.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Boeing - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.osee.ats.impl.internal.agile;
+
+import java.util.Collection;
+import java.util.LinkedList;
+import java.util.List;
+import org.eclipse.osee.ats.api.agile.IAgileFeatureGroup;
+import org.eclipse.osee.ats.api.agile.IAgileService;
+import org.eclipse.osee.ats.api.agile.IAgileSprint;
+import org.eclipse.osee.ats.api.agile.JaxAgileItem;
+import org.eclipse.osee.ats.api.data.AtsRelationTypes;
+import org.eclipse.osee.ats.core.users.AtsCoreUsers;
+import org.eclipse.osee.ats.impl.IAtsServer;
+import org.eclipse.osee.ats.impl.internal.util.AtsChangeSet;
+import org.eclipse.osee.orcs.data.ArtifactReadable;
+
+/**
+ * @author Donald G. Dunne
+ */
+public class AgileItemWriter {
+
+ private final IAtsServer atsServer;
+ private final JaxAgileItem newItem;
+ private final IAgileService agileService;
+
+ public AgileItemWriter(IAtsServer atsServer, IAgileService agileService, JaxAgileItem newItem) {
+ this.atsServer = atsServer;
+ this.agileService = agileService;
+ this.newItem = newItem;
+ }
+
+ public JaxAgileItem write() {
+ AtsChangeSet changes =
+ (AtsChangeSet) atsServer.getStoreFactory().createAtsChangeSet("Update new Agile Item",
+ AtsCoreUsers.SYSTEM_USER);
+
+ if (newItem.isSetFeatures()) {
+ Collection<IAgileFeatureGroup> features = agileService.getAgileFeatureGroups(newItem.getFeatures());
+ List<ArtifactReadable> featureArts = new LinkedList<ArtifactReadable>();
+ for (IAgileFeatureGroup feature : features) {
+ featureArts.add((ArtifactReadable) feature.getStoreObject());
+ }
+ for (ArtifactReadable awa : atsServer.getArtifacts(newItem.getUuids())) {
+ for (IAgileFeatureGroup feature : features) {
+ ArtifactReadable featureArt = (ArtifactReadable) feature.getStoreObject();
+ if (!featureArt.areRelated(AtsRelationTypes.AgileFeatureToItem_FeatureGroup, awa)) {
+ changes.relate(feature, AtsRelationTypes.AgileFeatureToItem_AtsItem, awa);
+ }
+ }
+ for (ArtifactReadable featureArt : awa.getRelated(AtsRelationTypes.AgileFeatureToItem_FeatureGroup)) {
+ if (!featureArts.contains(featureArt)) {
+ changes.unrelate(featureArt, AtsRelationTypes.AgileFeatureToItem_AtsItem, awa);
+ }
+ }
+ }
+ }
+
+ if (newItem.isSetSprint()) {
+ IAgileSprint sprint = atsServer.getAgileService().getAgileSprint(newItem.getSprintUuid());
+ for (ArtifactReadable awa : atsServer.getArtifacts(newItem.getUuids())) {
+ if (sprint != null) {
+ changes.setRelation(awa, AtsRelationTypes.AgileSprintToItem_Sprint, sprint);
+ } else {
+ changes.unrelateAll(awa, AtsRelationTypes.AgileSprintToItem_Sprint);
+ }
+ changes.add(sprint);
+ }
+ }
+ if (!changes.isEmpty()) {
+ changes.execute();
+ }
+ return newItem;
+ }
+}

Back to the top