content: /*
   * Licensed to the Apache Software Foundation (ASF) under one or more
   * contributor license agreements.  See the NOTICE file distributed with
   * this work for additional information regarding copyright ownership.
   * The ASF licenses this file to You under the Apache License, Version 2.0
   * (the "License"); you may not use this file except in compliance with
   * the License.  You may obtain a copy of the License at
   *
   *      http://www.apache.org/licenses/LICENSE-2.0
   *
   * Unless required by applicable law or agreed to in writing, software
   * distributed under the License is distributed on an "AS IS" BASIS,
   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   * See the License for the specific language governing permissions and
   * limitations under the License.
   */
  
  package org.apache.camel.component.zeebe.model;
  
  import java.util.Collections;
  import java.util.Map;
  import java.util.Objects;
  
  import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
  import com.fasterxml.jackson.annotation.JsonInclude;
  import com.fasterxml.jackson.annotation.JsonProperty;
  
  @JsonInclude(JsonInclude.Include.NON_NULL)
  @JsonIgnoreProperties(ignoreUnknown = true)
  public class MessageRequest implements ZeebeMessage {
  
      private String name;
  
      @JsonProperty("correlation_key")
      private String correlationKey;
  
      @JsonProperty("time_to_live")
      private long timeToLive = -1;
  
      @JsonProperty("message_id")
      private String messageId;
  
      private Map<String, Object> variables = Collections.emptyMap();
  
      public String getName() {
          return name;
      }
  
      public void setName(String name) {
          this.name = name;
      }
  
      public String getCorrelationKey() {
          return correlationKey;
      }
  
      public void setCorrelationKey(String correlationKey) {
          this.correlationKey = correlationKey;
      }
  
      public long getTimeToLive() {
          return timeToLive;
      }
  
      public void setTimeToLive(long timeToLive) {
          this.timeToLive = timeToLive;
      }
  
      public String getMessageId() {
          return messageId;
      }
  
      public void setMessageId(String messageId) {
          this.messageId = messageId;
      }
  
      public Map<String, Object> getVariables() {
          return variables;
      }
  
      public void setVariables(Map<String, Object> variables) {
          this.variables = variables;
      }
  
      @Override
      public String toString() {
          return "MessageRequest{" + "name='" + name + '\'' +
                 ", correlationKey='" + correlationKey + '\'' +
                 ", timeToLive=" + timeToLive +
                 ", messageId='" + messageId + '\'' +
                 ", variables=" + variables +
                 '}';
      }
  
      @Override
      public boolean equals(Object o) {
          if (this == o) {
              return true;
          }
          if (o == null || getClass() != o.getClass()) {
              return false;
          }
          MessageRequest that = (MessageRequest) o;
          return timeToLive == that.timeToLive && Objects.equals(name, that.name) && correlationKey.equals(that.correlationKey)
                  && Objects.equals(messageId, that.messageId) && Objects.equals(variables, that.variables);
      }
  
      @Override
      public int hashCode() {
          return Objects.hash(name, correlationKey, timeToLive, messageId, variables);
      }
  }
  