import java.util.ArrayList;
import java.util.List;
import javax.annotation.Generated;
import com.google.gson.annotations.Expose;
import com.google.gson.annotations.SerializedName;
import org.apache.commons.lang.builder.EqualsBuilder;
import org.apache.commons.lang.builder.HashCodeBuilder;
import org.apache.commons.lang.builder.ToStringBuilder;

@Generated("org.jsonschema2pojo")
public class CategoryNews {

    @SerializedName("friends")
    @Expose
    private List<String> friends = new ArrayList<String>();
    @SerializedName("reason")
    @Expose
    private String reason;
    @SerializedName("title")
    @Expose
    private String title;
    @SerializedName("summary")
    @Expose
    private String summary;
    @SerializedName("thumbnail")
    @Expose
    private String thumbnail;
    @SerializedName("public_time")
    @Expose
    private Integer publicTime;
    @SerializedName("source")
    @Expose
    private String source;
    @SerializedName("transcoder_url")
    @Expose
    private String transcoderUrl;
    @SerializedName("open_type")
    @Expose
    private String openType;
    @SerializedName("original_url")
    @Expose
    private String originalUrl;
    @SerializedName("category")
    @Expose
    private String category;
    @SerializedName("topic")
    @Expose
    private String topic;
    @SerializedName("impression_id")
    @Expose
    private String impressionId;
    @SerializedName("aticle_id")
    @Expose
    private String aticleId;
    @SerializedName("card_type")
    @Expose
    private String cardType;

    /**
     * 
     * @return
     *     The friends
     */
    public List<String> getFriends() {
        return friends;
    }

    /**
     * 
     * @param friends
     *     The friends
     */
    public void setFriends(List<String> friends) {
        this.friends = friends;
    }

    /**
     * 
     * @return
     *     The reason
     */
    public String getReason() {
        return reason;
    }

    /**
     * 
     * @param reason
     *     The reason
     */
    public void setReason(String reason) {
        this.reason = reason;
    }

    /**
     * 
     * @return
     *     The title
     */
    public String getTitle() {
        return title;
    }

    /**
     * 
     * @param title
     *     The title
     */
    public void setTitle(String title) {
        this.title = title;
    }

    /**
     * 
     * @return
     *     The summary
     */
    public String getSummary() {
        return summary;
    }

    /**
     * 
     * @param summary
     *     The summary
     */
    public void setSummary(String summary) {
        this.summary = summary;
    }

    /**
     * 
     * @return
     *     The thumbnail
     */
    public String getThumbnail() {
        return thumbnail;
    }

    /**
     * 
     * @param thumbnail
     *     The thumbnail
     */
    public void setThumbnail(String thumbnail) {
        this.thumbnail = thumbnail;
    }

    /**
     * 
     * @return
     *     The publicTime
     */
    public Integer getPublicTime() {
        return publicTime;
    }

    /**
     * 
     * @param publicTime
     *     The public_time
     */
    public void setPublicTime(Integer publicTime) {
        this.publicTime = publicTime;
    }

    /**
     * 
     * @return
     *     The source
     */
    public String getSource() {
        return source;
    }

    /**
     * 
     * @param source
     *     The source
     */
    public void setSource(String source) {
        this.source = source;
    }

    /**
     * 
     * @return
     *     The transcoderUrl
     */
    public String getTranscoderUrl() {
        return transcoderUrl;
    }

    /**
     * 
     * @param transcoderUrl
     *     The transcoder_url
     */
    public void setTranscoderUrl(String transcoderUrl) {
        this.transcoderUrl = transcoderUrl;
    }

    /**
     * 
     * @return
     *     The openType
     */
    public String getOpenType() {
        return openType;
    }

    /**
     * 
     * @param openType
     *     The open_type
     */
    public void setOpenType(String openType) {
        this.openType = openType;
    }

    /**
     * 
     * @return
     *     The originalUrl
     */
    public String getOriginalUrl() {
        return originalUrl;
    }

    /**
     * 
     * @param originalUrl
     *     The original_url
     */
    public void setOriginalUrl(String originalUrl) {
        this.originalUrl = originalUrl;
    }

    /**
     * 
     * @return
     *     The category
     */
    public String getCategory() {
        return category;
    }

    /**
     * 
     * @param category
     *     The category
     */
    public void setCategory(String category) {
        this.category = category;
    }

    /**
     * 
     * @return
     *     The topic
     */
    public String getTopic() {
        return topic;
    }

    /**
     * 
     * @param topic
     *     The topic
     */
    public void setTopic(String topic) {
        this.topic = topic;
    }

    /**
     * 
     * @return
     *     The impressionId
     */
    public String getImpressionId() {
        return impressionId;
    }

    /**
     * 
     * @param impressionId
     *     The impression_id
     */
    public void setImpressionId(String impressionId) {
        this.impressionId = impressionId;
    }

    /**
     * 
     * @return
     *     The aticleId
     */
    public String getAticleId() {
        return aticleId;
    }

    /**
     * 
     * @param aticleId
     *     The aticle_id
     */
    public void setAticleId(String aticleId) {
        this.aticleId = aticleId;
    }

    /**
     * 
     * @return
     *     The cardType
     */
    public String getCardType() {
        return cardType;
    }

    /**
     * 
     * @param cardType
     *     The card_type
     */
    public void setCardType(String cardType) {
        this.cardType = cardType;
    }

    @Override
    public String toString() {
        return ToStringBuilder.reflectionToString(this);
    }

    @Override
    public int hashCode() {
        return new HashCodeBuilder().append(friends).append(reason).append(title).append(summary).append(thumbnail).append(publicTime).append(source).append(transcoderUrl).append(openType).append(originalUrl).append(category).append(topic).append(impressionId).append(aticleId).append(cardType).toHashCode();
    }

    @Override
    public boolean equals(Object other) {
        if (other == this) {
            return true;
        }
        if ((other instanceof CategoryNews) == false) {
            return false;
        }
        CategoryNews rhs = ((CategoryNews) other);
        return new EqualsBuilder().append(friends, rhs.friends).append(reason, rhs.reason).append(title, rhs.title).append(summary, rhs.summary).append(thumbnail, rhs.thumbnail).append(publicTime, rhs.publicTime).append(source, rhs.source).append(transcoderUrl, rhs.transcoderUrl).append(openType, rhs.openType).append(originalUrl, rhs.originalUrl).append(category, rhs.category).append(topic, rhs.topic).append(impressionId, rhs.impressionId).append(aticleId, rhs.aticleId).append(cardType, rhs.cardType).isEquals();
    }

}
