Skip to content

Commit

Permalink
#98 NPE on null source or target elements of AbstractRelation
Browse files Browse the repository at this point in the history
Add check to prevent NPE

Change-Id: Ie15824da7ff3ec0bc5d25f8aa3792977c5d29fbd
Signed-off-by: Arnaud Dieumegard <arnaud.dieumegard@obeo.fr>
  • Loading branch information
arnauddieumegard authored and pdulth committed Mar 26, 2021
1 parent 05a3dd4 commit a7e9c94
Show file tree
Hide file tree
Showing 2 changed files with 21 additions and 9 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -148,16 +148,27 @@ public static String generateRequirementInternalAllocationSection(Requirement re
}
String relationTypeName = getRelationTypeName(relation);
Requirement target = ((InternalRelation) relation).getTarget();
String hyperlinkFromElement = RequirementsServices.getHyperlinkFromElement(target);
String imageLinkFromElmeent = RequirementsServices.getImageLinkFromElement(target, projectName, outputFolder);
sb.append(genTableRow(false, imageLinkFromElmeent + " " + hyperlinkFromElement, relationTypeName));
String linkFromElement = getImageHyperlinkFromElement(target, projectName, outputFolder, RequirementsServices.NO_TARGET_DEFINED);
sb.append(genTableRow(false, linkFromElement, relationTypeName));
}
}
sb.append(RequirementsServices.TABLE_CLOSE);
}

return sb.toString();
}

private static String getImageHyperlinkFromElement (EObject target, String projectName, String outputFolder, String defaultValue) {
String linkFromElement = "";
if (target != null) {
String hyperlinkFromElement = RequirementsServices.getHyperlinkFromElement(target);
String imageLinkFromElement = RequirementsServices.getImageLinkFromElement(target, projectName, outputFolder);
linkFromElement = imageLinkFromElement + " " + hyperlinkFromElement;
} else {
linkFromElement = defaultValue;
}
return linkFromElement;
}

public static String generateRequirementsAllocationSection(Requirement requirement, String projectName,
String folderName) {
Expand Down Expand Up @@ -199,9 +210,8 @@ public static String generateRequirementsIncomingAllocation(List<EObject> incomi
for (EObject eObject : incomingRelations) {
String relationTypeName = getRelationTypeName((AbstractRelation) eObject);
CapellaElement source = ((CapellaOutgoingRelation) eObject).getSource();
String imageLinkFromElement = RequirementsServices.getImageLinkFromElement(source, projectName, folderName);
String hyperlinkFromElement = RequirementsServices.getHyperlinkFromElement(source);
builder.append(genTableRow(false, imageLinkFromElement + " " + hyperlinkFromElement, relationTypeName));
String linkFromElement = getImageHyperlinkFromElement(source, projectName, folderName, RequirementsServices.NO_SOURCE_DEFINED);
builder.append(genTableRow(false, linkFromElement, relationTypeName));
}
builder.append(RequirementsServices.TABLE_CLOSE).append("</div>");
}
Expand All @@ -220,9 +230,8 @@ public static String generateRequirementsOutgoingAllocation(List<EObject> outgoi
for (EObject eObject : outgoingRelations) {
String relationTypeName = getRelationTypeName((AbstractRelation) eObject);
CapellaElement target = ((CapellaIncomingRelation) eObject).getTarget();
String imageLinkFromElement = RequirementsServices.getImageLinkFromElement(target, projectName, folderName);
String hyperlinkFromElement = RequirementsServices.getHyperlinkFromElement(target);
builder.append(genTableRow(false, imageLinkFromElement + " " + hyperlinkFromElement, relationTypeName));
String linkFromElement = getImageHyperlinkFromElement(target, projectName, folderName, RequirementsServices.NO_TARGET_DEFINED);
builder.append(genTableRow(false, linkFromElement, relationTypeName));
}
builder.append(RequirementsServices.TABLE_CLOSE).append("</div>");
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -72,6 +72,9 @@ public class RequirementsServices {
private static final String PATH_COMPLETE = ".html";
public static final String LINE_BREAK = "<br/>";

public static final String NO_SOURCE_DEFINED = "No source defined";
public static final String NO_TARGET_DEFINED = "No target defined";

public static Set<DSemanticDiagram> getDiagramContainingObject(ReqIFElement element) {
Set<DSemanticDiagram> diagrams = new HashSet<DSemanticDiagram>();
if (!DocgenDiagramPreferencesHelper.getExportDiagram()) {
Expand Down

0 comments on commit a7e9c94

Please sign in to comment.