diff --git a/src/main/java/org/spdx/storage/listedlicense/ExceptionJsonTOC.java b/src/main/java/org/spdx/storage/listedlicense/ExceptionJsonTOC.java index c94e3b60..5cb8abd7 100644 --- a/src/main/java/org/spdx/storage/listedlicense/ExceptionJsonTOC.java +++ b/src/main/java/org/spdx/storage/listedlicense/ExceptionJsonTOC.java @@ -283,4 +283,11 @@ public void setReleaseDate(String releaseDate) { this.releaseDate = releaseDate; } + /** + * Sort the exceptions list by licenseExceptionId. + */ + public void sort() { + exceptions.sort((e1, e2) -> e1.getLicenseExceptionId().compareToIgnoreCase(e2.getLicenseExceptionId())); + } + } diff --git a/src/main/java/org/spdx/storage/listedlicense/LicenseJson.java b/src/main/java/org/spdx/storage/listedlicense/LicenseJson.java index c6c7469a..9136f4ad 100644 --- a/src/main/java/org/spdx/storage/listedlicense/LicenseJson.java +++ b/src/main/java/org/spdx/storage/listedlicense/LicenseJson.java @@ -19,6 +19,7 @@ import java.util.ArrayList; import java.util.Collections; +import java.util.Comparator; import java.util.HashMap; import java.util.HashSet; import java.util.List; @@ -557,4 +558,14 @@ public List getPropertyValueDescriptors() { }); return retval; } + + /** + * Sort the crossRef list by order, with URL as a secondary sort key for + * entries with no order set. + */ + public void sortCrossRef() { + crossRef.sort(Comparator + .comparingInt((CrossRefJson c) -> c.order != null ? c.order : Integer.MAX_VALUE) + .thenComparing(c -> c.url != null ? c.url : "")); + } } diff --git a/src/main/java/org/spdx/storage/listedlicense/LicenseJsonTOC.java b/src/main/java/org/spdx/storage/listedlicense/LicenseJsonTOC.java index 0765996d..01a81f7f 100644 --- a/src/main/java/org/spdx/storage/listedlicense/LicenseJsonTOC.java +++ b/src/main/java/org/spdx/storage/listedlicense/LicenseJsonTOC.java @@ -251,6 +251,13 @@ public void setReleaseDate(String releaseDate) { this.releaseDate = releaseDate; } + /** + * Sort the licenses list by licenseId. + */ + public void sort() { + licenses.sort((l1, l2) -> l1.getLicenseId().compareToIgnoreCase(l2.getLicenseId())); + } + protected static String toAbsoluteURL(String relURL) { String retval = relURL.startsWith("./") ? relURL.substring(2) : relURL; return SpdxConstantsCompatV2.LISTED_LICENSE_URL + retval;