@Override
 public int hashCode() {
   int result = eventCode != null ? eventCode.hashCode() : 0;
   result = 31 * result + (eventTypeCodes != null ? eventTypeCodes.hashCode() : 0);
   result = 31 * result + (eventActionCode != null ? eventActionCode.hashCode() : 0);
   result = 31 * result + (eventOutcome != null ? eventOutcome.hashCode() : 0);
   result = 31 * result + (eventDateTime != null ? eventDateTime.hashCode() : 0);
   result = 31 * result + (participants != null ? participants.hashCode() : 0);
   result = 31 * result + (sources != null ? sources.hashCode() : 0);
   result = 31 * result + (objects != null ? objects.hashCode() : 0);
   return result;
 }
  @Override
  public boolean equals(Object o) {
    if (this == o) {
      return true;
    }
    if (!(o instanceof AtnaMessage)) {
      return false;
    }

    AtnaMessage that = (AtnaMessage) o;
    if (eventActionCode != null
        ? !eventActionCode.equals(that.eventActionCode)
        : that.eventActionCode != null) {
      return false;
    }
    if (eventCode != null ? !eventCode.equals(that.eventCode) : that.eventCode != null) {
      return false;
    }
    if (eventDateTime != null
        ? !eventDateTime.equals(that.eventDateTime)
        : that.eventDateTime != null) {
      return false;
    }
    if (eventOutcome != that.eventOutcome) {
      return false;
    }
    if (eventTypeCodes != null
        ? !eventTypeCodes.equals(that.eventTypeCodes)
        : that.eventTypeCodes != null) {
      return false;
    }
    if (objects != null ? !objects.equals(that.objects) : that.objects != null) {
      return false;
    }
    if (participants != null
        ? !participants.equals(that.participants)
        : that.participants != null) {
      return false;
    }
    if (sources != null ? !sources.equals(that.sources) : that.sources != null) {
      return false;
    }

    return true;
  }