code: @Override
      public void setReorderCodes(int... order) {
          checkNotFrozen();
          int length = (order != null) ? order.length : 0;
          if(length == 1 && order[0] == ReorderCodes.NONE) {
              length = 0;
          }
          if(length == 0 ?
                  settings.readOnly().reorderCodes.length == 0 :
                  Arrays.equals(order, settings.readOnly().reorderCodes)) {
              return;
          }
          CollationSettings defaultSettings = getDefaultSettings();
          if(length == 1 && order[0] == Collator.ReorderCodes.DEFAULT) {
              if(settings.readOnly() != defaultSettings) {
                  CollationSettings ownedSettings = getOwnedSettings();
                  ownedSettings.copyReorderingFrom(defaultSettings);
                  setFastLatinOptions(ownedSettings);
              }
              return;
          }
          CollationSettings ownedSettings = getOwnedSettings();
          if(length == 0) {
              ownedSettings.resetReordering();
          } else {
              ownedSettings.setReordering(data, order.clone());
          }
          setFastLatinOptions(ownedSettings);
      }
docs: {@inheritDoc}
  
  @param order the reordering codes to apply to this collator; if this is null or an empty array
  then this clears any existing reordering
  @throws IllegalArgumentException if the reordering codes are malformed in any way (e.g. duplicates, multiple reset codes, overlapping equivalent scripts)
  @see #getReorderCodes
  @see Collator#getEquivalentReorderCodes
  @see Collator.ReorderCodes
  @see UScript