blob: d94075499a26fea671c240f2d1f20ba5766fa36e [file] [log] [blame]
tom2d331412014-09-10 21:31:20 -07001package org.onlab.onos.net.trivial.topology.provider.impl;
2
3import org.onlab.onos.net.Link;
4import org.onlab.onos.net.topology.TopoEdge;
5import org.onlab.onos.net.topology.TopoVertex;
6
7import java.util.Objects;
8
9import static com.google.common.base.MoreObjects.toStringHelper;
10
11/**
12 * Implementation of the topology edge backed by a link.
13 */
14class DefaultTopoEdge implements TopoEdge {
15
16 private final Link link;
17 private final TopoVertex src;
18 private final TopoVertex dst;
19
20 /**
21 * Creates a new topology edge.
22 *
23 * @param src source vertex
24 * @param dst destination vertex
25 * @param link infrastructure link
26 */
27 DefaultTopoEdge(TopoVertex src, TopoVertex dst, Link link) {
28 this.src = src;
29 this.dst = dst;
30 this.link = link;
31 }
32
33 @Override
34 public Link link() {
35 return link;
36 }
37
38 @Override
39 public TopoVertex src() {
40 return src;
41 }
42
43 @Override
44 public TopoVertex dst() {
45 return dst;
46 }
47
48 @Override
49 public int hashCode() {
50 return Objects.hash(link);
51 }
52
53 @Override
54 public boolean equals(Object obj) {
55 if (obj instanceof DefaultTopoEdge) {
56 final DefaultTopoEdge other = (DefaultTopoEdge) obj;
57 return Objects.equals(this.link, other.link);
58 }
59 return false;
60 }
61
62 @Override
63 public String toString() {
64 return toStringHelper(this).add("src", src).add("dst", dst).toString();
65 }
66
67}
68