Comparable Arns
- Lingua principale
- Java
- Stelle
- 2.6k
- Fork
- 1k
- Merge medio
- 2g 9h
- PR unite (30g)
- 51
Descrizione
### Describe the feature
It'd be nice if [Arn](https://github.com/aws/aws-sdk-java-v2/blob/master/core/arns/src/main/java/software/amazon/awssdk/arns/Arn.java) implemented `Comparable`.
This would make Arns usable in sorted collection types, etc.
### Is your Feature Request related to a problem?
Not really.
- We can use `HashMap` instead of `TreeMap`, etc.
- We can sort Arns by converting to strings, sorting, then converting back to Arns.
So this would just make Arns more flexible.
### Proposed Solution
Here is a straightforward implementation:
public static final Comparator COMPARATOR =
Comparator.comparing(Arn::toString);
@Override
public int compareTo(Arn rhs) {
return COMPARATOR.compare(this, rhs);
}
Here is a more elaborate one, which may be more efficient by avoiding the String construction:
public static final Comparator COMPARATOR =
Comparator.comparing(Arn::partition)
.thenComparing(Arn::service)
.thenComparing(x -> x.region, Comparator.nullsLast(Comparator.naturalOrder()))
.thenComparing(x -> x.accountId, Comparator.nullsLast(Comparator.naturalOrder()))
.thenComparing(Arn::resourceAsString);
@Override
public int compareTo(Arn rhs) {
return COMPARATOR.compare(this, rhs);
}
### Describe alternatives you've considered
_No response_
### Acknowledge
- [X] I may be able to implement this feature request
### AWS Java SDK version used
aws-sdk-java-v2 c0eb030fceaa9ccb64ad8acd74445f4e5ee3a547
### JDK version used
openjdk version "1.8.0_312"
### Operating System and version
MacOS Big Sur Version 11.6.2 (20G314)
Guida per i contributori
Apri la guida per i contributori
Direzione di ricerca
Inizia da Arn.java, il punto di ingresso indicato nell’issue, e verifica come vengono esposti i componenti ARN e le rappresentazioni sotto forma di stringa. Implementa il comportamento comparabile richiesto utilizzando uno degli approcci di ordinamento proposti, quindi verifica che le istanze di Arn possano essere utilizzate in raccolte ordinate e che l’ordinamento sia coerente.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Valutazione
- Stack tecnologico
- java
- Ambito
- backend
- Tipo di issue
- Funzionalità
- Difficoltà
- 2/5
- Tempo stimato
- 1-3 ore
- Stato di attività
- Ferma
- Chiarezza
- Specificata chiaramente
- Idoneità per principianti
- 38/100