

/*
 * Feedly Cloud API
 * The feedly Cloud API  This describes the resources that make up the official feedly cloud API v3. If you have any problems or requests please contact us through the [developer forum](https://groups.google.com/forum/#!forum/feedly-cloud).  All API access is over HTTP or HTTPS, and accessed from the cloud.feedly.com domain. All data is sent and received as JSON.  Blank fields are omitted.  All timestamps are UTC EPOCH in milliseconds (number of milliseconds since January 1st 1970, UTC timezone). 
 *
 * OpenAPI spec version: 3.0
 * 
 *
 * NOTE: This class is auto generated by the swagger code generator program.
 * https://github.com/swagger-api/swagger-codegen.git
 * Do not edit the class manually.
 *
 * Licensed 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 com.feedly.cloud;

import com.google.gson.annotations.SerializedName;

import java.util.ArrayList;
import java.util.List;
import java.util.Objects;

import io.swagger.annotations.ApiModelProperty;


/**
 * SearchResponse
 */
@javax.annotation.Generated(value = "class io.swagger.codegen.languages.JavaClientCodegen", date = "2016-11-17T21:05:09.739-05:00")
public class SearchResponse   {
  @SerializedName("results")
  private List<FeedItem> results = new ArrayList<FeedItem>();

  @SerializedName("related")
  private List<String> related = new ArrayList<String>();

  @SerializedName("hint")
  private String hint = null;

  public SearchResponse results(List<FeedItem> results) {
    this.results = results;
    return this;
  }

  public SearchResponse addResultsItem(FeedItem resultsItem) {
    this.results.add(resultsItem);
    return this;
  }

   /**
   * a list of feeds matching the search query. Feeds which are sponsored should be listed above feeds which are featured and above other search results.
   * @return results
  **/
  @ApiModelProperty(example = "null", value = "a list of feeds matching the search query. Feeds which are sponsored should be listed above feeds which are featured and above other search results.")
  public List<FeedItem> getResults() {
    return results;
  }

  public void setResults(List<FeedItem> results) {
    this.results = results;
  }

  public SearchResponse related(List<String> related) {
    this.related = related;
    return this;
  }

  public SearchResponse addRelatedItem(String relatedItem) {
    this.related.add(relatedItem);
    return this;
  }

   /**
   * a list of other keywords the user might be interested in searching.
   * @return related
  **/
  @ApiModelProperty(example = "null", value = "a list of other keywords the user might be interested in searching.")
  public List<String> getRelated() {
    return related;
  }

  public void setRelated(List<String> related) {
    this.related = related;
  }

  public SearchResponse hint(String hint) {
    this.hint = hint;
    return this;
  }

   /**
   * an auto-completion guess of the keyword the user is trying to search for.
   * @return hint
  **/
  @ApiModelProperty(example = "null", value = "an auto-completion guess of the keyword the user is trying to search for.")
  public String getHint() {
    return hint;
  }

  public void setHint(String hint) {
    this.hint = hint;
  }


  @Override
  public boolean equals(Object o) {
    if (this == o) {
      return true;
    }
    if (o == null || getClass() != o.getClass()) {
      return false;
    }
    SearchResponse searchResponse = (SearchResponse) o;
    return Objects.equals(this.results, searchResponse.results) &&
        Objects.equals(this.related, searchResponse.related) &&
        Objects.equals(this.hint, searchResponse.hint);
  }

  @Override
  public int hashCode() {
    return Objects.hash(results, related, hint);
  }

  @Override
  public String toString() {
    StringBuilder sb = new StringBuilder();
    sb.append("class SearchResponse {\n");
    
    sb.append("    results: ").append(toIndentedString(results)).append("\n");
    sb.append("    related: ").append(toIndentedString(related)).append("\n");
    sb.append("    hint: ").append(toIndentedString(hint)).append("\n");
    sb.append("}");
    return sb.toString();
  }

  /**
   * Convert the given object to string with each line indented by 4 spaces
   * (except the first line).
   */
  private String toIndentedString(Object o) {
    if (o == null) {
      return "null";
    }
    return o.toString().replace("\n", "\n    ");
  }
}

