Skip to content

Commit

Permalink
improved version specific extension rendering
Browse files Browse the repository at this point in the history
  • Loading branch information
Grahame Grieve committed Jan 9, 2025
1 parent ff4aef6 commit 27a1d2c
Show file tree
Hide file tree
Showing 2 changed files with 25 additions and 15 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -2615,6 +2615,11 @@ public String useContext() throws IOException {
li.tx(c.getExpression());
break;
}
if (c.hasExtension(ToolingExtensions.EXT_FHIRVERSION_SPECIFIC_USE)) {
li.tx(" (");
renderVersionRange(c.getExtensionByUrl(ToolingExtensions.EXT_FHIRVERSION_SPECIFIC_USE), li);
li.tx(")");
}
}
}
if (sd.hasContextInvariant()) {
Expand All @@ -2629,26 +2634,31 @@ public String useContext() throws IOException {
}
}
}
if (sd.hasExtension(ToolingExtensions.EXT_EARLIEST_FHIR_VERSION) || sd.hasExtension(ToolingExtensions.EXT_LATEST_FHIR_VERSION)) {
if (sd.hasExtension(ToolingExtensions.EXT_FHIRVERSION_SPECIFIC_USE)) {
var p = div.para();
if (!sd.hasExtension(ToolingExtensions.EXT_EARLIEST_FHIR_VERSION)) {
p.tx("This extension is allowed for use with FHIR versions up to ");
linkToVersion(p, ToolingExtensions.readStringExtension(sd, ToolingExtensions.EXT_LATEST_FHIR_VERSION));
} else if (!sd.hasExtension(ToolingExtensions.EXT_LATEST_FHIR_VERSION)) {
p.tx("This extension is allowed for use with FHIR version ");
linkToVersion(p, ToolingExtensions.readStringExtension(sd, ToolingExtensions.EXT_EARLIEST_FHIR_VERSION));
p.tx(" and after");
} else {
p.tx("This extension is allowed for use with FHIR versions ");
linkToVersion(p, ToolingExtensions.readStringExtension(sd, ToolingExtensions.EXT_EARLIEST_FHIR_VERSION));
p.tx(" to ");
linkToVersion(p, ToolingExtensions.readStringExtension(sd, ToolingExtensions.EXT_LATEST_FHIR_VERSION));
}
p.tx("This extension is allowed for use with ");
renderVersionRange(sd.getExtensionByUrl(ToolingExtensions.EXT_FHIRVERSION_SPECIFIC_USE), p);
p.tx(".");
}
return new XhtmlComposer(false, true).compose(div.getChildNodes());
}

public void renderVersionRange(Extension ext, XhtmlNode li) {
if (!ext.hasExtension(ToolingExtensions.EXT_FHIRVERSION_SPECIFIC_USE_START)) {
li.tx("FHIR versions up to ");
linkToVersion(li, ToolingExtensions.readStringExtension(ext, ToolingExtensions.EXT_FHIRVERSION_SPECIFIC_USE_END));
} else if (!ext.hasExtension(ToolingExtensions.EXT_FHIRVERSION_SPECIFIC_USE_END)) {
li.tx("FHIR versions ");
linkToVersion(li, ToolingExtensions.readStringExtension(ext, ToolingExtensions.EXT_FHIRVERSION_SPECIFIC_USE_START));
li.tx(" and after");
} else {
li.tx("FHIR versions ");
linkToVersion(li, ToolingExtensions.readStringExtension(ext, ToolingExtensions.EXT_FHIRVERSION_SPECIFIC_USE_START));
li.tx(" to ");
linkToVersion(li, ToolingExtensions.readStringExtension(ext, ToolingExtensions.EXT_FHIRVERSION_SPECIFIC_USE_END));
}
}

private void linkToVersion(XhtmlNode p, String version) {
String url = VersionUtilities.getSpecUrl(version);
p.ahOrNot(url).b().tx(VersionUtilities.getNameForVersion(version));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1138,7 +1138,7 @@ public static List<ValidationMessage> filterMessages(List<ValidationMessage> mes

private final String detailsTemplate =
" <tr style=\"background-color: $color$\">\r\n"+
" <td><b>$path$</b></td><td><b>$level$</b></td><td title=\"$mid$\"><b>$msg$</b>$comment$</td>\r\n"+
" <td><b>$path$</b></td><td><b>$level$</b></td><td><b>$msg$</b>$comment$ <span style=\"font-size: 8px; font-color: silver\">$mid$</span></td>\r\n"+
" </tr>\r\n";

private final String groupDetailsTemplate =
Expand Down

0 comments on commit 27a1d2c

Please sign in to comment.