diff options
author | donald.g.dunne | 2015-02-23 22:53:57 +0000 |
---|---|---|
committer | Ryan T. Baldwin | 2015-02-23 22:53:57 +0000 |
commit | fe2ece20a23791d3bf8593ec22da350c1c8d4a84 (patch) | |
tree | 33083c8449fc0d5727ea43e622aee1c9a9f8bc00 /plugins/org.eclipse.osee.ats.impl/src/org/eclipse/osee/ats/impl/internal/agile/AgileItemWriter.java | |
parent | bfe770709c8f93f2577b7fda83b7aa2be667bc44 (diff) | |
download | org.eclipse.osee-fe2ece20a23791d3bf8593ec22da350c1c8d4a84.tar.gz org.eclipse.osee-fe2ece20a23791d3bf8593ec22da350c1c8d4a84.tar.xz org.eclipse.osee-fe2ece20a23791d3bf8593ec22da350c1c8d4a84.zip |
feature[ats_ATS124191]: Agile - Modularize AgileService and SprintColumn
Change-Id: Ib5088a3d1697afc35e2253f88fdf021fe030cec9
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.java | 83 |
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; + } +} |