1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 package org.opencastproject.assetmanager.api;
22
23 import static java.lang.String.format;
24
25 import java.util.Objects;
26
27 import javax.annotation.ParametersAreNonnullByDefault;
28
29 @ParametersAreNonnullByDefault
30 public final class AssetId {
31 private final String mpId;
32 private final String mpeId;
33 private final Version version;
34
35 public AssetId(Version version, String mpId, String mpeId) {
36 this.version = version;
37 this.mpId = mpId;
38 this.mpeId = mpeId;
39 }
40
41 public static AssetId mk(Version version, String mpId, String mpeId) {
42 return new AssetId(version, mpId, mpeId);
43 }
44
45 public String getMediaPackageId() {
46 return mpId;
47 }
48
49 public String getMediaPackageElementId() {
50 return mpeId;
51 }
52
53 public Version getVersion() {
54 return version;
55 }
56
57 @Override public int hashCode() {
58 return Objects.hash(version, mpId, mpeId);
59 }
60
61 @Override public boolean equals(Object that) {
62 return (this == that) || (that instanceof AssetId && eqFields((AssetId) that));
63 }
64
65 private boolean eqFields(AssetId that) {
66 return Objects.equals(mpId, that.mpId)
67 && Objects.equals(mpeId, that.mpeId)
68 && Objects.equals(version, that.version);
69 }
70
71 @Override public String toString() {
72 return format("AssetId(mpId=%s, mpeId=%s, version=%s)", mpId, mpeId, version);
73 }
74 }