001: /**********************************************************************************
002: * $URL: https://source.sakaiproject.org/svn/assignment/tags/sakai_2-4-1/assignment-api/api/src/java/org/sakaiproject/assignment/api/Assignment.java $
003: * $Id: Assignment.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.Collection;
023: import java.util.List;
024:
025: import org.sakaiproject.entity.api.Entity;
026: import org.sakaiproject.time.api.Time;
027:
028: /**
029: * <p>
030: * Assignment is an interface for the Sakai assignments module. It represents a specific assignment (as for a specific section or class).
031: * </p>
032: */
033: public interface Assignment extends Entity, Comparable {
034: /** Grade type not set */
035: public static final int GRADE_TYPE_NOT_SET = -1;
036:
037: /** Ungraded grade type */
038: public static final int UNGRADED_GRADE_TYPE = 1;
039:
040: /** Letter grade type */
041: public static final int LETTER_GRADE_TYPE = 2;
042:
043: /** Score based grade type */
044: public static final int SCORE_GRADE_TYPE = 3;
045:
046: /** Pass/fail grade type */
047: public static final int PASS_FAIL_GRADE_TYPE = 4;
048:
049: /** Grade type that only requires a check */
050: public static final int CHECK_GRADE_TYPE = 5;
051:
052: /** Ungraded grade type string */
053: public static final String UNGRADED_GRADE_TYPE_STRING = "Ungraded";
054:
055: /** Letter grade type string */
056: public static final String LETTER_GRADE_TYPE_STRING = "Letter Grade";
057:
058: /** Score based grade type string */
059: public static final String SCORE_GRADE_TYPE_STRING = "Points";
060:
061: /** Pass/fail grade type string */
062: public static final String PASS_FAIL_GRADE_TYPE_STRING = "Pass/Fail";
063:
064: /** Grade type that only requires a check string */
065: public static final String CHECK_GRADE_TYPE_STRING = "Checkmark";
066:
067: /** Assignment type not yet set */
068: public static final int ASSIGNMENT_SUBMISSION_TYPE_NOT_SET = -1;
069:
070: /** Text only assignment type */
071: public static final int TEXT_ONLY_ASSIGNMENT_SUBMISSION = 1;
072:
073: /** Attachment only assignment type */
074: public static final int ATTACHMENT_ONLY_ASSIGNMENT_SUBMISSION = 2;
075:
076: /** Text and/or attachment assignment type */
077: public static final int TEXT_AND_ATTACHMENT_ASSIGNMENT_SUBMISSION = 3;
078:
079: /** Honor Pledge not yet set */
080: public static final int HONOR_PLEDGE_NOT_SET = -1;
081:
082: /** Honor Pledge not yet set */
083: public static final int HONOR_PLEDGE_NONE = 1;
084:
085: /** Honor Pledge not yet set */
086: public static final int HONOR_PLEDGE_ENGINEERING = 2;
087:
088: /**
089: * Access the AssignmentContent of this Assignment.
090: *
091: * @return The Assignment's AssignmentContent.
092: */
093: public AssignmentContent getContent();
094:
095: /**
096: * Access the reference of the AssignmentContent of this Assignment.
097: *
098: * @return The AssignmentContent's reference.
099: */
100: public String getContentReference();
101:
102: /**
103: * Access the first time at which the assignment can be viewed; may be null.
104: *
105: * @return The Time at which the assignment is due, or null if unspecified.
106: */
107: public Time getOpenTime();
108:
109: /**
110: * Access the time at which the assignment is due; may be null.
111: *
112: * @return The Time at which the Assignment is due, or null if unspecified.
113: */
114: public Time getDueTime();
115:
116: /**
117: * Access the drop dead time after which responses to this assignment are considered late; may be null.
118: *
119: * @return The Time object representing the drop dead time, or null if unspecified.
120: */
121: public Time getDropDeadTime();
122:
123: /**
124: * Access the close time after which this assignment can no longer be viewed, and after which submissions will not be accepted. May be null.
125: *
126: * @return The Time after which the Assignment is closed, or null if unspecified.
127: */
128: public Time getCloseTime();
129:
130: /**
131: * Access the section info.
132: *
133: * @return The section id.
134: */
135: public String getSection();
136:
137: /**
138: * Access the context at the time of creation.
139: *
140: * @return String - the context string.
141: */
142: public String getContext();
143:
144: /**
145: * Get whether this is a draft or final copy.
146: *
147: * @return True if this is a draft, false if it is a final copy.
148: */
149: public boolean getDraft();
150:
151: /**
152: * Access the creator of this object.
153: *
154: * @return String - The id of the creator.
155: */
156: public String getCreator();
157:
158: /**
159: * Access the time that this object was created.
160: *
161: * @return The Time object representing the time of creation.
162: */
163: public Time getTimeCreated();
164:
165: /**
166: * Access the list of authors.
167: *
168: * @return List of authors as User objects.
169: */
170: public List getAuthors();
171:
172: /**
173: * Access the time of last modificaiton.
174: *
175: * @return The Time of last modification.
176: */
177: public Time getTimeLastModified();
178:
179: /**
180: * Access the author of last modification
181: *
182: * @return String - The id of the author.
183: */
184: public String getAuthorLastModified();
185:
186: /**
187: * Access the title.
188: *
189: * @return The Assignment's title.
190: */
191: public String getTitle();
192:
193: /**
194: * Access the groups defined for this assignment.
195: *
196: * @return A Collection (String) of group refs (authorization group ids) defined for this message; empty if none are defined.
197: */
198: Collection getGroups();
199:
200: /**
201: * Access the access mode for the assignment - how we compute who has access to the assignment.
202: *
203: * @return The AssignmentAccess access mode for the Assignment.
204: */
205: AssignmentAccess getAccess();
206:
207: /**
208: * <p>
209: * AssignmentAccess enumerates different access modes for the assignment: site-wide or grouped.
210: * </p>
211: */
212: public class AssignmentAccess {
213: private final String m_id;
214:
215: private AssignmentAccess(String id) {
216: m_id = id;
217: }
218:
219: public String toString() {
220: return m_id;
221: }
222:
223: static public AssignmentAccess fromString(String access) {
224: if (SITE.m_id.equals(access))
225: return SITE;
226: if (GROUPED.m_id.equals(access))
227: return GROUPED;
228: return null;
229: }
230:
231: /** channel (site) level access to the message */
232: public static final AssignmentAccess SITE = new AssignmentAccess(
233: "site");
234:
235: /** grouped access; only members of the getGroup() groups (authorization groups) have access */
236: public static final AssignmentAccess GROUPED = new AssignmentAccess(
237: "grouped");
238: }
239: }
|