blob: 4e0d40c5c4161d6fe81c206ae1a71954b24faca0 [file] [log] [blame]
Jonathan Hart23701d12014-04-03 10:45:48 -07001package net.onrc.onos.core.util;
Pavlin Radoslavov5363c2a2013-02-18 09:55:42 -08002
Pavlin Radoslavovad008e02013-02-21 18:42:42 -08003
4import org.codehaus.jackson.annotate.JsonProperty;
Pavlin Radoslavov5363c2a2013-02-18 09:55:42 -08005
6/**
7 * The class representing the Data Path Endpoints.
Pavlin Radoslavov29a2a882014-04-08 17:40:54 -07008 * This class is immutable.
Pavlin Radoslavov5363c2a2013-02-18 09:55:42 -08009 */
Pavlin Radoslavov29a2a882014-04-08 17:40:54 -070010public final class DataPathEndpoints {
11 private final SwitchPort srcPort; // The source port
12 private final SwitchPort dstPort; // The destination port
Pavlin Radoslavov5363c2a2013-02-18 09:55:42 -080013
14 /**
15 * Default constructor.
16 */
17 public DataPathEndpoints() {
Pavlin Radoslavov29a2a882014-04-08 17:40:54 -070018 srcPort = null;
19 dstPort = null;
Pavlin Radoslavov5363c2a2013-02-18 09:55:42 -080020 }
21
22 /**
23 * Constructor for given source and destination ports.
24 *
25 * @param srcPort the source port to use.
26 * @param dstPort the destination port to use.
27 */
28 public DataPathEndpoints(SwitchPort srcPort, SwitchPort dstPort) {
Ray Milkey269ffb92014-04-03 14:43:30 -070029 this.srcPort = srcPort;
30 this.dstPort = dstPort;
Pavlin Radoslavov5363c2a2013-02-18 09:55:42 -080031 }
32
33 /**
34 * Get the data path source port.
35 *
36 * @return the data path source port.
37 */
Pavlin Radoslavov2013cbb2013-02-26 10:15:18 -080038 @JsonProperty("srcPort")
Ray Milkey269ffb92014-04-03 14:43:30 -070039 public SwitchPort srcPort() {
40 return srcPort;
41 }
Pavlin Radoslavov5363c2a2013-02-18 09:55:42 -080042
43 /**
Pavlin Radoslavov5363c2a2013-02-18 09:55:42 -080044 * Get the data path destination port.
45 *
46 * @return the data path destination port.
47 */
Pavlin Radoslavov2013cbb2013-02-26 10:15:18 -080048 @JsonProperty("dstPort")
Ray Milkey269ffb92014-04-03 14:43:30 -070049 public SwitchPort dstPort() {
50 return dstPort;
51 }
Pavlin Radoslavov5363c2a2013-02-18 09:55:42 -080052
53 /**
Pavlin Radoslavov5363c2a2013-02-18 09:55:42 -080054 * Convert the data path endpoints to a string.
Ray Milkey269ffb92014-04-03 14:43:30 -070055 * <p/>
Pavlin Radoslavovad008e02013-02-21 18:42:42 -080056 * The string has the following form:
Pavlin Radoslavova10a9a82013-02-22 11:47:54 -080057 * [src=01:01:01:01:01:01:01:01/1111 dst=02:02:02:02:02:02:02:02/2222]
Pavlin Radoslavovad008e02013-02-21 18:42:42 -080058 *
Pavlin Radoslavov5363c2a2013-02-18 09:55:42 -080059 * @return the data path endpoints as a string.
60 */
61 @Override
62 public String toString() {
Ray Milkey269ffb92014-04-03 14:43:30 -070063 String ret = "[src=" + this.srcPort.toString() +
64 " dst=" + this.dstPort.toString() + "]";
65 return ret;
Pavlin Radoslavov5363c2a2013-02-18 09:55:42 -080066 }
67}