001: /**********************************************************************************
002: * $URL: https://source.sakaiproject.org/svn/assignment/tags/sakai_2-4-1/assignment-api/api/src/java/org/sakaiproject/assignment/api/AssignmentSubmission.java $
003: * $Id: AssignmentSubmission.java 8331 2006-04-26 14:32:54Z ggolden@umich.edu $
004: ***********************************************************************************
005: *
006: * Copyright (c) 2003, 2004, 2005, 2006 The Sakai Foundation.
007: *
008: * Licensed under the Educational Community License, Version 1.0 (the "License");
009: * you may not use this file except in compliance with the License.
010: * You may obtain a copy of the License at
011: *
012: * http://www.opensource.org/licenses/ecl1.php
013: *
014: * Unless required by applicable law or agreed to in writing, software
015: * distributed under the License is distributed on an "AS IS" BASIS,
016: * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
017: * See the License for the specific language governing permissions and
018: * limitations under the License.
019: *
020: **********************************************************************************/package org.sakaiproject.assignment.api;
021:
022: import java.util.List;
023:
024: import org.sakaiproject.entity.api.Entity;
025: import org.sakaiproject.time.api.Time;
026: import org.sakaiproject.user.api.User;
027:
028: /**
029: * <p>
030: * AssignmentSubmission is the an interface for the Sakai assignments module. It represents student submissions for assignments.
031: * </p>
032: */
033: public interface AssignmentSubmission extends Entity {
034: /**
035: * Access the context at the time of creation.
036: *
037: * @return String - the context string.
038: */
039: public String getContext();
040:
041: /**
042: * Access the Assignment for this Submission
043: *
044: * @return the Assignment
045: */
046: public Assignment getAssignment();
047:
048: /**
049: * Access the ID for the Assignment for this Submission
050: *
051: * @return String - the Assignment id
052: */
053: public String getAssignmentId();
054:
055: /**
056: * Access the list of Users who submitted this response to the Assignment.
057: *
058: * @return Array of user objects.
059: */
060: public User[] getSubmitters();
061:
062: /**
063: * Access the list of Users who submitted this response to the Assignment.
064: *
065: * @return List of user ids
066: */
067: public List getSubmitterIds();
068:
069: /**
070: * Get whether this is a final submission.
071: *
072: * @return True if a final submission, false if still a draft.
073: */
074: public boolean getSubmitted();
075:
076: /**
077: * Set the time at which this response was submitted; null signifies the response is unsubmitted.
078: *
079: * @return Time of submission.
080: */
081: public Time getTimeSubmitted();
082:
083: /**
084: * Text submitted in response to the Assignment.
085: *
086: * @return The text of the submission.
087: */
088: public String getSubmittedText();
089:
090: /**
091: * Access the list of attachments to this response to the Assignment.
092: *
093: * @return List of the list of attachments as Reference objects;
094: */
095: public List getSubmittedAttachments();
096:
097: /**
098: * Get the general comments by the grader
099: *
100: * @return The text of the grader's comments; may be null.
101: */
102: public String getFeedbackComment();
103:
104: /**
105: * Access the text part of the instructors feedback; usually an annotated copy of the submittedText
106: *
107: * @return The text of the grader's feedback.
108: */
109: public String getFeedbackText();
110:
111: /**
112: * Access the list of attachments returned to the students in the process of grading this assignment; usually a modified or annotated version of the attachment submitted.
113: *
114: * @return List of the Resource objects pointing to the attachments.
115: */
116: public List getFeedbackAttachments();
117:
118: /**
119: * Get whether this Submission was rejected by the grader.
120: *
121: * @return True if this response was rejected by the grader, false otherwise.
122: */
123: public boolean getReturned();
124:
125: /**
126: * Get whether this Submission has been graded.
127: *
128: * @return True if the submission has been graded, false otherwise.
129: */
130: public boolean getGraded();
131:
132: /**
133: * Get whether the grade has been released.
134: *
135: * @return True if the Submissions's grade has been released, false otherwise.
136: */
137: public boolean getGradeReleased();
138:
139: /**
140: * Access the grade recieved.
141: *
142: * @return The Submission's grade..
143: */
144: public String getGrade();
145:
146: /**
147: * Access the grade recieved. When points-type, format it to one decimal place
148: *
149: * @return The Submission's grade..
150: */
151: public String getGradeDisplay();
152:
153: /**
154: * Get the time of last modification;
155: *
156: * @return The time of last modification.
157: */
158: public Time getTimeLastModified();
159:
160: /**
161: * Get the time at which the graded submission was returned; null means the response is not yet graded.
162: *
163: * @return the time (may be null)
164: */
165: public Time getTimeReturned();
166:
167: /**
168: * Access the checked status of the honor pledge flag.
169: *
170: * @return True if the honor pledge is checked, false otherwise.
171: */
172: public boolean getHonorPledgeFlag();
173:
174: /**
175: * Returns the status of the submission : Not Started, submitted, returned or graded.
176: *
177: * @return The Submission's status.
178: */
179: public String getStatus();
180: }
|