package com.reucon.openfire.plugin.archive.model;
import org.jivesoftware.database.JiveID;
import org.xmpp.packet.JID;
import java.util.Date;
/**
* An archived message.
*/
@JiveID(601)
public class ArchivedMessage {
public enum Direction {
/**
* A message sent by the owner.
*/
to,
/**
* A message received by the owner.
*/
from
}
private Long id;
private final Date time;
private final Direction direction;
private final String type;
private String subject;
private String body;
private Conversation conversation;
private JID withJid;
private String stanza;
public ArchivedMessage(Date time, Direction direction, String type, JID withJid) {
this.time = time;
this.direction = direction;
this.type = type;
this.withJid = withJid;
}
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public Date getTime() {
return time;
}
public Direction getDirection() {
return direction;
}
public String getType() {
return type;
}
public String getSubject() {
return subject;
}
public void setSubject(String subject) {
this.subject = subject;
}
public String getBody() {
return body;
}
public void setBody(String body) {
this.body = body;
}
public String getStanza() {
return stanza;
}
public void setStanza(String stanza) {
this.stanza = stanza;
}
public Conversation getConversation() {
return conversation;
}
public void setConversation(Conversation conversation) {
this.conversation = conversation;
}
/**
* Checks if this message contains payload that should be archived.
*
* @return <code>true</code> if this message is empty, <code>false</code>
* otherwise.
*/
public boolean isEmpty() {
return subject == null && body == null;
}
public JID getWithJid() {
return withJid;
}
public String toString() {
StringBuilder sb = new StringBuilder();
sb.append("ArchivedMessage[id=").append(id).append(",");
sb.append("time=").append(time).append(",");
sb.append("direction=").append(direction).append("]");
return sb.toString();
}
}