diff --git a/src/main/java/org/gcube/portal/socialnetworking/model/input/Message.java b/src/main/java/org/gcube/portal/socialnetworking/model/input/Message.java new file mode 100644 index 0000000..63803e5 --- /dev/null +++ b/src/main/java/org/gcube/portal/socialnetworking/model/input/Message.java @@ -0,0 +1,138 @@ +package org.gcube.portal.socialnetworking.model.input; + +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import javax.validation.constraints.NotNull; + +import com.fasterxml.jackson.annotation.JsonProperty; +/** + * Used for serialization of {@link org.gcube.common.homelibrary.home.workspace.sharing.WorkspaceMessage} + * @author Costantino Perciante at ISTI-CNR (costantino.perciante@isti.cnr.it) + */ +public class Message { + + @JsonProperty("id") + private String id; + + @JsonProperty("subject") + @NotNull + private String subject; + + @JsonProperty("body") + @NotNull + private String body; + + @JsonProperty("sender") + private String senderId; + + @JsonProperty("send_time") + private Calendar sendTime; + + @JsonProperty("read") + private boolean read; + + @JsonProperty("attachment_ids") + private List attachmentIds; + + @JsonProperty("recipients") + @NotNull + private List recipients; + + public Message() { + super(); + } + + public Message(String id, String subject, String body, + String senderId, Calendar sendTime, boolean read, + List attachmentIds, List recipients) { + super(); + this.id = id; + this.subject = subject; + this.body = body; + this.senderId = senderId; + this.sendTime = sendTime; + this.read = read; + this.attachmentIds = attachmentIds; + this.recipients = recipients; + } + + public Message(String subject, String body, ArrayList recipients) { + this.subject = subject; + this.body = body; + this.recipients = recipients; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + 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 getSenderId() { + return senderId; + } + + public void setSenderId(String senderId) { + this.senderId = senderId; + } + + public Calendar getSendTime() { + return sendTime; + } + + public void setSendTime(Calendar sendTime) { + this.sendTime = sendTime; + } + + public boolean isRead() { + return read; + } + + public void setRead(boolean read) { + this.read = read; + } + + public List getAttachmentIds() { + return attachmentIds; + } + + public void setAttachmentIds(List attachmentIds) { + this.attachmentIds = attachmentIds; + } + + public List getRecipients() { + return recipients; + } + + public void setRecipients(List recipients) { + this.recipients = recipients; + } + + @Override + public String toString() { + return "MessageOutputBeanMixIn [id=" + id + ", subject=" + subject + + ", body=" + body + ", senderId=" + senderId + ", sendTime=" + + sendTime + ", read=" + read + ", attachmentIds=" + + attachmentIds + ", recipients=" + recipients + "]"; + } +} diff --git a/src/main/java/org/gcube/portal/socialnetworking/model/input/MessageInputBean.java b/src/main/java/org/gcube/portal/socialnetworking/model/input/MessageInputBean.java deleted file mode 100644 index 6681a31..0000000 --- a/src/main/java/org/gcube/portal/socialnetworking/model/input/MessageInputBean.java +++ /dev/null @@ -1,78 +0,0 @@ -package org.gcube.portal.socialnetworking.model.input; - -import java.io.Serializable; -import java.util.ArrayList; - -import javax.validation.Valid; -import javax.validation.constraints.NotNull; -import javax.validation.constraints.Size; - -import com.fasterxml.jackson.annotation.JsonIgnoreProperties; -import com.fasterxml.jackson.annotation.JsonProperty; - -/** - * Generic input bean for methods that allow to write messages - * @author Costantino Perciante at ISTI-CNR - */ -@JsonIgnoreProperties(ignoreUnknown = true) // ignore in serialization/deserialization -public class MessageInputBean implements Serializable { - - private static final long serialVersionUID = -1317811686036127456L; - - @JsonProperty("body") - @NotNull(message="body cannot be missing") - @Size(min=1, message="body cannot be empty") - private String body; - - @JsonProperty("subject") - @NotNull(message="subject cannot be missing") - @Size(min=1, message="subject cannot be empty") - private String subject; - - @JsonProperty("recipients") - @NotNull(message="recipients cannot be missing") - @Size(min=1, message="at least a recipient is needed") - @Valid // validate recursively - private ArrayList recipients; - - public MessageInputBean(){ - super(); - } - - public MessageInputBean(String body, String subject, - ArrayList recipients) { - super(); - //this.sender = sender; - this.body = body; - this.subject = subject; - this.recipients = recipients; - } - - public String getBody() { - return body; - } - public void setBody(String body) { - this.body = body; - } - public String getSubject() { - return subject; - } - public void setSubject(String subject) { - this.subject = subject; - } - public ArrayList getRecipients() { - return recipients; - } - public void setRecipients(ArrayList recipients) { - this.recipients = recipients; - } - - @Override - public String toString() { - return "MessageInputBean [" - + (body != null ? "body=" + body + ", " : "") - + (subject != null ? "subject=" + subject + ", " : "") - + (recipients != null ? "recipients=" + recipients : "") + "]"; - } - -} diff --git a/src/main/java/org/gcube/portal/socialnetworking/model/output/MessageOutputBeanMixIn.java b/src/main/java/org/gcube/portal/socialnetworking/model/output/MessageOutputBeanMixIn.java deleted file mode 100644 index 2231113..0000000 --- a/src/main/java/org/gcube/portal/socialnetworking/model/output/MessageOutputBeanMixIn.java +++ /dev/null @@ -1,62 +0,0 @@ -package org.gcube.portal.socialnetworking.model.output; - -import java.util.Calendar; -import java.util.List; - -import javax.jcr.ItemNotFoundException; - -import org.gcube.common.homelibrary.home.User; -import org.gcube.common.homelibrary.home.exceptions.InternalErrorException; -import org.gcube.common.homelibrary.home.workspace.WorkspaceItem; -import org.gcube.common.homelibrary.home.workspace.exceptions.WrongDestinationException; - -import com.fasterxml.jackson.annotation.JsonIgnore; -import com.fasterxml.jackson.annotation.JsonProperty; -/** - * Used for serialization of {@link org.gcube.common.homelibrary.home.workspace.sharing.WorkspaceMessage} - * @author Costantino Perciante at ISTI-CNR (costantino.perciante@isti.cnr.it) - */ -public interface MessageOutputBeanMixIn { - - @JsonProperty("id") - String getId(); - - @JsonProperty("subject") - String getSubject(); - - @JsonProperty("body") - String getBody(); - - @JsonProperty("sender") - User getSender(); - - @JsonProperty("send_time") - Calendar getSendTime(); - - @JsonProperty("read") - boolean isRead(); - - @JsonProperty("attachments_ids") - List getAttachmentsIds(); - - @JsonProperty("recipients") - List getAddresses(); - - @JsonIgnore - void setStatus(boolean status) throws InternalErrorException; - - @JsonIgnore - List getAttachments() throws InternalErrorException; - - @JsonIgnore - WorkspaceItem saveAttachment(String attachmentId, String destinationFolderId) - throws InternalErrorException, WrongDestinationException, - ItemNotFoundException; - - @JsonIgnore - void open() throws InternalErrorException; - - @JsonIgnore - List getCopyAttachmentsIds(); - -}