blob: ea68b5398d59d7c5d9aade7831baee4fd46de209 [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;
Ayaka Koshibe04a1a4e2014-09-11 14:31:29 -070011import org.onlab.packet.VLANID;
Ayaka Koshibe74a23922014-09-09 16:45:39 -070012
Ayaka Koshibee5652752014-09-10 23:27:34 -070013import com.google.common.collect.ImmutableSet;
14
Ayaka Koshibe74a23922014-09-09 16:45:39 -070015public class DefaultHostDescription implements HostDescription {
16
17 private final MACAddress mac;
Ayaka Koshibe04a1a4e2014-09-11 14:31:29 -070018 private final VLANID vlan;
Ayaka Koshibe74a23922014-09-09 16:45:39 -070019 private final HostLocation location;
Ayaka Koshibe1c7b38e2014-09-11 13:09:51 -070020 private final Set<IPAddress> ips;
Ayaka Koshibe74a23922014-09-09 16:45:39 -070021
Ayaka Koshibe04a1a4e2014-09-11 14:31:29 -070022 public DefaultHostDescription(MACAddress mac, VLANID vlan,
Ayaka Koshibe1c7b38e2014-09-11 13:09:51 -070023 HostLocation loc, Set<IPAddress> ips) {
Ayaka Koshibe74a23922014-09-09 16:45:39 -070024 this.mac = mac;
25 this.vlan = vlan;
26 this.location = loc;
Ayaka Koshibe1c7b38e2014-09-11 13:09:51 -070027 this.ips = new HashSet<IPAddress>(ips);
Ayaka Koshibe74a23922014-09-09 16:45:39 -070028 }
29
30 @Override
31 public MACAddress hwAddress() {
32 return mac;
33 }
34
35 @Override
Ayaka Koshibe04a1a4e2014-09-11 14:31:29 -070036 public VLANID vlan() {
Ayaka Koshibe74a23922014-09-09 16:45:39 -070037 return vlan;
38 }
39
40 @Override
41 public HostLocation location() {
42 return location;
43 }
44
45 @Override
Ayaka Koshibe1c7b38e2014-09-11 13:09:51 -070046 public Set<IPAddress> ipAddresses() {
Ayaka Koshibee5652752014-09-10 23:27:34 -070047 return ImmutableSet.copyOf(ips);
Ayaka Koshibe74a23922014-09-09 16:45:39 -070048 }
49
50 @Override
51 public String toString() {
52 return toStringHelper(this)
53 .add("mac", mac)
54 .add("vlan", vlan)
55 .add("location", location)
56 .add("ipAddresses", ips)
57 .toString();
58 }
59
60}