@Override
 public boolean equals(Object o) {
   if (!getClass().isInstance(o)) {
     return false;
   }
   ChangeBasedEvent event = (ChangeBasedEvent) o;
   if (getEventType() == null) {
     if (event.getEventType() != null) {
       return false;
     }
   } else if (!getEventType().equals(event.getEventType())) {
     return false;
   }
   if (getChange() == null) {
     if (event.getChange() != null) {
       return false;
     }
   } else if (!getChange().equals(event.getChange())) {
     return false;
   }
   if (getPatchSet() == null) {
     if (event.getPatchSet() != null) {
       return false;
     }
   } else if (!getPatchSet().equals(event.getPatchSet())) {
     return false;
   }
   return true;
 }