blob: 0a419fde95d025971b7d19b05eead2ba12c6e553 [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 Koshibe1d56fe42014-09-19 16:51:58 -07009import org.onlab.packet.IpPrefix;
Ayaka Koshibea9c199f2014-09-16 16:21:40 -070010import org.onlab.packet.MacAddress;
11import 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
Ayaka Koshibea9c199f2014-09-16 16:21:40 -070017 private final MacAddress mac;
18 private final VlanId vlan;
Ayaka Koshibe74a23922014-09-09 16:45:39 -070019 private final HostLocation location;
Ayaka Koshibe1d56fe42014-09-19 16:51:58 -070020 private final Set<IpPrefix> ips;
Ayaka Koshibe74a23922014-09-09 16:45:39 -070021
Ayaka Koshibea9c199f2014-09-16 16:21:40 -070022 public DefaultHostDescription(MacAddress mac, VlanId vlan,
Ayaka Koshibe1a100982014-09-13 19:32:19 -070023 HostLocation loc) {
24 this.mac = mac;
25 this.vlan = vlan;
26 this.location = loc;
Ayaka Koshibe1d56fe42014-09-19 16:51:58 -070027 this.ips = new HashSet<IpPrefix>();
Ayaka Koshibe1a100982014-09-13 19:32:19 -070028 }
29
Ayaka Koshibea9c199f2014-09-16 16:21:40 -070030 public DefaultHostDescription(MacAddress mac, VlanId vlan,
Ayaka Koshibe1d56fe42014-09-19 16:51:58 -070031 HostLocation loc, Set<IpPrefix> ips) {
Ayaka Koshibe74a23922014-09-09 16:45:39 -070032 this.mac = mac;
33 this.vlan = vlan;
34 this.location = loc;
Ayaka Koshibe1d56fe42014-09-19 16:51:58 -070035 this.ips = new HashSet<IpPrefix>(ips);
Ayaka Koshibe74a23922014-09-09 16:45:39 -070036 }
37
38 @Override
Ayaka Koshibea9c199f2014-09-16 16:21:40 -070039 public MacAddress hwAddress() {
Ayaka Koshibe74a23922014-09-09 16:45:39 -070040 return mac;
41 }
42
43 @Override
Ayaka Koshibea9c199f2014-09-16 16:21:40 -070044 public VlanId vlan() {
Ayaka Koshibe74a23922014-09-09 16:45:39 -070045 return vlan;
46 }
47
48 @Override
49 public HostLocation location() {
50 return location;
51 }
52
53 @Override
Ayaka Koshibe1d56fe42014-09-19 16:51:58 -070054 public Set<IpPrefix> ipAddresses() {
Ayaka Koshibee5652752014-09-10 23:27:34 -070055 return ImmutableSet.copyOf(ips);
Ayaka Koshibe74a23922014-09-09 16:45:39 -070056 }
57
58 @Override
59 public String toString() {
60 return toStringHelper(this)
61 .add("mac", mac)
62 .add("vlan", vlan)
63 .add("location", location)
64 .add("ipAddresses", ips)
65 .toString();
66 }
67
68}