class TcpFlagsMatchConditions implements Serializable, Comparable<TcpFlagsMatchConditions> {

  @Override
  public boolean equals(Object o) {
    if (this == o) {
      return true;
    }
    if (!(o instanceof TcpFlagsMatchConditions)) {
      return false;
    }
    TcpFlagsMatchConditions other = (TcpFlagsMatchConditions) o;
    return Objects.equals(_tcpFlags, other._tcpFlags)
        && _useAck == other._useAck
        && _useCwr == other._useCwr
        && _useEce == other._useEce
        && _useFin == other._useFin
        && _usePsh == other._usePsh
        && _useRst == other._useRst
        && _useSyn == other._useSyn
        && _useUrg == other._useUrg;
  }

  @JsonCreator private  TcpFlagsMatchConditions(
      @JsonProperty(PROP_TCP_FLAGS) TcpFlags tcpFlags,
      @JsonProperty(PROP_USE_ACK) boolean useAck,
      @JsonProperty(PROP_USE_CWR) boolean useCwr,
      @JsonProperty(PROP_USE_ECE) boolean useEce,
      @JsonProperty(PROP_USE_FIN) boolean useFin,
      @JsonProperty(PROP_USE_PSH) boolean usePsh,
      @JsonProperty(PROP_USE_RST) boolean useRst,
      @JsonProperty(PROP_USE_SYN) boolean useSyn,
      @JsonProperty(PROP_USE_URG) boolean useUrg);

}