All Downloads are FREE. Search and download functionalities are using the official Maven repository.

de.otto.edison.status.domain.Link Maven / Gradle / Ivy

There is a newer version: 3.3.3
Show newest version
package de.otto.edison.status.domain;

import com.fasterxml.jackson.annotation.JsonInclude;

/**
 * @author Guido Steinacker
 * @since 21.08.15
 */
@JsonInclude(JsonInclude.Include.NON_NULL)
public class Link {

    public final String href;
    public final String rel;
    public final String title;

    private Link(final String href, final String rel, final String title) {
        this.href = href;
        this.rel = rel;
        this.title = title;
    }

    public static Link link(final String rel, final String href, final String title) {
        return new Link(href, rel, title);
    }

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;

        Link link = (Link) o;

        if (href != null ? !href.equals(link.href) : link.href != null) return false;
        if (rel != null ? !rel.equals(link.rel) : link.rel != null) return false;
        if (title != null ? !title.equals(link.title) : link.title != null) return false;

        return true;
    }

    @Override
    public int hashCode() {
        int result = href != null ? href.hashCode() : 0;
        result = 31 * result + (rel != null ? rel.hashCode() : 0);
        result = 31 * result + (title != null ? title.hashCode() : 0);
        return result;
    }

    @Override
    public String toString() {
        return "Link{" +
                "href='" + href + '\'' +
                ", rel='" + rel + '\'' +
                ", title='" + title + '\'' +
                '}';
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy