blob: 2acdc756c65b926b15799ca59c5c6f693759ca6a [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;
Ayaka Koshibe1c7b38e2014-09-11 13:09:51 -07009import org.onlab.packet.IPAddress;
Ayaka Koshibe74a23922014-09-09 16:45:39 -070010import 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;
Ayaka Koshibe1c7b38e2014-09-11 13:09:51 -070019 private final Set<IPAddress> ips;
Ayaka Koshibe74a23922014-09-09 16:45:39 -070020
21 public DefaultHostDescription(MACAddress mac, short vlan,
Ayaka Koshibe1c7b38e2014-09-11 13:09:51 -070022 HostLocation loc, Set<IPAddress> ips) {
Ayaka Koshibe74a23922014-09-09 16:45:39 -070023 this.mac = mac;
24 this.vlan = vlan;
25 this.location = loc;
Ayaka Koshibe1c7b38e2014-09-11 13:09:51 -070026 this.ips = new HashSet<IPAddress>(ips);
Ayaka Koshibe74a23922014-09-09 16:45:39 -070027 }
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
Ayaka Koshibe1c7b38e2014-09-11 13:09:51 -070045 public Set<IPAddress> 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}