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.storage;
22
23 import org.opencastproject.assetmanager.api.Version;
24
25 import java.io.Serializable;
26 import java.util.Objects;
27
28 import javax.annotation.ParametersAreNonnullByDefault;
29 import javax.annotation.concurrent.Immutable;
30
31
32
33
34 @ParametersAreNonnullByDefault
35 @Immutable
36 public final class StoragePath implements Serializable {
37 private static final long serialVersionUID = -5646543990835098350L;
38
39 private final String mediaPackageId;
40 private final String mediaPackageElementId;
41 private final String organizationId;
42 private final Version version;
43
44 public StoragePath(String organizationId, String mediaPackageId, Version version, String mediaPackageElementId) {
45 this.mediaPackageId = mediaPackageId;
46 this.mediaPackageElementId = mediaPackageElementId;
47 this.organizationId = organizationId;
48 this.version = version;
49 }
50
51 public static StoragePath mk(
52 String organizationId, String mediaPackageId, Version version, String mediaPackageElementId) {
53 return new StoragePath(organizationId, mediaPackageId, version, mediaPackageElementId);
54 }
55
56 public String getMediaPackageId() {
57 return mediaPackageId;
58 }
59
60 public String getMediaPackageElementId() {
61 return mediaPackageElementId;
62 }
63
64 public String getOrganizationId() {
65 return organizationId;
66 }
67
68 public Version getVersion() {
69 return version;
70 }
71
72 @Override
73 public boolean equals(Object that) {
74 return (this == that) || (that instanceof StoragePath && eqFields((StoragePath) that));
75 }
76
77 private boolean eqFields(StoragePath that) {
78 return Objects.equals(this.mediaPackageId, that.mediaPackageId)
79 && Objects.equals(this.mediaPackageElementId, that.mediaPackageElementId)
80 && Objects.equals(this.organizationId, that.organizationId)
81 && Objects.equals(this.version, that.version);
82 }
83
84 @Override
85 public int hashCode() {
86 return Objects.hash(mediaPackageId, mediaPackageElementId, organizationId, version);
87 }
88
89 @Override public String toString() {
90 return "StoragePath(orgId=" + organizationId
91 + ", mpId=" + mediaPackageId
92 + ", version=" + version
93 + ", mpeId=" + mediaPackageElementId
94 + ")";
95 }
96 }