code: static Chronology<CalendarDate> getChronology(Locale locale) {
  
          String name = locale.getUnicodeLocaleType("ca");
  
          if (name == null) {
              switch (FormatUtils.getRegion(locale)) {
                  case "AF":
                  case "IR":
                      name = "persian";
                      break;
                  case "SA":
                      name = "islamic-umalqura";
                      break;
                  case "TH":
                      name = "buddhist";
                      break;
                  default:
                      return adapt(PlainDate.axis(), ""); // ISO-8601 as default
              }
          } else if (name.equals("ethiopic-amete-alem")) {
              name = "ethioaa";
          } else if (name.equals("islamicc")) {
              name = "islamic-civil";
          } else if (name.equals("islamic")) {
              name = "islamic-icu4j"; // TODO: astro-variant
          }
  
          for (CalendarProvider provider : ResourceLoader.getInstance().services(CalendarProvider.class)) {
              Optional<Chronology<? extends CalendarDate>> c = provider.findChronology(name);
  
              if (c.isPresent()) {
                  String calendarVariant = "";
                  if (name.equals("historic")) {
                      calendarVariant = ChronoHistory.of(locale).getVariant();
                  } else if (name.indexOf('-') > 0) {
                      calendarVariant = name;
                  }
                  return adapt(c.get(), calendarVariant);
              }
          }
  
          throw new IllegalArgumentException("Could not find any calendar for: " + name);
  
      }
docs: <p>Obtains a suitable chronology for given locale. </p>
  
  <p>First the unicode-ca-extension of given locale is queried. If not available then ISO-8601 will be
  chosen. Otherwise, all available implementations of {@link CalendarProvider} will be queried if they
  can deliver a suitable chronology. </p>
  
  @param   locale      the locale to be queried
  @return  new bridge chronology for general calendar dates
  @throws  IllegalArgumentException if the ca-extension of given locale does not point to any available calendar