Merge "BUG-5006: Rework testEnqueueEvent to avoid private methods"
[ovsdb.git] / openstack / net-virt / src / main / java / org / opendaylight / ovsdb / openstack / netvirt / AbstractEvent.java
index 83ed897550af860ad2dd623a08b65aa169db0e55..c110bfc75803d1960d6f83fa287412db0fbc4158 100644 (file)
@@ -1,11 +1,9 @@
 /*
- * Copyright (C) 2014 Red Hat, Inc.
+ * Copyright (c) 2014, 2015 Red Hat, Inc. and others. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
- *
- * Authors : Dave Tucker, Flavio Fernandes
  */
 
 package org.opendaylight.ovsdb.openstack.netvirt;
@@ -16,6 +14,7 @@ import org.opendaylight.ovsdb.openstack.netvirt.api.Action;
  * Abstract class for events used by neutron northbound and southbound events.
  */
 public abstract class AbstractEvent {
+
     public enum HandlerType {
         SOUTHBOUND,
         NEUTRON_FLOATING_IP,
@@ -28,13 +27,27 @@ public abstract class AbstractEvent {
         NEUTRON_LOAD_BALANCER,
         NEUTRON_LOAD_BALANCER_POOL,
         NEUTRON_LOAD_BALANCER_POOL_MEMBER,
-        NODE;
+        NODE,
+        NEUTRON_L3_ADAPTER;
 
         public static final int size = HandlerType.values().length;
     }
 
     private HandlerType handlerType;
     private Action action;
+    private int transactionId;
+
+    public int getTransactionId() {
+        return transactionId;
+    }
+
+    private static int txId = 0;
+    private static int incTxId() {
+        return ++txId;
+    }
+    public static int getTxId() {
+        return txId;
+    }
 
     private AbstractEvent() {
         // this is private to force proper construction
@@ -43,6 +56,7 @@ public abstract class AbstractEvent {
     protected AbstractEvent(HandlerType handlerType, Action action) {
         this.handlerType = handlerType;
         this.action = action;
+        this.transactionId = incTxId();
     }
 
     public HandlerType getHandlerType() {
@@ -55,7 +69,8 @@ public abstract class AbstractEvent {
 
     @Override
     public String toString() {
-        return "AbstractEvent [handlerType=" + handlerType + " action=" + action + "]";
+        return "AbstractEvent [transactionId=" + transactionId
+                + " handlerType=" + handlerType + " action=" + action + "]";
     }
 
     @Override
@@ -69,23 +84,30 @@ public abstract class AbstractEvent {
 
     @Override
     public boolean equals(Object obj) {
-        if (this == obj)
+        if (this == obj) {
             return true;
-        if (obj == null)
+        }
+        if (obj == null) {
             return false;
-        if (getClass() != obj.getClass())
+        }
+        if (getClass() != obj.getClass()) {
             return false;
+        }
         AbstractEvent other = (AbstractEvent) obj;
         if (handlerType == null) {
-            if (other.handlerType != null)
+            if (other.handlerType != null) {
                 return false;
-        } else if (!handlerType.equals(other.handlerType))
+            }
+        } else if (!handlerType.equals(other.handlerType)) {
             return false;
+        }
         if (action == null) {
-            if (other.action != null)
+            if (other.action != null) {
                 return false;
-        } else if (!action.equals(other.action))
+            }
+        } else if (!action.equals(other.action)) {
             return false;
+        }
         return true;
     }
 }