001package org.hl7.fhir.r5.utils;
002
003import java.util.Comparator;
004
005import org.hl7.fhir.r5.model.CanonicalResource;
006import org.hl7.fhir.utilities.MarkedToMoveToAdjunctPackage;
007
008@MarkedToMoveToAdjunctPackage
009public class ResourceSorters {
010
011  public static class CanonicalResourceSortByUrl implements Comparator<CanonicalResource> {
012
013    @Override
014    public int compare(CanonicalResource arg0, CanonicalResource arg1) {
015      if (arg0.getUrl() != null && arg1.getUrl() != null) {
016        return arg0.getUrl().compareTo(arg1.getUrl());        
017      } else if (arg1.getUrl() != null) {
018        return -1;        
019      } else if (arg0.getUrl() != null) {
020        return 1;        
021      } else {
022        return 0;
023      }
024    }
025
026  }
027
028  public static class CanonicalResourceSortByTypeId implements Comparator<CanonicalResource> {
029
030    @Override
031    public int compare(CanonicalResource arg0, CanonicalResource arg1) {
032      int ret = arg0.fhirType().compareTo(arg1.fhirType());
033      if (ret == 0) {
034        ret = arg0.getId().compareTo(arg1.getId());
035      }
036      return ret;
037    }
038
039  }
040
041
042}