blob: e3a1a9e5963e50ac1ff77a0b04e6d938bb38b289 [file] [log] [blame]
tom97937552014-09-11 10:48:42 -07001package org.onlab.onos.net.trivial.topology.impl;
tom2d331412014-09-10 21:31:20 -07002
3import org.onlab.onos.net.Link;
tom97937552014-09-11 10:48:42 -07004import org.onlab.onos.net.topology.TopologyEdge;
5import org.onlab.onos.net.topology.TopologyVertex;
tom2d331412014-09-10 21:31:20 -07006
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 */
tom97937552014-09-11 10:48:42 -070014class DefaultTopologyEdge implements TopologyEdge {
tom2d331412014-09-10 21:31:20 -070015
16 private final Link link;
tom97937552014-09-11 10:48:42 -070017 private final TopologyVertex src;
18 private final TopologyVertex dst;
tom2d331412014-09-10 21:31:20 -070019
20 /**
21 * Creates a new topology edge.
22 *
23 * @param src source vertex
24 * @param dst destination vertex
25 * @param link infrastructure link
26 */
tom97937552014-09-11 10:48:42 -070027 DefaultTopologyEdge(TopologyVertex src, TopologyVertex dst, Link link) {
tom2d331412014-09-10 21:31:20 -070028 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
tom97937552014-09-11 10:48:42 -070039 public TopologyVertex src() {
tom2d331412014-09-10 21:31:20 -070040 return src;
41 }
42
43 @Override
tom97937552014-09-11 10:48:42 -070044 public TopologyVertex dst() {
tom2d331412014-09-10 21:31:20 -070045 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) {
tom97937552014-09-11 10:48:42 -070055 if (obj instanceof DefaultTopologyEdge) {
56 final DefaultTopologyEdge other = (DefaultTopologyEdge) obj;
tom2d331412014-09-10 21:31:20 -070057 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