/**********************************************************************************
* $URL: https://source.sakaiproject.org/svn/assignment/trunk/assignment-api/api/src/java/org/sakaiproject/assignment/api/AssignmentEdit.java $
* $Id: AssignmentEdit.java 128106 2013-08-02 14:34:11Z holladay@longsight.com $
***********************************************************************************
*
* Copyright (c) 2003, 2004, 2005, 2006, 2007, 2008 The Sakai Foundation
*
* Licensed under the Educational Community License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.opensource.org/licenses/ECL-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
**********************************************************************************/
package org.sakaiproject.assignment.api;
import java.util.Collection;
import org.sakaiproject.entity.api.Edit;
import org.sakaiproject.exception.PermissionException;
import org.sakaiproject.site.api.Group;
import org.sakaiproject.time.api.Time;
import org.sakaiproject.user.api.User;
/**
* <p>
* Assignment is an interface for the Sakai assignments module. It represents a specific assignment (as for a specific section or class).
* </p>
*/
public interface AssignmentEdit extends Assignment, Edit
{
/**
* Set if this a group submission type of Assignment.
*
* @param boolean -
* is a group submission assignment.
*/
public void setGroup(boolean group);
/**
* Set the reference of the AssignmentContent of this Assignment.
*
* @param String -
* the reference of the AssignmentContent.
*/
public void setContentReference(String contentReference);
/**
* Set the AssignmentContent of this Assignment.
*
* @param content -
* the Assignment's AssignmentContent.
*/
public void setContent(AssignmentContent content);
/**
* Set the first time at which the assignment can be viewed; may be null.
*
* @param openTime -
* The Time at which the Assignment opens.
*/
public void setOpenTime(Time openTime);
/**
* Set the time at which the assignment is due; may be null.
*
* @param dueTime -
* The Time at which the Assignment is due.
*/
public void setDueTime(Time dueTime);
/**
* Set the time at which the assignment is visible; may be null.
*
* @param visibleTime -
* The Time at which the Assignment is visible.
*/
public void setVisibleTime(Time visibleTime);
/**
* Set the drop dead time after which responses to this assignment are considered late; may be null.
*
* @param dropDeadTime -
* The Time object representing the drop dead time.
*/
public void setDropDeadTime(Time dropDeadTime);
/**
* Set the time after which this assignment can no longer be viewed, and after which submissions will not be accepted. May be null.
*
* @param closeTime -
* The Time after which the Assignment is closed, or null if unspecified.
*/
public void setCloseTime(Time closeTime);
/**
* Set the section info
*
* @param sectionId -
* The section id.
*/
public void setSection(String sectionId);
/**
* Set the Assignment's context at the time of creation.
*
* @param context -
* The context string.
*/
public void setContext(String context);
/**
* Set whether this is a draft or final copy.
*
* @param draft -
* true if this is a draft, false if it is a final copy.
*/
public void setDraft(boolean draft);
/**
* Add an author to the author list.
*
* @param author -
* The User to add to the author list.
*/
public void addAuthor(User author);
/**
* Remove an author from the author list.
*
* @param author -
* the User to remove from the author list.
*/
public void removeAuthor(User author);
/**
* Set the title.
*
* @param title -
* The Assignment's title.
*/
public void setTitle(String title);
/**
* Set these as the message's groups, replacing the access and groups already defined.
*
* @param Collection
* groups The colelction of Group objects to use for this message.
* @throws PermissionException
* if the end user does not have permission to remove from the groups that would be removed or add to the groups that would be added.
*/
void setGroupAccess(Collection groups) throws PermissionException;
/**
* Remove any grouping for this message; the access mode reverts to channel and any groups are removed.
*
* @throws PermissionException
* if the end user does not have permission to do this.
*/
void clearGroupAccess() throws PermissionException;
/**
* Set the access mode for the assignment - how we compute who has access to the assignment.
*
* @param access
* The AssignmentAccess access mode for the message.
*/
void setAccess(AssignmentAccess access);
/**
* Set the position order field for the assignment.
*
* @param position_order -
* The Assignment's order.
*/
public void setPosition_order(int position_order);
/**
* Does this Assignment allow using the peer assessment?
*
* @param allow -
* true if the Assignment allows peer assessment, false otherwise?
*/
public void setAllowPeerAssessment(boolean allow);
public void setPeerAssessmentPeriod(Time time);
public void setPeerAssessmentAnonEval(boolean anonEval);
public void setPeerAssessmentStudentViewReviews(boolean studentViewReviews);
public void setPeerAssessmentNumReviews(int numReviews);
public void setPeerAssessmentInstructions(String instructions);
}