reviewAssignments = array(); } /** * Get/Set Methods. */ /** * Get edit assignments for this article. * @return array */ function &getEditAssignments() { $editAssignments =& $this->getData('editAssignments'); return $editAssignments; } /** * Set edit assignments for this article. * @param $editAssignments array */ function setEditAssignments($editAssignments) { return $this->setData('editAssignments', $editAssignments); } /** * Add a review assignment for this article. * @param $reviewAssignment ReviewAssignment */ function addReviewAssignment($reviewAssignment) { if ($reviewAssignment->getSubmissionId() == null) { $reviewAssignment->setSubmissionId($this->getArticleId()); } array_push($this->reviewAssignments, $reviewAssignment); } /** * Remove a review assignment. * @param $reviewId ID of the review assignment to remove * @return boolean review assignment was removed */ function removeReviewAssignment($reviewId) { $reviewAssignments = array(); $found = false; for ($i=0, $count=count($this->reviewAssignments); $i < $count; $i++) { if ($this->reviewAssignments[$i]->getReviewId() == $reviewId) { $found = true; } else { array_push($reviewAssignments, $this->reviewAssignments[$i]); } } $this->reviewAssignments = $reviewAssignments; return $found; } // // Review Assignments // /** * Get review assignments for this article. * @return array ReviewAssignments */ function &getReviewAssignments($round = null) { if ($round == null) { // Return an array of arrays of review assignments return $this->reviewAssignments; } else { // Return an array of review assignments for the specified round return $this->reviewAssignments[$round]; } } /** * Set review assignments for this article. * @param $reviewAssignments array ReviewAssignments */ function setReviewAssignments($reviewAssignments, $round) { return $this->reviewAssignments[$round] = $reviewAssignments; } // // Editor Decisions // /** * Get editor decisions. * @return array */ function getDecisions($round = null) { if ($round == null) { return $this->editorDecisions; } else { return $this->editorDecisions[$round]; } } /** * Set editor decisions. * @param $editorDecisions array * @param $round int */ function setDecisions($editorDecisions, $round) { return $this->editorDecisions[$round] = $editorDecisions; } /** * Get the submission status. Returns one of the defined constants * (STATUS_INCOMPLETE, STATUS_ARCHIVED, STATUS_PUBLISHED, * STATUS_DECLINED, STATUS_QUEUED_UNASSIGNED, STATUS_QUEUED_REVIEW, * or STATUS_QUEUED_EDITING). Note that this function never returns * a value of STATUS_QUEUED -- the three STATUS_QUEUED_... constants * indicate a queued submission. NOTE that this code is similar to * getSubmissionStatus in the SectionEditorSubmission class and * changes here should be propagated. */ function getSubmissionStatus() { $status = $this->getStatus(); if ($status == STATUS_ARCHIVED || $status == STATUS_PUBLISHED || $status == STATUS_DECLINED) return $status; // The submission is STATUS_QUEUED or the author's submission was STATUS_INCOMPLETE. if ($this->getSubmissionProgress()) return (STATUS_INCOMPLETE); // The submission is STATUS_QUEUED. Find out where it's queued. $editAssignments = $this->getEditAssignments(); if (empty($editAssignments)) return (STATUS_QUEUED_UNASSIGNED); $latestDecision = $this->getMostRecentDecision(); if ($latestDecision) { if ($latestDecision == SUBMISSION_EDITOR_DECISION_ACCEPT || $latestDecision == SUBMISSION_EDITOR_DECISION_DECLINE) { return STATUS_QUEUED_EDITING; } } return STATUS_QUEUED_REVIEW; } /** * Get the most recent decision. * @return int SUBMISSION_EDITOR_DECISION_... */ function getMostRecentDecision() { $decisions = $this->getDecisions(); $decision = array_pop($decisions); if (!empty($decision)) { $latestDecision = array_pop($decision); if (isset($latestDecision['decision'])) return $latestDecision['decision']; } return null; } // // Files // /** * Get submission file for this article. * @return ArticleFile */ function &getSubmissionFile() { $returner =& $this->getData('submissionFile'); return $returner; } /** * Set submission file for this article. * @param $submissionFile ArticleFile */ function setSubmissionFile($submissionFile) { return $this->setData('submissionFile', $submissionFile); } /** * Get revised file for this article. * @return ArticleFile */ function &getRevisedFile() { $returner =& $this->getData('revisedFile'); return $returner; } /** * Set revised file for this article. * @param $submissionFile ArticleFile */ function setRevisedFile($revisedFile) { return $this->setData('revisedFile', $revisedFile); } /** * Get supplementary files for this article. * @return array SuppFiles */ function &getSuppFiles() { $returner =& $this->getData('suppFiles'); return $returner; } /** * Set supplementary file for this article. * @param $suppFiles array SuppFiles */ function setSuppFiles($suppFiles) { return $this->setData('suppFiles', $suppFiles); } /** * Get all author file revisions. * @return array ArticleFiles */ function getAuthorFileRevisions($round = null) { if ($round == null) { return $this->authorFileRevisions; } else { return $this->authorFileRevisions[$round]; } } /** * Set all author file revisions. * @param $authorFileRevisions array ArticleFiles */ function setAuthorFileRevisions($authorFileRevisions, $round) { return $this->authorFileRevisions[$round] = $authorFileRevisions; } /** * Get all editor file revisions. * @return array ArticleFiles */ function getEditorFileRevisions($round = null) { if ($round == null) { return $this->editorFileRevisions; } else { return $this->editorFileRevisions[$round]; } } /** * Set all editor file revisions. * @param $editorFileRevisions array ArticleFiles */ function setEditorFileRevisions($editorFileRevisions, $round) { return $this->editorFileRevisions[$round] = $editorFileRevisions; } /** * Get the galleys for an article. * @return array ArticleGalley */ function &getGalleys() { $galleys =& $this->getData('galleys'); return $galleys; } /** * Set the galleys for an article. * @param $galleys array ArticleGalley */ function setGalleys(&$galleys) { return $this->setData('galleys', $galleys); } // // Comments // /** * Get most recent editor decision comment. * @return ArticleComment */ function getMostRecentEditorDecisionComment() { return $this->getData('mostRecentEditorDecisionComment'); } /** * Set most recent editor decision comment. * @param $mostRecentEditorDecisionComment ArticleComment */ function setMostRecentEditorDecisionComment($mostRecentEditorDecisionComment) { return $this->setData('mostRecentEditorDecisionComment', $mostRecentEditorDecisionComment); } /** * Get most recent copyedit comment. * @return ArticleComment */ function getMostRecentCopyeditComment() { return $this->getData('mostRecentCopyeditComment'); } /** * Set most recent copyedit comment. * @param $mostRecentCopyeditComment ArticleComment */ function setMostRecentCopyeditComment($mostRecentCopyeditComment) { return $this->setData('mostRecentCopyeditComment', $mostRecentCopyeditComment); } /** * Get most recent layout comment. * @return ArticleComment */ function getMostRecentLayoutComment() { return $this->getData('mostRecentLayoutComment'); } /** * Set most recent layout comment. * @param $mostRecentLayoutComment ArticleComment */ function setMostRecentLayoutComment($mostRecentLayoutComment) { return $this->setData('mostRecentLayoutComment', $mostRecentLayoutComment); } /** * Get most recent proofread comment. * @return ArticleComment */ function getMostRecentProofreadComment() { return $this->getData('mostRecentProofreadComment'); } /** * Set most recent proofread comment. * @param $mostRecentProofreadComment ArticleComment */ function setMostRecentProofreadComment($mostRecentProofreadComment) { return $this->setData('mostRecentProofreadComment', $mostRecentProofreadComment); } } ?>