001: /**********************************************************************************
002: * $URL: https://source.sakaiproject.org/svn/assignment/tags/sakai_2-4-1/assignment-api/api/src/java/org/sakaiproject/assignment/api/AssignmentContent.java $
003: * $Id: AssignmentContent.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.AttachmentContainer;
025: import org.sakaiproject.entity.api.Entity;
026: import org.sakaiproject.time.api.Time;
027:
028: /**
029: * <p>
030: * AssignmentContent is the an interface for the Sakai assignments module. It represents the part of the assignment content that is "unchanging" for different versions of the assignment.
031: * </p>
032: */
033: public interface AssignmentContent extends Entity, AttachmentContainer {
034: /**
035: * Access the creator of this object.
036: *
037: * @return String - the user id of the creator.
038: */
039: public String getCreator();
040:
041: /**
042: * Access the title.
043: *
044: * @return The AssignmentContent's title.
045: */
046: public String getTitle();
047:
048: /**
049: * Access the context at the time of creation.
050: *
051: * @return String - the context string.
052: */
053: public String getContext();
054:
055: /**
056: * Access the instructions for the assignment
057: *
058: * @return The Assignment's instructions.
059: */
060: public String getInstructions();
061:
062: /**
063: * Access the time that this object was created.
064: *
065: * @return The Time object representing the time of creation.
066: */
067: public Time getTimeCreated();
068:
069: /**
070: * Access the time of last modificaiton.
071: *
072: * @return The Time of last modification.
073: */
074: public Time getTimeLastModified();
075:
076: /**
077: * Access the author of last modificaiton
078: *
079: * @return the User
080: */
081: public String getAuthorLastModified();
082:
083: /**
084: * Access the type of submission.
085: *
086: * @return An integer representing the type of submission.
087: */
088: public int getTypeOfSubmission();
089:
090: /**
091: * Access the grade type
092: *
093: * @return The integer representing the type of grade.
094: */
095: public int getTypeOfGrade();
096:
097: /**
098: * Access a string describing the type of grade.
099: *
100: * @param gradeType -
101: * The integer representing the type of grade.
102: * @return Description of the type of grade.
103: */
104: public String getTypeOfGradeString(int gradeType);
105:
106: /**
107: * Gets the maximum grade if grade type is SCORE_GRADE_TYPE(3)
108: *
109: * @return int The maximum grade score, or zero if the grade type is not SCORE_GRADE_TYPE(3).
110: */
111: public int getMaxGradePoint();
112:
113: /**
114: * Get the maximum grade for grade type = SCORE_GRADE_TYPE(3) Formated to show one decimal place
115: *
116: * @return The maximum grade score.
117: */
118: public String getMaxGradePointDisplay();
119:
120: /**
121: * Get whether this project can be a group project.
122: *
123: * @return True if this can be a group project, false otherwise.
124: */
125: public boolean getGroupProject();
126:
127: /**
128: * Access whether group projects should be individually graded.
129: *
130: * @return true if projects are individually graded, false if grades are given to the group.
131: */
132: public boolean individuallyGraded();
133:
134: /**
135: * Access whether grades can be released once submissions are graded.
136: *
137: * @return True if grades can be released once submission are graded, false if they must be released manually.
138: */
139: public boolean releaseGrades();
140:
141: /**
142: * Access the Honor Pledge type; values are NONE and ENGINEERING_HONOR_PLEDGE.
143: *
144: * @return The type of pledge.
145: */
146: public int getHonorPledge();
147:
148: /**
149: * Access whether this AssignmentContent allows attachments.
150: *
151: * @return true if the AssignmentContent allows attachments, false otherwise.
152: */
153: public boolean getAllowAttachments();
154:
155: /**
156: * Access the list of authors.
157: *
158: * @return List of the author's user-ids.
159: */
160: public List getAuthors();
161:
162: /**
163: * Access whether this AssignmentContent is in use by an Assignment.
164: *
165: * @return boolean - Is this AssignmentContent used by an Assignment.
166: */
167: public boolean inUse();
168: }
|