1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34 package info.magnolia.dam.api;
35
36 import java.util.regex.Matcher;
37 import java.util.regex.Pattern;
38
39
40
41
42
43 public class ItemKey {
44 private static final Pattern PATTERN = Pattern.compile("^(.+?):(.+)$");
45
46 public static ItemKey from(String compositeKey) {
47 final Matcher matcher = PATTERN.matcher(compositeKey);
48 if (matcher.matches()) {
49 return new ItemKey(matcher.group(1), matcher.group(2));
50 }
51 throw new IllegalArgumentException(compositeKey + " is not a valid ItemKey");
52 }
53
54 public static boolean isValid(String compositeKey) {
55 final Matcher matcher = PATTERN.matcher(compositeKey);
56 return matcher.matches();
57 }
58
59 private final String providerId;
60 private final String assetId;
61
62 public ItemKey(String providerId, String assetId) {
63 this.providerId = providerId;
64 this.assetId = assetId;
65 }
66
67 public String getProviderId() {
68 return providerId;
69 }
70
71 public String getAssetId() {
72 return assetId;
73 }
74
75 public String asString() {
76 return String.format("%s:%s", providerId, assetId);
77 }
78
79 @Override
80 public boolean equals(Object o) {
81 if (this == o) {
82 return true;
83 }
84 if (o == null || getClass() != o.getClass()) {
85 return false;
86 }
87
88 ItemKey/../../../info/magnolia/dam/api/ItemKey.html#ItemKey">ItemKey itemKey = (ItemKey) o;
89
90 if (!assetId.equals(itemKey.assetId)) {
91 return false;
92 }
93 if (!providerId.equals(itemKey.providerId)) {
94 return false;
95 }
96
97 return true;
98 }
99
100 @Override
101 public int hashCode() {
102 int result = providerId.hashCode();
103 result = 31 * result + assetId.hashCode();
104 return result;
105 }
106 }