package edu.ncsu.dlf.model;
import java.io.IOException;
import java.util.Collections;
import java.util.List;
import com.mongodb.ReflectionDBObject;
import org.eclipse.egit.github.core.service.UserService;
import org.json.JSONException;
import org.json.JSONObject;
public class Review extends ReflectionDBObject {
public PDFUser requester;
public PDFUser reviewer;
public Repo repo;
public String pathToPaperInRepo;
public String linkToReviewPaper;
public List<String> customLabels = Collections.emptyList();
public Review() {
// For Mongo
}
public Review(PDFUser requester, PDFUser reviewer, Repo repo, String pathToPaperInRepo, String downloadPaperLink) {
this.requester = requester;
this.reviewer = reviewer;
this.pathToPaperInRepo = pathToPaperInRepo;
this.linkToReviewPaper = downloadPaperLink;
this.repo = repo;
}
public Review(PDFUser requester, PDFUser repoOwner, PDFUser reviewer, String repoName, String pathToPaperInRepo, String downloadPaperLink) {
this.requester = requester;
this.reviewer = reviewer;
this.pathToPaperInRepo = pathToPaperInRepo;
this.linkToReviewPaper = downloadPaperLink;
this.repo = new Repo(repoOwner.login, repoName);
}
public Review(String requesterLogin, String writerLogin, String reviewerLogin, String repo, String pathToPaperInRepo, String downloadPaperLink, UserService userService) throws IOException {
this(PDFUser.userFromLogin(requesterLogin, userService),
PDFUser.userFromLogin(writerLogin, userService),
PDFUser.userFromLogin(reviewerLogin, userService),
repo, pathToPaperInRepo, downloadPaperLink);
}
public JSONObject toJSON() throws JSONException {
JSONObject request = new JSONObject();
request.put("requester", requester.toJSON());
request.put("reviewer", reviewer.toJSON());
request.put("repo", repo.toJSON());
request.put("paper", pathToPaperInRepo);
request.put("link", linkToReviewPaper);
return request;
}
public PDFUser getRequester() {
return requester;
}
@Override
public String toString() {
return "Review [requester=" + requester + ", reviewer=" + reviewer + ", repo=" + repo + ", paper=" + pathToPaperInRepo + ", link="
+ linkToReviewPaper + "]";
}
public void setRequester(PDFUser requester) {
this.requester = requester;
}
public PDFUser getReviewer() {
return reviewer;
}
public void setReviewer(PDFUser reviewer) {
this.reviewer = reviewer;
}
public Repo getRepo() {
return repo;
}
public void setRepo(Repo repo) {
this.repo = repo;
}
public String getPathToPaperInRepo() {
return pathToPaperInRepo;
}
public void setPathToPaperInRepo(String pathToPaperInRepo) {
this.pathToPaperInRepo = pathToPaperInRepo;
}
public String getLinkToReviewPaper() {
return linkToReviewPaper;
}
public void setLinkToReviewPaper(String linkToReviewPaper) {
this.linkToReviewPaper = linkToReviewPaper;
}
public void setCustomLabels(List<String> parsedCustomLabels) {
this.customLabels = parsedCustomLabels;
}
public List<String> getCustomLabels() {
return customLabels;
}
}