Sowas schreit eigentlich wirklich nach einer Factory oder einem Builder. Mal ein kühner Vorschlag bei minimaler Sachkenntnis:
Permutator perm = Permutator.builder().ascending().inverse().build();
int[] order = perm.computeDouble(ds);
Natürlich muss man sicherstellen, dass die gewünschte Kombination auch irgendwie “sinnvoll” ist.
Die Frage ist nur, ob man die Berechnung auch so modular gestalten kann (da man sonst hinter den Kulissen doch wieder auf Monstermethoden verweisen muss).