Package in.partake.model.dto

Source Code of in.partake.model.dto.UserSentMessage

package in.partake.model.dto;

import in.partake.base.DateTime;

import java.util.ArrayList;
import java.util.List;
import java.util.UUID;

import org.apache.commons.lang.ObjectUtils;
import org.codehaus.jackson.JsonNode;
import org.codehaus.jackson.node.ArrayNode;
import org.codehaus.jackson.node.JsonNodeFactory;
import org.codehaus.jackson.node.ObjectNode;

import com.google.common.base.Strings;

/**
* @author shinyak
*
*/
public class UserSentMessage extends PartakeModel<UserSentMessage> {
    private UUID id;
    private String senderId;
    private List<String> receiverIds;
    private String eventId;
    private String messageId;
    private DateTime createdAt;
    private DateTime modifiedAt;

    public UserSentMessage(UserSentMessage message) {
        this(message.id, message.senderId, message.receiverIds,
                message.eventId, message.messageId,
                message.createdAt, message.modifiedAt);
    }

    public UserSentMessage(UUID id, String senderId, List<String> receiverIds, String eventId, String messageId,
            DateTime createdAt, DateTime modifiedAt) {
        this.id = id;
        this.senderId = senderId;
        this.receiverIds = new ArrayList<String>(receiverIds);
        this.eventId = eventId;
        this.messageId = messageId;
        this.createdAt = createdAt;
        this.modifiedAt = modifiedAt;
    }

    public UserSentMessage(ObjectNode obj) {
        this.id = UUID.fromString(obj.get("id").asText());
        this.senderId = obj.get("senderId").asText();
        this.receiverIds = new ArrayList<String>();
        JsonNode array = obj.get("receiverIds");
        if (array != null) {
            for (int i = 0; i < array.size(); ++i)
                this.receiverIds.add(array.get(i).asText());
        }
        this.eventId = Strings.emptyToNull(obj.path("eventId").asText());
        this.messageId = obj.get("messageId").asText();

        this.createdAt = new DateTime(obj.get("createdAt").asLong());
        if (obj.has("modifiedAt"))
            this.modifiedAt = new DateTime(obj.get("modifiedAt").asLong());
    }

    @Override
    public Object getPrimaryKey() {
        return id;
    }

    @Override
    public ObjectNode toJSON() {
        ObjectNode obj = new ObjectNode(JsonNodeFactory.instance);
        obj.put("id", id.toString());
        obj.put("senderId", senderId);

        ArrayNode array = obj.putArray("receiverIds");
        for (String receiverId : receiverIds)
            array.add(receiverId);

        if (eventId != null)
            obj.put("eventId", eventId);
        obj.put("messageId", messageId);

        if (createdAt != null)
            obj.put("createdAt", createdAt.getTime());
        if (modifiedAt != null)
            obj.put("modifiedAt", modifiedAt.getTime());
        return obj;
    }

    // ----------------------------------------------------------------------
    // equals method

    @Override
    public boolean equals(Object obj) {
        if (!(obj instanceof UserSentMessage)) { return false; }

        UserSentMessage lhs = this;
        UserSentMessage rhs = (UserSentMessage) obj;

        if (!(ObjectUtils.equals(lhs.id,          rhs.id)))          { return false; }
        if (!(ObjectUtils.equals(lhs.senderId,    rhs.senderId)))    { return false; }
        if (!(ObjectUtils.equals(lhs.receiverIds, rhs.receiverIds))) { return false; }
        if (!(ObjectUtils.equals(lhs.eventId,     rhs.eventId)))     { return false; }
        if (!(ObjectUtils.equals(lhs.messageId,   rhs.messageId)))   { return false; }
        if (!(ObjectUtils.equals(lhs.createdAt,   rhs.createdAt)))   { return false; }
        if (!(ObjectUtils.equals(lhs.modifiedAt,  rhs.modifiedAt)))  { return false; }
        return true;
    }

    @Override
    public int hashCode() {
        int code = 0;

        code = code * 37 + ObjectUtils.hashCode(id);
        code = code * 37 + ObjectUtils.hashCode(senderId);
        code = code * 37 + ObjectUtils.hashCode(receiverIds);
        code = code * 37 + ObjectUtils.hashCode(eventId);
        code = code * 37 + ObjectUtils.hashCode(messageId);
        code = code * 37 + ObjectUtils.hashCode(createdAt);
        code = code * 37 + ObjectUtils.hashCode(modifiedAt);

        return code;
    }

    // ----------------------------------------------------------------------
    // accessors

    public UUID getId() {
        return id;
    }

    public String getSenderId() {
        return senderId;
    }

    public List<String> getReceiverIds() {
        return receiverIds;
    }

    public String getEventId() {
        return eventId;
    }

    public String getMessageId() {
        return messageId;
    }

    public DateTime getCreatedAt() {
        return createdAt;
    }

    public DateTime getModifiedAt() {
        return modifiedAt;
    }

    public void setId(UUID id) {
        checkFrozen();
        this.id = id;
    }

    public void setSenderId(String senderId) {
        checkFrozen();
        this.senderId = senderId;
    }

    public void setReceiverIds(List<String> receiverIds) {
        checkFrozen();
        if (receiverIds == null)
            this.receiverIds = null;
        else
            this.receiverIds = new ArrayList<String>(receiverIds);
    }

    public void setEventId(String eventId) {
        checkFrozen();
        this.eventId = eventId;
    }

    public void setMessageId(String messageId) {
        checkFrozen();
        this.messageId = messageId;
    }

    public void setCreatedAt(DateTime createdAt) {
        checkFrozen();
        this.createdAt = createdAt;
    }

    public void setModifiedAt(DateTime modifiedAt) {
        checkFrozen();
        this.modifiedAt = modifiedAt;
    }
}
TOP

Related Classes of in.partake.model.dto.UserSentMessage

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.