diff options
author | ddunne | 2011-01-11 19:49:41 +0000 |
---|---|---|
committer | Ryan D. Brooks | 2011-01-11 19:49:41 +0000 |
commit | f5afbdab25225f8f5ee3567a2b4bf5323e125378 (patch) | |
tree | c2194a2c51798f19751701e3cc8474aecb8992df | |
parent | 308170549d4fee6f6da6d8e6879f2cf0dda4d5bb (diff) | |
download | org.eclipse.osee-f5afbdab25225f8f5ee3567a2b4bf5323e125378.tar.gz org.eclipse.osee-f5afbdab25225f8f5ee3567a2b4bf5323e125378.tar.xz org.eclipse.osee-f5afbdab25225f8f5ee3567a2b4bf5323e125378.zip |
feature: Improve Action import to check and resolve team versions
-rw-r--r-- | plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/util/Import/ExcelAtsActionArtifactExtractor.java | 26 |
1 files changed, 20 insertions, 6 deletions
diff --git a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/util/Import/ExcelAtsActionArtifactExtractor.java b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/util/Import/ExcelAtsActionArtifactExtractor.java index 8529102eafc..f988df6f4b1 100644 --- a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/util/Import/ExcelAtsActionArtifactExtractor.java +++ b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/util/Import/ExcelAtsActionArtifactExtractor.java @@ -31,6 +31,7 @@ import org.eclipse.osee.ats.artifact.ActionableItemArtifact; import org.eclipse.osee.ats.artifact.AtsAttributeTypes; import org.eclipse.osee.ats.artifact.TeamDefinitionArtifact; import org.eclipse.osee.ats.artifact.TeamWorkFlowArtifact; +import org.eclipse.osee.ats.artifact.VersionArtifact; import org.eclipse.osee.ats.config.AtsCacheManager; import org.eclipse.osee.ats.internal.AtsPlugin; import org.eclipse.osee.ats.util.ActionManager; @@ -38,6 +39,7 @@ import org.eclipse.osee.ats.util.AtsArtifactTypes; import org.eclipse.osee.ats.util.AtsNotifyUsers; import org.eclipse.osee.ats.util.AtsRelationTypes; import org.eclipse.osee.ats.util.AtsUtil; +import org.eclipse.osee.framework.core.exception.OseeArgumentException; import org.eclipse.osee.framework.core.exception.OseeCoreException; import org.eclipse.osee.framework.core.exception.OseeExceptions; import org.eclipse.osee.framework.core.exception.UserNotInDatabase; @@ -84,6 +86,7 @@ public class ExcelAtsActionArtifactExtractor { if (aData.title.equals("")) { rd.logError("Row " + rowNum + "; Invalid Title"); } + Set<TeamDefinitionArtifact> teamDefs = new HashSet<TeamDefinitionArtifact>(); if (aData.actionableItems.isEmpty()) { rd.logError("Row " + rowNum + ": Must have at least one ActionableItem defined"); } else { @@ -97,8 +100,7 @@ public class ExcelAtsActionArtifactExtractor { rd.logError("Row " + rowNum + ": Duplicate actionable items found with name \"" + actionableItemName + "\""); } ActionableItemArtifact aia = (ActionableItemArtifact) aias.iterator().next(); - Collection<TeamDefinitionArtifact> teamDefs = - ActionableItemArtifact.getImpactedTeamDefs(Arrays.asList(aia)); + teamDefs.addAll(ActionableItemArtifact.getImpactedTeamDefs(Arrays.asList(aia))); if (teamDefs.size() == 0) { rd.logError("Row " + rowNum + ": No related Team Definition for Actionable Item\"" + actionableItemName + "\""); } else if (teamDefs.size() > 1) { @@ -113,8 +115,15 @@ public class ExcelAtsActionArtifactExtractor { } if (!aData.version.equals("")) { try { - if (AtsCacheManager.getSoleArtifactByName(AtsArtifactTypes.Version, aData.version) == null) { - rd.logError("Row " + rowNum + ": Can't find single version \"" + aData.version + "\""); + for (TeamDefinitionArtifact teamDef : teamDefs) { + if (teamDef.getTeamDefinitionHoldingVersions() == null) { + rd.logErrorWithFormat("No Team Definitions Holding Versions found for Team Definition [%s]", + teamDef); + } + if (teamDef.getTeamDefinitionHoldingVersions().getVersionArtifact(aData.version, false) == null) { + rd.logErrorWithFormat("No version [%s] configured for Team Definition [%s]", aData.version, + teamDef); + } } } catch (Exception ex) { rd.logError("Row " + rowNum + " - " + ex.getLocalizedMessage()); @@ -177,9 +186,14 @@ public class ExcelAtsActionArtifactExtractor { } } if (!aData.version.equals("")) { - Artifact verArt = AtsCacheManager.getSoleArtifactByName(AtsArtifactTypes.Version, aData.version); - for (TeamWorkFlowArtifact team : newTeamArts) { + VersionArtifact verArt = + team.getTeamDefinition().getTeamDefinitionHoldingVersions().getVersionArtifact(aData.version, + false); + if (verArt == null) { + throw new OseeArgumentException("No version [%s] configured for Team Definition [%s]", + aData.version, team.getTeamDefinition()); + } verArt.addRelation(AtsRelationTypes.TeamWorkflowTargetedForVersion_Workflow, team); } } |