diff options
Diffstat (limited to 'plugins/org.eclipse.osee.define/src/org/eclipse/osee/define/blam/operation/SystemSubsystemReport.java')
-rw-r--r-- | plugins/org.eclipse.osee.define/src/org/eclipse/osee/define/blam/operation/SystemSubsystemReport.java | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/plugins/org.eclipse.osee.define/src/org/eclipse/osee/define/blam/operation/SystemSubsystemReport.java b/plugins/org.eclipse.osee.define/src/org/eclipse/osee/define/blam/operation/SystemSubsystemReport.java index 5bc000a8d49..8c37a96dc88 100644 --- a/plugins/org.eclipse.osee.define/src/org/eclipse/osee/define/blam/operation/SystemSubsystemReport.java +++ b/plugins/org.eclipse.osee.define/src/org/eclipse/osee/define/blam/operation/SystemSubsystemReport.java @@ -298,18 +298,19 @@ public class SystemSubsystemReport extends AbstractBlam { if (artifact.isOfType(CoreArtifactTypes.SubsystemRequirementMSWord)) { + boolean isRelated = false; List<Artifact> relatedArtifacts = artifact.getRelatedArtifacts(CoreRelationTypes.Allocation__Component); if (relatedArtifacts != null && !relatedArtifacts.isEmpty()) { ViewIdUtility.removeExcludedArtifacts(relatedArtifacts.iterator(), findExcludedArtifactsByView); + isRelated = true; } for (Artifact component : relatedArtifacts) { components.add(component); row[2] = component.getName(); excelWriter.writeRow(row); - row[0] = row[1] = null; } - if (row[0] != null) { // if this requirement has no allocated components (i.e. the for loop didn't run) + if (row[0] != null && !isRelated) { // if this requirement has no allocated components (i.e. the for loop didn't run) row[2] = null; excelWriter.writeRow(row); } @@ -418,19 +419,20 @@ public class SystemSubsystemReport extends AbstractBlam { row[0] = sysReq.getSoleAttributeValue(CoreAttributeTypes.ParagraphNumber, ""); row[1] = sysReq.getName(); + boolean isRelated = false; List<Artifact> relatedArtifacts = sysReq.getRelatedArtifacts(CoreRelationTypes.Requirement_Trace__Lower_Level); if (relatedArtifacts != null && !relatedArtifacts.isEmpty()) { ViewIdUtility.removeExcludedArtifacts(relatedArtifacts.iterator(), findExcludedArtifactsByView); + isRelated = true; } for (Artifact subSysReq : relatedArtifacts) { if (subsysReqs.contains(subSysReq)) { row[2] = subSysReq.getSoleAttributeValue(CoreAttributeTypes.ParagraphNumber, ""); row[3] = subSysReq.getName(); excelWriter.writeRow(row); - row[0] = row[1] = null; } } - if (row[0] != null) { // if this requirement is not traced to any subsys req (i.e. the condition in the for loop didn't run) + if (row[0] != null && !isRelated) { // if this requirement is not traced to any subsys req (i.e. the condition in the for loop didn't run) row[2] = row[3] = null; excelWriter.writeRow(row); } @@ -466,18 +468,20 @@ public class SystemSubsystemReport extends AbstractBlam { row[2] = "N/A: " + subsysReq.getArtifactTypeName(); } + boolean isRelated = false; List<Artifact> relatedArtifacts = subsysReq.getRelatedArtifacts(CoreRelationTypes.Requirement_Trace__Higher_Level); if (relatedArtifacts != null && !relatedArtifacts.isEmpty()) { ViewIdUtility.removeExcludedArtifacts(relatedArtifacts.iterator(), findExcludedArtifactsByView); + isRelated = true; } + for (Artifact subSysReq : relatedArtifacts) { row[3] = subSysReq.getSoleAttributeValue(CoreAttributeTypes.ParagraphNumber, ""); row[4] = subSysReq.getName(); excelWriter.writeRow(row); - row[0] = row[1] = row[2] = null; } - if (row[0] != null) { // if this requirement is not traced to any sys req (i.e. the for loop didn't run) + if (row[0] != null && !isRelated) { // if this requirement is not traced to any sys req (i.e. the for loop didn't run) row[3] = row[4] = null; excelWriter.writeRow(row); } |