| /* |
| * Copyright 2015-present Open Networking Laboratory |
| * |
| * Licensed under the Apache License, Version 2.0 (the "License"); |
| * you may not use this file except in compliance with the License. |
| * You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| * See the License for the specific language governing permissions and |
| * limitations under the License. |
| */ |
| package org.onosproject.ovsdb.controller; |
| |
| import static com.google.common.base.MoreObjects.toStringHelper; |
| |
| import java.util.Objects; |
| import java.util.Set; |
| |
| import org.onlab.packet.IpAddress; |
| import org.onlab.packet.MacAddress; |
| |
| /** |
| * This class is default event subject that implements OvsdbEventSubject. |
| */ |
| public class DefaultEventSubject implements OvsdbEventSubject { |
| private final MacAddress mac; |
| private final Set<IpAddress> ips; |
| private final OvsdbPortName portname; |
| private final OvsdbPortNumber portnumber; |
| private final OvsdbDatapathId dpid; |
| private final OvsdbPortType portType; |
| private final OvsdbIfaceId ifaceid; |
| |
| /** |
| * Creates an end-station event subject using the supplied information. |
| * |
| * @param mac host MAC address |
| * @param ips host MAC ips |
| * @param portname port name |
| * @param portnumber port number |
| * @param dpid ovs dpid |
| * @param portType port type |
| * @param ifaceid vm ifaceid |
| */ |
| public DefaultEventSubject(MacAddress mac, Set<IpAddress> ips, |
| OvsdbPortName portname, OvsdbPortNumber portnumber, OvsdbDatapathId dpid, |
| OvsdbPortType portType, OvsdbIfaceId ifaceid) { |
| super(); |
| this.mac = mac; |
| this.ips = ips; |
| this.portname = portname; |
| this.portnumber = portnumber; |
| this.dpid = dpid; |
| this.portType = portType; |
| this.ifaceid = ifaceid; |
| } |
| |
| @Override |
| public MacAddress hwAddress() { |
| return mac; |
| } |
| |
| @Override |
| public Set<IpAddress> ipAddress() { |
| return ips; |
| } |
| |
| @Override |
| public OvsdbPortName portName() { |
| return portname; |
| } |
| |
| @Override |
| public OvsdbPortNumber portNumber() { |
| return portnumber; |
| } |
| |
| @Override |
| public OvsdbPortType portType() { |
| return portType; |
| } |
| |
| @Override |
| public OvsdbDatapathId dpid() { |
| return dpid; |
| } |
| |
| @Override |
| public OvsdbIfaceId ifaceid() { |
| return ifaceid; |
| } |
| |
| @Override |
| public int hashCode() { |
| return Objects.hash(mac, portname, portnumber, dpid, portType, ifaceid); |
| } |
| |
| @Override |
| public boolean equals(Object obj) { |
| if (this == obj) { |
| return true; |
| } |
| if (obj instanceof DefaultEventSubject) { |
| final DefaultEventSubject other = (DefaultEventSubject) obj; |
| return Objects.equals(this.mac, other.mac) |
| && Objects.equals(this.portname, other.portname) |
| && Objects.equals(this.portnumber, other.portnumber) |
| && Objects.equals(this.dpid, other.dpid) |
| && Objects.equals(this.portType, other.portType) |
| && Objects.equals(this.ifaceid, other.ifaceid); |
| } |
| return false; |
| } |
| |
| @Override |
| public String toString() { |
| return toStringHelper(this).add("mac", mac).add("portname", portname) |
| .add("portnumber", portnumber).add("portType", portType) |
| .add("ipAddresses", ips).add("dpid", dpid).add("ifaceid", ifaceid) |
| .toString(); |
| } |
| } |