Merge "Add template unit test for schemas/hardwarevtep"
[ovsdb.git] / openstack / net-virt / src / main / java / org / opendaylight / ovsdb / openstack / netvirt / SouthboundEvent.java
1 /*
2  * Copyright (C) 2013 Red Hat, Inc.
3  *
4  * This program and the accompanying materials are made available under the
5  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6  * and is available at http://www.eclipse.org/legal/epl-v10.html
7  *
8  * Authors : Madhu Venugopal, Brent Salisbury
9  */
10 package org.opendaylight.ovsdb.openstack.netvirt;
11
12 import org.opendaylight.controller.sal.core.Node;
13 import org.opendaylight.ovsdb.lib.notation.Row;
14 import org.opendaylight.ovsdb.openstack.netvirt.api.Action;
15
16 public class SouthboundEvent extends AbstractEvent {
17     public enum Type { NODE, ROW }
18     private Type type;
19     private Node node;
20     private String tableName;
21     private String uuid;
22     private Row row;
23     private Object context;
24     public SouthboundEvent(Node node, Action action) {
25         super(HandlerType.SOUTHBOUND, action);
26         this.type = Type.NODE;
27         this.node = node;
28     }
29     public SouthboundEvent(Node node, String tableName, String uuid, Row row, Action action) {
30         super(HandlerType.SOUTHBOUND, action);
31         this.type = Type.ROW;
32         this.node = node;
33         this.tableName = tableName;
34         this.uuid = uuid;
35         this.row = row;
36     }
37     public SouthboundEvent(Node node, String tableName, String uuid, Row row, Object context, Action action) {
38         super(HandlerType.SOUTHBOUND, action);
39         this.type = Type.ROW;
40         this.node = node;
41         this.tableName = tableName;
42         this.uuid = uuid;
43         this.row = row;
44         this.context = context;
45     }
46     public Type getType() {
47         return type;
48     }
49     public Node getNode() {
50         return node;
51     }
52     public String getTableName() {
53         return tableName;
54     }
55     public String getUuid() {
56         return uuid;
57     }
58     public Row getRow() {
59         return row;
60     }
61     public Object getContext() {
62         return context;
63     }
64     @Override
65     public String toString() {
66         return "SouthboundEvent [type=" + type + ", action=" + super.getAction() + ", node=" + node + ", tableName=" + tableName
67                 + ", uuid=" + uuid + ", row=" + row + ", context=" + context.toString() + "]";
68     }
69     @Override
70     public int hashCode() {
71         final int prime = 31;
72         int result = super.hashCode();
73         result = prime * result + ((node == null) ? 0 : node.hashCode());
74         result = prime * result + ((tableName == null) ? 0 : tableName.hashCode());
75         result = prime * result + ((type == null) ? 0 : type.hashCode());
76         result = prime * result + ((uuid == null) ? 0 : uuid.hashCode());
77         return result;
78     }
79     @Override
80     public boolean equals(Object obj) {
81         if (this == obj) {
82             return true;
83         }
84         if (obj == null) {
85             return false;
86         }
87         if (getClass() != obj.getClass()) {
88             return false;
89         }
90         if (!super.equals(obj)) {
91             return false;
92         }
93         SouthboundEvent other = (SouthboundEvent) obj;
94         if (node == null) {
95             if (other.node != null) {
96                 return false;
97             }
98         } else if (!node.equals(other.node)) {
99             return false;
100         }
101         if (tableName == null) {
102             if (other.tableName != null) {
103                 return false;
104             }
105         } else if (!tableName.equals(other.tableName)) {
106             return false;
107         }
108         if (type == null) {
109             if (other.type != null) {
110                 return false;
111             }
112         } else if (!type.equals(other.type)) {
113             return false;
114         }
115         if (uuid == null) {
116             if (other.uuid != null) {
117                 return false;
118             }
119         } else if (!uuid.equals(other.uuid)) {
120             return false;
121         }
122         return true;
123     }
124 }