/********************************************************************************** * * Copyright (c) 2003, 2004, 2005, 2006, 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.model; import java.util.List; import java.util.Set ; import org.sakaiproject.assignment.api.Assignment; import org.sakaiproject.assignment.api.AssignmentSubmission; /** * This is the interface for accessing assignment supplement item * @author zqian * */ public interface AssignmentSupplementItemService { /*************** attachment ********************/ /** * new AssignmentSupplementItemAttachment object */ public AssignmentSupplementItemAttachment newAttachment(); /** * Save AssignmentSupplementItemAttachment object * @param attachment * @return */ public boolean saveAttachment(AssignmentSupplementItemAttachment attachment); /** * get the list of attachment ids for a AssignmentSupplementItemWithAttachment * @param item * @return */ public List<String> getAttachmentListForSupplementItem(AssignmentSupplementItemWithAttachment item); /** * reset the attachment list * @param item * @return */ public boolean cleanAttachment(AssignmentSupplementItemWithAttachment item); /** * remove the AssignmentSupplementItemAttachment object * @param attachment * @return */ public boolean removeAttachment(AssignmentSupplementItemAttachment attachment); /*************** model answer ******************/ /** * new ModelAnswer object * @return */ public AssignmentModelAnswerItem newModelAnswer(); /** * Save the ModelAnswer object * @param mItem * @return */ public boolean saveModelAnswer(AssignmentModelAnswerItem mItem); /** * Remove the ModelAnswer object * @param mItem * @return */ public boolean removeModelAnswer(AssignmentModelAnswerItem mItem); /** * Get the ModelAnswer object * @param assignmentId * @return */ public AssignmentModelAnswerItem getModelAnswer(String assignmentId); /******************* private note *******************/ /** * new AssignmentNoteItem object */ public AssignmentNoteItem newNoteItem(); /** * Save the AssignmentNoteItem object * @param nItem * @return */ public boolean saveNoteItem(AssignmentNoteItem nItem); /** * Remove the AssignmentNoteItem object * @param nItem * @return */ public boolean removeNoteItem(AssignmentNoteItem nItem); /** * Get the AssignmentNoteItem object * @param assignmentId * @return */ public AssignmentNoteItem getNoteItem(String assignmentId); /******************* all purpose *******************/ /** * new AssignmentAllPurposeItem object */ public AssignmentAllPurposeItem newAllPurposeItem(); /** * Save the AssignmentAllPurposeItem object * @param aItem * @return */ public boolean saveAllPurposeItem(AssignmentAllPurposeItem aItem); /** * Remove the AssignmentAllPurposeItem object * @param aItem * @return */ public boolean removeAllPurposeItem(AssignmentAllPurposeItem aItem); /** * reset the all purpose item access list * @param aItem * @return */ public boolean cleanAllPurposeItemAccess(AssignmentAllPurposeItem aItem); /** * Get the AssignmentAllPurposeItem object * @param assignmentId * @return */ public AssignmentAllPurposeItem getAllPurposeItem(String assignmentId); /** * new AssignmentAllPurposeItemAccess object */ public AssignmentAllPurposeItemAccess newAllPurposeItemAccess(); /** * save AssignmentAllPurposeItemAccess object */ public boolean saveAllPurposeItemAccess(AssignmentAllPurposeItemAccess access); /** * remove the access record * @param access * @return */ public boolean removeAllPurposeItemAccess(AssignmentAllPurposeItemAccess access); /** * get the access list for this AllPurposeItem * @param item * @return */ public List<String> getAccessListForAllPurposeItem(AssignmentAllPurposeItem item); /** * Can the current user see the model answer or not * @param a * @param s * @return */ public boolean canViewModelAnswer(Assignment a, AssignmentSubmission s); /** * Can current user read the AssignmentNoteItem? * @param a * @param context * @return */ public boolean canReadNoteItem(Assignment a, String context); /** * Can the current user modify the AssignmentNoteItem? * @param a * @return */ public boolean canEditNoteItem(Assignment a); /** * Can the current user view the all purpose item? * @param a * @return */ public boolean canViewAllPurposeItem(Assignment a); }