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.ambari.server.controller.ivory;
  
  /**
   * Ivory mirroring job instance.
   */
  public class Instance {
  
    private final String feedName;
    private final String id;
    private final String status;
    private final String startTime;
    private final String endTime;
    private final String details;
    private final String log;
  
    /**
     * Construct an instance.
     *
     * @param feedName   the feed name
     * @param id         the id
     * @param status     the status
     * @param startTime  the start time
     * @param endTime    the end time
     * @param details    the details
     * @param log        the log
     */
    public Instance(String feedName, String id, String status, String startTime, String endTime, String details, String log) {
      this.feedName = feedName;
      this.id = id;
      this.status = status;
      this.startTime = startTime;
      this.endTime = endTime;
      this.details = details;
      this.log = log;
    }
  
    /**
     * Get the feed name.
     *
     * @return the feed name
     */
    public String getFeedName() {
      return feedName;
    }
  
    /**
     * Get the ID.
     *
     * @return the id
     */
    public String getId() {
      return id;
    }
  
    /**
     * Get the status.
     *
     * @return the status
     */
    public String getStatus() {
      return status;
    }
  
    /**
     * Get the start time.
     *
     * @return the start time
     */
    public String getStartTime() {
      return startTime;
    }
  
    /**
     * Get the end time.
     *
     * @return the end time
     */
    public String getEndTime() {
      return endTime;
    }
  
    /**
     * Get the details.
     *
     * @return the details
     */
    public String getDetails() {
      return details;
    }
  
    /**
     * Get the log.
     *
     * @return the log
     */
    public String getLog() {
      return log;
    }
  
    @Override
    public boolean equals(Object o) {
      if (this == o) return true;
      if (o == null || getClass() != o.getClass()) return false;
  
      Instance instance = (Instance) o;
  
      return !(details != null   ? !details.equals(instance.details)     : instance.details != null) &&
             !(endTime != null   ? !endTime.equals(instance.endTime)     : instance.endTime != null) &&
             !(feedName != null  ? !feedName.equals(instance.feedName)   : instance.feedName != null) &&
             !(id != null        ? !id.equals(instance.id)               : instance.id != null) &&
             !(log != null       ? !log.equals(instance.log)             : instance.log != null) &&
             !(startTime != null ? !startTime.equals(instance.startTime) : instance.startTime != null) &&
             !(status != null    ? !status.equals(instance.status)       : instance.status != null);
    }
  
    @Override
    public int hashCode() {
      int result = feedName != null ? feedName.hashCode() : 0;
      result = 31 * result + (id != null ? id.hashCode() : 0);
      result = 31 * result + (status != null ? status.hashCode() : 0);
      result = 31 * result + (startTime != null ? startTime.hashCode() : 0);
      result = 31 * result + (endTime != null ? endTime.hashCode() : 0);
      result = 31 * result + (details != null ? details.hashCode() : 0);
      result = 31 * result + (log != null ? log.hashCode() : 0);
      return result;
    }
  }
  