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

io.sphere.client.shop.model.SyncInfo Maven / Gradle / Ivy

There is a newer version: 0.72.1
Show newest version
package io.sphere.client.shop.model;

import io.sphere.client.model.Reference;
import org.joda.time.DateTime;

import javax.annotation.Nullable;

import static com.google.common.base.Strings.nullToEmpty;

public final class SyncInfo {
    private Reference channel;
    private String externalId;
    private DateTime syncedAt;

    public SyncInfo(Reference channel, String externalId, DateTime syncedAt) {
        this.channel = channel;
        this.externalId = externalId;
        this.syncedAt = syncedAt;
    }

    //for JSON mapper
    protected SyncInfo() {
    }

    public SyncInfo(Reference channel, String externalId) {
        this(channel, externalId, DateTime.now());
    }

    public SyncInfo(Reference channel, DateTime syncedAt) {
        this(channel, "", syncedAt);
    }

    public SyncInfo(Reference channel) {
        this(channel, "");
    }

    public Reference getChannel() {
        return channel;
    }

    public String getExternalId() {
        return externalId;
    }

    public DateTime getSyncedAt() {
        return syncedAt;
    }

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

        SyncInfo syncInfo = (SyncInfo) o;

        if (!channel.equals(syncInfo.channel)) return false;
        if (externalId != null ? !externalId.equals(syncInfo.externalId) : syncInfo.externalId != null) return false;
        if (syncedAt.getMillis() != syncInfo.syncedAt.getMillis()) return false;

        return true;
    }

    @Override
    public int hashCode() {
        int result = channel.hashCode();
        result = 31 * result + (externalId != null ? externalId.hashCode() : 0);
        result = 31 * result + syncedAt.hashCode();
        return result;
    }

    @Override
    public String toString() {
        return "SyncInfo{" +
                "channel=" + channel +
                ", externalId='" + externalId + '\'' +
                ", syncedAt=" + syncedAt +
                '}';
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy