Comparable Arns
- Ngôn ngữ chính
- Java
- Star
- 2.6k
- Fork
- 1k
- Merge trung bình
- 2 ngày 9 giờ
- Pull request đã merge (30 ngày)
- 51
Mô tả
### 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)
Hướng dẫn đóng góp
Hướng nghiên cứu
Bắt đầu với Arn.java, điểm vào được nêu trong issue, và xem xét cách các thành phần ARN cũng như các biểu diễn chuỗi được cung cấp. Triển khai hành vi có thể so sánh được yêu cầu bằng một trong các cách tiếp cận sắp xếp được đề xuất, sau đó xác minh rằng các phiên bản Arn có thể được sử dụng trong các collection đã sắp xếp và thứ tự là nhất quán.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Đánh giá
- Công nghệ
- java
- Lĩnh vực
- backend
- Loại issue
- Tính năng
- Độ khó
- 2/5
- Thời gian dự kiến
- 1-3 giờ
- Mức độ hoạt động
- Đình trệ
- Độ rõ ràng
- Đặc tả rõ ràng
- Mức phù hợp với người mới
- 38/100