package org.sakaiproject.tool.messageforums.entityproviders.sparsepojos; import java.util.ArrayList; import java.util.List; import lombok.Getter; import lombok.Setter; import org.sakaiproject.api.app.messageforums.Attachment; import org.sakaiproject.api.app.messageforums.DiscussionForum; import org.sakaiproject.entitybroker.DeveloperHelperService; /** * A json friendly representation of a DiscussionForum. Just the stuff you need, hopefully. * * @author Adrian Fish <adrian.r.fish@gmail.com> */ public class SparsestForum { @Getter private Long id; @Getter private String title; /** * An epoch date in seconds. NOT milliseconds. */ @Getter private Long createdDate; @Getter private String creator; @Getter private String extendedDescription; @Getter private String shortDescription; @Getter private Boolean isModerated; /** * An epoch date in seconds. NOT milliseconds. */ @Getter private Long modifiedDate; @Getter private String modifier; @Getter @Setter private Integer totalMessages; @Getter @Setter private Integer readMessages; @Getter private Boolean isDraft; @Getter private List<SparseAttachment> attachments = new ArrayList<SparseAttachment>(); public SparsestForum(DiscussionForum fatForum, DeveloperHelperService dhs) { this.id = fatForum.getId(); this.title = fatForum.getTitle(); // Epoch time in seconds for the created date this.createdDate = fatForum.getCreated().getTime()/1000; this.creator = fatForum.getCreatedBy(); this.extendedDescription = fatForum.getExtendedDescription(); this.shortDescription = fatForum.getShortDescription(); this.isModerated = fatForum.getModerated(); this.modifiedDate = fatForum.getModified().getTime()/1000; this.modifier = fatForum.getModifiedBy(); this.isDraft = fatForum.getDraft(); for(Attachment attachment : (List<Attachment>) fatForum.getAttachments()) { String url = dhs.getServerURL() + "/access/content" + attachment.getAttachmentId(); attachments.add(new SparseAttachment(attachment.getAttachmentName(),url)); } } }