blob: c3653e647ee8eb6f89ba28b333d5e68ccf6d0785 [file] [log] [blame]
Ayaka Koshibe74a23922014-09-09 16:45:39 -07001package org.onlab.onos.net.host;
2
3import static com.google.common.base.MoreObjects.toStringHelper;
4
Ayaka Koshibe74a23922014-09-09 16:45:39 -07005import java.util.HashSet;
6import java.util.Set;
7
8import org.onlab.onos.net.HostLocation;
9import org.onlab.packet.IPv4;
10import org.onlab.packet.MACAddress;
11
Ayaka Koshibee5652752014-09-10 23:27:34 -070012import com.google.common.collect.ImmutableSet;
13
Ayaka Koshibe74a23922014-09-09 16:45:39 -070014public class DefaultHostDescription implements HostDescription {
15
16 private final MACAddress mac;
17 private final short vlan;
18 private final HostLocation location;
19 private final Set<IPv4> ips;
20
21 public DefaultHostDescription(MACAddress mac, short vlan,
22 HostLocation loc, Set<IPv4> ips) {
23 this.mac = mac;
24 this.vlan = vlan;
25 this.location = loc;
26 this.ips = new HashSet<IPv4>(ips);
27 }
28
29 @Override
30 public MACAddress hwAddress() {
31 return mac;
32 }
33
34 @Override
35 public short vlan() {
36 return vlan;
37 }
38
39 @Override
40 public HostLocation location() {
41 return location;
42 }
43
44 @Override
45 public Set<IPv4> ipAddresses() {
Ayaka Koshibee5652752014-09-10 23:27:34 -070046 return ImmutableSet.copyOf(ips);
Ayaka Koshibe74a23922014-09-09 16:45:39 -070047 }
48
49 @Override
50 public String toString() {
51 return toStringHelper(this)
52 .add("mac", mac)
53 .add("vlan", vlan)
54 .add("location", location)
55 .add("ipAddresses", ips)
56 .toString();
57 }
58
59}