blob: f97bef641e872e7f30ab618008bfc85fbd166dd0 [file] [log] [blame]
Madan Jampania97e8202014-10-10 17:01:33 -07001package org.onlab.onos.store.link.impl;
2
3import java.util.Objects;
4
5import org.onlab.onos.net.LinkKey;
6import org.onlab.onos.net.provider.ProviderId;
7
8import com.google.common.base.MoreObjects;
9
10/**
11 * Identifier for LinkDescription from a Provider.
12 */
13public final class LinkFragmentId {
14 public final ProviderId providerId;
15 public final LinkKey linkKey;
16
17 public LinkFragmentId(LinkKey linkKey, ProviderId providerId) {
18 this.providerId = providerId;
19 this.linkKey = linkKey;
20 }
21
22 public LinkKey linkKey() {
23 return linkKey;
24 }
25
26 public ProviderId providerId() {
27 return providerId;
28 }
29
30 @Override
31 public int hashCode() {
32 return Objects.hash(providerId, linkKey);
33 }
34
35 @Override
36 public boolean equals(Object obj) {
37 if (this == obj) {
38 return true;
39 }
40 if (!(obj instanceof LinkFragmentId)) {
41 return false;
42 }
43 LinkFragmentId that = (LinkFragmentId) obj;
44 return Objects.equals(this.linkKey, that.linkKey) &&
45 Objects.equals(this.providerId, that.providerId);
46 }
47
48 @Override
49 public String toString() {
50 return MoreObjects.toStringHelper(getClass())
51 .add("providerId", providerId)
52 .add("linkKey", linkKey)
53 .toString();
54 }
55
56 // for serializer
57 @SuppressWarnings("unused")
58 private LinkFragmentId() {
59 this.providerId = null;
60 this.linkKey = null;
61 }
62}