| Interface | osid.assessment.AssessmentSession | ||
|---|---|---|---|
| Implements | osid.OsidSession | ||
| Description | 
                 This session is used to take an assessment. The assessment 
                associated with this session represents the "assessment taken" 
                by an    This session manages the flow of control for the assessment taking process. It allows for two types of processes: 
  It may be the case that it is allowed to suspend and 
                resume an assessment.   This session is used in the context of an   | ||
| Method | getBankId | ||
| Description | 
                     Gets the   | ||
| Return | osid.id.Id | the  Bank Id  associated with this session  | |
| Compliance | mandatory | This method must be implemented. | |
| Method | getBank | ||
| Description | 
                     Gets the   | ||
| Return | osid.assessment.Bank | the  Bank  associated with this session  | |
| Errors | OPERATION_FAILED | unable to complete request | |
| PERMISSION_DENIED | authorization failure | ||
| Compliance | mandatory | This method must be implemented. | |
| Method | canTakeAssessments | ||
| Description | 
                     Tests if this user can take this assessment section. A 
                    return of true does not guarantee successful 
                    authorization. A return of false indicates that it is 
                    known all methods in this session will result in a   | ||
| Return | boolean |  false  if assessment methods are not authorized,  true 
 otherwise  | |
| Compliance | mandatory | This method must be implemented. | |
| Method | hasAssessmentBegun | ||
| Description | 
                     Tests if this assessment has started. An assessment 
                    begins from the designated start time if a start time is 
                    defined. If no start time is defined the assessment may 
                    begin at any time. Assessment sections cannot be accessed 
                    if the return for this method is   | ||
| Parameters | osid.id.Id | assessmentTakenId |  Id  of the  AssessmentTaken   | 
| Return | boolean |  true  if this assessment has begun,  false  
otherwise  | |
| Errors | NOT_FOUND |  assessmentTakenId  is not found  |                 |
| NULL_ARGUMENT |  assessmentTakenId  is  null   |                 ||
| OPERATION_FAILED | unable to complete request | ||
| PERMISSION_DENIED | authorization failure occurred | ||
| Compliance | mandatory | This method must be implemented. | |
| Method | isAssessmentOver | ||
| Description | 
                     Tests if this assessment is over. An assessment is over 
                    if   | ||
| Parameters | osid.id.Id | assessmentTakenId |  Id  of the  AssessmentTaken   | 
| Return | boolean |  true  if this assessment is over,  false  
otherwise  | |
| Errors | NOT_FOUND |  assessmentTakenId  is not found  |                 |
| NULL_ARGUMENT |  assessmentTakenId  is  null   |                 ||
| OPERATION_FAILED | unable to complete request | ||
| PERMISSION_DENIED | authorization failure occurred | ||
| Compliance | mandatory | This method must be implemented. | |
| Method | requiresSynchronousSections | ||
| Description | 
                     Tests if synchronous sections are required. This method should be checked to determine if all sections are available when requested, or the next sections becomes available only after the previous section is complete.  There are two methods for retrieving sections. One is 
                    using the built-in hasNextSection() and getNextSection() 
                    methods. In synchronous mode, hasNextSection() is false 
                    until the current section is completed. In asynchronous 
                    mode,     | ||
| Parameters | osid.id.Id | assessmentTakenId |  Id  of the  AssessmentTaken   | 
| Return | boolean |  true  if this synchronous sections are required,  false 
 otherwise  | |
| Errors | NOT_FOUND |  assessmentTakenId  is not found  |                 |
| NULL_ARGUMENT |  assessmentTakenId  is  null   |                 ||
| OPERATION_FAILED | unable to complete request | ||
| PERMISSION_DENIED | authorization failure occurred | ||
| Compliance | mandatory | This method must be implemented. | |
| Method | getFirstAssessmentSection | ||
| Description | 
                     Gets the first assessment section in this assesment. 
                    All assessments have at least one   | ||
| Parameters | osid.id.Id | assessmentTakenId |  Id  of the  AssessmentTaken   | 
| Return | osid.assessment.AssessmentSection | the first assessment section | |
| Errors | ILLEGAL_STATE |  hasAssessmentBegun()  is  false   |                 |
| NOT_FOUND |  assessmentTakenId  is not found  |                 ||
| NULL_ARGUMENT |  assessmentTakenId  is  null   |                 ||
| OPERATION_FAILED | unable to complete request | ||
| PERMISSION_DENIED | authorization failure occurred | ||
| Compliance | mandatory | This method must be implemented. | |
| Method | hasNextAssessmentSection | ||
| Description | 
                     Tests if there is a next assessment section in the 
                    assessment following the given assessment section   | ||
| Parameters | osid.id.Id | assessmentSectionId |  Id  of the  AssessmentSection   | 
| Return | boolean |  true  if there is a next section,  false  
otherwise  | |
| Errors | ILLEGAL_STATE |  hasAssessmentBegun()  is  false   |                 |
| NOT_FOUND |  assessmentTakenId  is not found  |                 ||
| NULL_ARGUMENT |  assessmentTakenId  is  null   |                 ||
| OPERATION_FAILED | unable to complete request | ||
| PERMISSION_DENIED | authorization failure occurred | ||
| Compliance | mandatory | This method must be implemented. | |
| Method | getNextAssessmentSection | ||
| Description | 
                     Gets the next assessemnt section following the given assesment section.  | ||
| Parameters | osid.id.Id | assessmentSectionId |  Id  of the  AssessmentSection   | 
| Return | osid.assessment.AssessmentSection | the next section | |
| Errors | ILLEGAL_STATE |  hasNextAssessmentSection()  is  false   |                 |
| NOT_FOUND |  assessmentSectionId  is not found  |                 ||
| NULL_ARGUMENT |  assessmentSectionId  is  null   |                 ||
| OPERATION_FAILED | unable to complete request | ||
| PERMISSION_DENIED | authorization failure occurred | ||
| Compliance | mandatory | This method must be implemented. | |
| Method | hasPreviousAssessmentSection | ||
| Description | 
                     Tests if there is a previous assessment section in the 
                    assessment following the given assessment section   | ||
| Parameters | osid.id.Id | assessmentSectionId |  Id  of the  AssessmentSection   | 
| Return | boolean |  true  if there is a previous assessment section,  false 
 otherwise  | |
| Errors | ILLEGAL_STATE |  hasAssessmentBegun()  is  false   |                 |
| NOT_FOUND |  assessmentSectionId  is not found  |                 ||
| NULL_ARGUMENT |  assessmentSectionId  is  null   |                 ||
| OPERATION_FAILED | unable to complete request | ||
| PERMISSION_DENIED | authorization failure occurred | ||
| Compliance | mandatory | This method must be implemented. | |
| Method | getPreviousAssessmentSection | ||
| Description | 
                     Gets the next assessemnt section following the given assesment section.  | ||
| Parameters | osid.id.Id | assessmentSectionId |  Id  of the  AssessmentSection   | 
| Return | osid.assessment.AssessmentSection | the previous assessment section | |
| Errors | ILLEGAL_STATE |  hasNextAssessmentSection()  is  false   |                 |
| NOT_FOUND |  assessmentSectionId  is not found  |                 ||
| NULL_ARGUMENT |  assessmentSectionId  is  null   |                 ||
| OPERATION_FAILED | unable to complete request | ||
| PERMISSION_DENIED | authorization failure occurred | ||
| Compliance | mandatory | This method must be implemented. | |
| Method | getAssessmentSection | ||
| Description | 
                     Gets an assessemnts section by   | ||
| Parameters | osid.id.Id | assessmentSectionId |  Id  of the  AssessmentSection   | 
| Return | osid.assessment.AssessmentSection | the assessment section | |
| Errors | ILLEGAL_STATE |  hasAssessmentBegun()  is  false   |                 |
| NOT_FOUND |  assessmentSectionId  is not found  |                 ||
| NULL_ARGUMENT |  assessmentSectionId  is  null   |                 ||
| OPERATION_FAILED | unable to complete request | ||
| PERMISSION_DENIED | authorization failure occurred | ||
| Compliance | mandatory | This method must be implemented. | |
| Method | getAssessmentSections | ||
| Description | 
                     Gets the assessment sections of this assessment.  | ||
| Parameters | osid.id.Id | assessmentTakenId |  Id  of the  AssessmentTaken   | 
| Return | osid.assessment.AssessmentSectionList | the list of assessment sections | |
| Errors | ILLEGAL_STATE |  hasAssessmentBegun()  is  false   |                 |
| NOT_FOUND |  assessmentTakenId  is not found  |                 ||
| NULL_ARGUMENT |  assessmentTakenId  is  null   |                 ||
| OPERATION_FAILED | unable to complete request | ||
| PERMISSION_DENIED | authorization failure occurred | ||
| Compliance | mandatory | This method must be implemented. | |
| Method | isAssessmentSectionComplete | ||
| Description | 
                     Tests if the all responses have been submitted to this 
                    assessment section. If   | ||
| Parameters | osid.id.Id | assessmentSectionId |  Id  of the  AssessmentSection   | 
| Return | boolean |  true  if this assessment section is complete,  false 
 otherwise  | |
| Errors | ILLEGAL_STATE |  isAssessmentOver()  is  true   |                 |
| NOT_FOUND |  assessmentSectionId  is not found  |                 ||
| NULL_ARGUMENT |  assessmentSectionId  is  null   |                 ||
| OPERATION_FAILED | unable to complete request | ||
| PERMISSION_DENIED | authorization failure | ||
| Compliance | mandatory | This method must be implemented. | |
| Method | getIncompleteAssessmentSections | ||
| Description | 
                     Gets the incomplete assessment sections of this assessment.  | ||
| Parameters | osid.id.Id | assessmentTakenId |  Id  of the  AssessmentTaken   | 
| Return | osid.assessment.AssessmentSectionList | the list of incomplete assessment sections | |
| Errors | ILLEGAL_STATE |  hasAssessmentBegun()  is  false   |                 |
| NOT_FOUND |  assessmentTakenId  is not found  |                 ||
| NULL_ARGUMENT |  assessmentTakenId  is  null   |                 ||
| OPERATION_FAILED | unable to complete request | ||
| PERMISSION_DENIED | authorization failure occurred | ||
| Compliance | mandatory | This method must be implemented. | |
| Method | hasAssessmentSectionBegun | ||
| Description | 
                     Tests if this assessment section has started. A section 
                    begins from the designated start time if a start time is 
                    defined. If no start time is defined the section may begin 
                    at any time. Assessment items cannot be accessed or 
                    submitted if the return for this method is   | ||
| Parameters | osid.id.Id | assessmentSectionId |  Id  of the  AssessmentSection   | 
| Return | boolean |  true  if this assessment section has begun,  false 
 otherwise  | |
| Errors | ILLEGAL_STATE |  hasAssessmentBegun()  is  false or isAssessmentOver() 
 is  true   |                 |
| NOT_FOUND |  assessmentSectionId  is not found  |                 ||
| NULL_ARGUMENT |  assessmentSectionId  is  null   |                 ||
| OPERATION_FAILED | unable to complete request | ||
| PERMISSION_DENIED | authorization failure | ||
| Compliance | mandatory | This method must be implemented. | |
| Method | isAssessmentSectionOver | ||
| Description | 
                     Tests if this assessment section is over. An assessment section is over if new or updated responses can not be submitted such as the designated finish time has expired.  | ||
| Parameters | osid.id.Id | assessmentSectionId |  Id  of the  AssessmentSection   | 
| Return | boolean |  true  if this assessment is over,  false  
otherwise  | |
| Errors | ILLEGAL_STATE |  hasAssessmenSectiontBegun()  is  false or 
isAssessmentSectionOver()  is  true   |                 |
| NOT_FOUND |  assessmentSectionId  is not found  |                 ||
| NULL_ARGUMENT |  assessmentSectionId  is  null   |                 ||
| OPERATION_FAILED | unable to complete request | ||
| PERMISSION_DENIED | authorization failure | ||
| Compliance | mandatory | This method must be implemented. | |
| Method | requiresSynchronousResponses | ||
| Description | 
                     Tests if synchronous responses are required in this assessment section. This method should be checked to determine if all items are available when requested, or the next item becomes available only after the response to the current item is submitted.  There are two methods for retrieving questions. One is 
                    using the built-in     | ||
| Parameters | osid.id.Id | assessmentSectionId |  Id  of the  AssessmentSection   | 
| Return | boolean |  true  if this synchronous responses are required,  
false  otherwise  | |
| Errors | ILLEGAL_STATE |  hasAssessmentBegun()  is  false or isAssessmentOver() 
 is  true   |                 |
| NOT_FOUND |  assessmentSectionId  is not found  |                 ||
| NULL_ARGUMENT |  assessmentSectionId  is  null   |                 ||
| OPERATION_FAILED | unable to complete request | ||
| PERMISSION_DENIED | authorization failure | ||
| Compliance | mandatory | This method must be implemented. | |
| Method | getFirstQuestion | ||
| Description | 
                     Gets the first question in this assesment section.  | ||
| Parameters | osid.id.Id | assessmentSectionId |  Id  of the  AssessmentSection   | 
| Return | osid.assessment.Question | the first question | |
| Errors | ILLEGAL_STATE |  hasAssessmentSectionBegun() is false or isAssessmentSectionOver() is 
true   |                 |
| NOT_FOUND |  assessmentSectionId  is not found  |                 ||
| NULL_ARGUMENT |  assessmentSectionId  is  null   |                 ||
| OPERATION_FAILED | unable to complete request | ||
| PERMISSION_DENIED | authorization failure occurred | ||
| Compliance | mandatory | This method must be implemented. | |
| Method | hasNextQuestion | ||
| Description | 
                     Tests if there is a next question following the given 
                    question   | ||
| Parameters | osid.id.Id | assessmentSectionId |  Id  of the  AssessmentSection   | 
osid.id.Id | itemId |  Id  of the  Item   | |
| Return | boolean |  true  if there is a next question,  false  
otherwise  | |
| Errors | ILLEGAL_STATE |  hasAssessmentSectionBegun() is false or isAssessmentSectionOver() is 
true   |                 |
| NOT_FOUND |  assessmentSectionId  or  itemId  is not found, 
or  itemId  not part of  assessmentSectionId   |                 ||
| NULL_ARGUMENT |  assessmentSectionId  or  itemId  is  null 
  |                 ||
| OPERATION_FAILED | unable to complete request | ||
| PERMISSION_DENIED | authorization failure occurred | ||
| Compliance | mandatory | This method must be implemented. | |
| Method | getNextQuestion | ||
| Description | 
                     Gets the next question in this assesment section.  | ||
| Parameters | osid.id.Id | assessmentSectionId |  Id  of the  AssessmentSection   | 
osid.id.Id | itemId |  Id  of the  Item   | |
| Return | osid.assessment.Question | the next question | |
| Errors | ILLEGAL_STATE |  hasNextQuestion()  is  false   |                 |
| NOT_FOUND |  assessmentSectionId  or  itemId  is not found, 
or  itemId  not part of  assessmentSectionId   |                 ||
| NULL_ARGUMENT |  assessmentSectionId  or  itemId  is  null 
  |                 ||
| OPERATION_FAILED | unable to complete request | ||
| PERMISSION_DENIED | authorization failure occurred | ||
| Compliance | mandatory | This method must be implemented. | |
| Method | hasPreviousQuestion | ||
| Description | 
                     Tests if there is a previous question preceeding the 
                    given question   | ||
| Parameters | osid.id.Id | assessmentSectionId |  Id  of the  AssessmentSection   | 
osid.id.Id | itemId |  Id  of the  Item   | |
| Return | boolean |  true  if there is a previous question,  false  
otherwise  | |
| Errors | ILLEGAL_STATE |  hasAssessmentSectionBegun() is false or isAssessmentSectionOver() is 
true   |                 |
| NOT_FOUND |  assessmentSectionId  or  itemId  is not found, 
or  itemId  not part of  assessmentSectionId   |                 ||
| NULL_ARGUMENT |  assessmentSectionId  or  itemId  is  null 
  |                 ||
| OPERATION_FAILED | unable to complete request | ||
| PERMISSION_DENIED | authorization failure occurred | ||
| Compliance | mandatory | This method must be implemented. | |
| Method | getPreviousQuestion | ||
| Description | 
                     Gets the previous question in this assesment section.  | ||
| Parameters | osid.id.Id | assessmentSectionId |  Id  of the  AssessmentSection   | 
osid.id.Id | itemId |  Id  of the  Item   | |
| Return | osid.assessment.Question | the previous question | |
| Errors | ILLEGAL_STATE |  hasPreviousQuestion()  is  false   |                 |
| NOT_FOUND |  assessmentSectionId  or  itemId  is not found, 
or  itemId  not part of  assessmentSectionId   |                 ||
| NULL_ARGUMENT |  assessmentSectionId  or  itemId  is  null 
  |                 ||
| OPERATION_FAILED | unable to complete request | ||
| PERMISSION_DENIED | authorization failure occurred | ||
| Compliance | mandatory | This method must be implemented. | |
| Method | getQuestion | ||
| Description | 
                     Gets the   | ||
| Parameters | osid.id.Id | assessmentSectionId |  Id  of the  AssessmentSection   | 
osid.id.Id | itemId |  Id  of the  Item   | |
| Return | osid.assessment.Question | the returned  Question   | |
| Errors | ILLEGAL_STATE |  hasAssessmentSectionBegun() is false or isAssessmentSectionOver() is 
true   |                 |
| NOT_FOUND |  assessmentSectionId  or  itemId  is not found, 
or  itemId  not part of  assessmentSectionId   |                 ||
| NULL_ARGUMENT |  assessmentSectionId  or  itemId  is  null 
  |                 ||
| OPERATION_FAILED | unable to complete request | ||
| PERMISSION_DENIED | authorization failure occurred | ||
| Compliance | mandatory | This method must be implemented. | |
| Method | getQuestions | ||
| Description | 
                     Gets the questions of this assessment section.  | ||
| Parameters | osid.id.Id | assessmentSectionId |  Id  of the  AssessmentSection   | 
| Return | osid.assessment.QuestionList | the list of assessment questions | |
| Errors | ILLEGAL_STATE |  hasAssessmentSectionBegun() is false or isAssessmentSectionOver() is 
true   |                 |
| NOT_FOUND |  assessmentSectionId  is not found  |                 ||
| NULL_ARGUMENT |  assessmentSectionId  is  null   |                 ||
| OPERATION_FAILED | unable to complete request | ||
| PERMISSION_DENIED | authorization failure occurred | ||
| Compliance | mandatory | This method must be implemented. | |
| Method | getResponseForm | ||
| Description | 
                     Gets the response form for submitting an answer.  | ||
| Parameters | osid.id.Id | assessmentSectionId |  Id  of the  AssessmentSection   | 
osid.id.Id | itemId |  Id  of the  Item   | |
| Return | osid.assessment.AnswerForm | an answer form | |
| Errors | ILLEGAL_STATE |  hasAssessmentSectionBegun()  is  false or 
isAssessmentSectionOver()  is  true   |                 |
| NOT_FOUND |  assessmentSectionId  or  itemId  is not found, 
or  itemId  not part of  assessmentSectionId   |                 ||
| NULL_ARGUMENT |  assessmentSectionId  or  itemId  is  null 
  |                 ||
| OPERATION_FAILED | unable to complete request | ||
| PERMISSION_DENIED | authorization failure occurred | ||
| Compliance | mandatory | This method must be implemented. | |
| Method | submitResponse | ||
| Description | 
                     Submits an answer to an item.  | ||
| Parameters | osid.id.Id | assessmentSectionId |  Id  of the  AssessmentSection   | 
osid.id.Id | itemId |  Id  of the  Item   | |
osid.assessment.AnswerForm | answerForm | the response | |
| Errors | ILLEGAL_STATE |  hasAssessmentSectionBegun()  is  false or 
isAssessmentSectionOver()  is  true   |                 |
| INVALID_ARGUMENT | one or more of the elements in the form is invalid | ||
| NOT_FOUND |  assessmentSectionId  or  itemId  is not found, 
or  itemId  not part of  assessmentSectionId   |                 ||
| NULL_ARGUMENT |  assessmentSectionId, itemId,  or  answerForm  is 
 null   |                 ||
| OPERATION_FAILED | unable to complete request | ||
| PERMISSION_DENIED | authorization failure | ||
| UNSUPPORTED |  answerForm  is not of this service  |                 ||
| Compliance | mandatory | This method must be implemented. | |
| Method | skipItem | ||
| Description | 
                     Skips an item.  | ||
| Parameters | osid.id.Id | assessmentSectionId |  Id  of the  AssessmentSection   | 
osid.id.Id | itemId |  Id  of the  Item   | |
| Errors | ILLEGAL_STATE |  hasAssessmentSectionBegun()  is  false or 
isAssessmentSectionOver()  is  true   |                 |
| NOT_FOUND |  assessmentSectionId  or  itemId  is not found, 
or  itemId  not part of  assessmentSectionId   |                 ||
| NULL_ARGUMENT |  assessmentSectionId  or  itemId  is  null 
  |                 ||
| OPERATION_FAILED | unable to complete request | ||
| PERMISSION_DENIED | authorization failure | ||
| Compliance | mandatory | This method must be implemented. | |
| Method | isQuestionAnswered | ||
| Description | 
                     Tests if the given item has a response.  | ||
| Parameters | osid.id.Id | assessmentSectionId |  Id  of the  AssessmentSection   | 
osid.id.Id | itemId |  Id  of the  Item   | |
| Return | boolean |  true  if this item has a response,  false  
otherwise  | |
| Errors | ILLEGAL_STATE |  hasAssessmentSectionBegun()  is  false or 
isAssessmentSectionOver()  is  true   |                 |
| NOT_FOUND |  assessmentSectionId or itemId is not found, or itemId not part of 
assessmentSectionId   |                 ||
| NULL_ARGUMENT |  assessmentSectionId or itemId is null   |                 ||
| OPERATION_FAILED | unable to complete request | ||
| PERMISSION_DENIED | authorization failure | ||
| Compliance | mandatory | This method must be implemented. | |
| Method | getUnansweredQuestions | ||
| Description | 
                     Gets the unanswered questions of this assessment section.  | ||
| Parameters | osid.id.Id | assessmentSectionId |  Id  of the  AssessmentSection   | 
| Return | osid.assessment.QuestionList | the list of questions with no rsponses | |
| Errors | ILLEGAL_STATE |  hasAssessmentSectionBegun() is false or isAssessmentSectionOver() is 
true   |                 |
| NOT_FOUND |  assessmentSectionId  is not found  |                 ||
| NULL_ARGUMENT |  assessmentSectionId  is  null   |                 ||
| OPERATION_FAILED | unable to complete request | ||
| PERMISSION_DENIED | authorization failure occurred | ||
| Compliance | mandatory | This method must be implemented. | |
| Method | hasUnansweredQuestions | ||
| Description | 
                     Tests if there are unanswered questions in this assessment section.  | ||
| Parameters | osid.id.Id | assessmentSectionId |  Id  of the  AssessmentSection   | 
| Return | boolean |  true  if there are unanswered questions,  false  
otherwise  | |
| Errors | ILLEGAL_STATE |  hasAssessmentSectionBegun() is false or isAssessmentSectionOver() is 
true   |                 |
| NOT_FOUND |  assessmentSectionId  is not found  |                 ||
| NULL_ARGUMENT |  assessmentSectionId  is  null   |                 ||
| OPERATION_FAILED | unable to complete request | ||
| PERMISSION_DENIED | authorization failure occurred | ||
| Compliance | mandatory | This method must be implemented. | |
| Method | getFirstUnansweredQuestion | ||
| Description | 
                     Gets the first unanswered question in this assesment section.  | ||
| Parameters | osid.id.Id | assessmentSectionId |  Id  of the  AssessmentSection   | 
| Return | osid.assessment.Question | the first unanswered question | |
| Errors | ILLEGAL_STATE |  hasUnansweredQuestions()  is  false   |                 |
| NOT_FOUND |  assessmentSectionId  is not found  |                 ||
| NULL_ARGUMENT |  assessmentSectionId  is  null   |                 ||
| OPERATION_FAILED | unable to complete request | ||
| PERMISSION_DENIED | authorization failure occurred | ||
| Compliance | mandatory | This method must be implemented. | |
| Method | hasNextUnansweredQuestion | ||
| Description | 
                     Tests if there is a next unanswered question following 
                    the given question   | ||
| Parameters | osid.id.Id | assessmentSectionId |  Id  of the  AssessmentSection   | 
osid.id.Id | itemId |  Id  of the  Item   | |
| Return | boolean |  true  if there is a next unanswered question,  false 
 otherwise  | |
| Errors | ILLEGAL_STATE |  hasAssessmentSectionBegun() is false or isAssessmentSectionOver() is 
true   |                 |
| NOT_FOUND |  assessmentSectionId or itemId is not found, or itemId not part of 
assessmentSectionId   |                 ||
| NULL_ARGUMENT |  assessmentSectionId or itemId is null   |                 ||
| OPERATION_FAILED | unable to complete request | ||
| PERMISSION_DENIED | authorization failure occurred | ||
| Compliance | mandatory | This method must be implemented. | |
| Method | getNextUnansweredQuestion | ||
| Description | 
                     Gets the next unanswered question in this assesment section.  | ||
| Parameters | osid.id.Id | assessmentSectionId |  Id  of the  AssessmentSection   | 
osid.id.Id | itemId |  Id  of the  Item   | |
| Return | osid.assessment.Question | the next unanswered question | |
| Errors | ILLEGAL_STATE |  hasNextUnansweredQuestion()  is  false   |                 |
| NOT_FOUND |  assessmentSectionId or itemId is not found, or itemId not part of 
assessmentSectionId   |                 ||
| NULL_ARGUMENT |  assessmentSectionId or itemId is null   |                 ||
| OPERATION_FAILED | unable to complete request | ||
| PERMISSION_DENIED | authorization failure occurred | ||
| Compliance | mandatory | This method must be implemented. | |
| Method | hasPreviousUnansweredQuestion | ||
| Description | 
                     Tests if there is a previous unanswered question 
                    preceeding the given question   | ||
| Parameters | osid.id.Id | assessmentSectionId |  Id  of the  AssessmentSection   | 
osid.id.Id | itemId |  Id  of the  Item   | |
| Return | boolean |  true  if there is a previous unanswered question,  
false  otherwise  | |
| Errors | ILLEGAL_STATE |  hasAssessmentSectionBegun() is false or isAssessmentSectionOver() is 
true   |                 |
| NOT_FOUND |  assessmentSectionId or itemId is not found, or itemId not part of 
assessmentSectionId   |                 ||
| NULL_ARGUMENT |  assessmentSectionId or itemId is null   |                 ||
| OPERATION_FAILED | unable to complete request | ||
| PERMISSION_DENIED | authorization failure occurred | ||
| Compliance | mandatory | This method must be implemented. | |
| Method | getPreviousUnansweredQuestion | ||
| Description | 
                     Gets the previous unanswered question in this assesment section.  | ||
| Parameters | osid.id.Id | assessmentSectionId |  Id  of the  AssessmentSection   | 
osid.id.Id | itemId |  Id  of the  Item   | |
| Return | osid.assessment.Question | the previous unanswered question | |
| Errors | ILLEGAL_STATE |  hasPreviousUnansweredQuestion()  is  false   |                 |
| NOT_FOUND |  assessmentSectionId or itemId is not found, or itemId not part of 
assessmentSectionId   |                 ||
| NULL_ARGUMENT |  assessmentSectionId or itemId is null   |                 ||
| OPERATION_FAILED | unable to complete request | ||
| PERMISSION_DENIED | authorization failure occurred | ||
| Compliance | mandatory | This method must be implemented. | |
| Method | getResponse | ||
| Description | 
                     Gets the submitted response to the associated item.  | ||
| Parameters | osid.id.Id | assessmentSectionId |  Id  of the  AssessmentSection   | 
osid.id.Id | itemId |  Id  of the  Item   | |
| Return | osid.assessment.Response | the response | |
| Errors | ILLEGAL_STATE |  hasAssessmentSectionBegun()  is  false or 
isAssessmentSectionOver()  is  true   |                 |
| NOT_FOUND |  assessmentSectionId or itemId is not found, or itemId not part of 
assessmentSectionId   |                 ||
| NULL_ARGUMENT |  assessmentSectionId or itemId is null   |                 ||
| OPERATION_FAILED | unable to complete request | ||
| PERMISSION_DENIED | authorization failure | ||
| Compliance | mandatory | This method must be implemented. | |
| Method | getResponses | ||
| Description | 
                     Gets all submitted responses.  | ||
| Parameters | osid.id.Id | assessmentSectionId |  Id  of the  AssessmentSection   | 
| Return | osid.assessment.ResponseList | the list of responses | |
| Errors | ILLEGAL_STATE |  hasAssessmentSectionBegun()  is  false or 
isAssessmentSectionOver()  is  true   |                 |
| NOT_FOUND |  assessmentSectionId  is not found  |                 ||
| NULL_ARGUMENT |  assessmentSectionId  is  null   |                 ||
| OPERATION_FAILED | unable to complete request | ||
| PERMISSION_DENIED | authorization failure | ||
| Compliance | mandatory | This method must be implemented. | |
| Method | clearResponse | ||
| Description | 
                     Clears the response to an item The item appears as unanswered. If no response exists, the method simply returns.  | ||
| Parameters | osid.id.Id | assessmentSectionId |  Id  of the  AssessmentSection   | 
osid.id.Id | itemId |  Id  of the  Item   | |
| Errors | ILLEGAL_STATE |  hasAssessmentSectionBegun() is false or isAssessmentSectionOver() is 
true   |                 |
| NOT_FOUND |  assessmentSectionId or itemId is not found, or itemId not part of 
assessmentSectionId   |                 ||
| NULL_ARGUMENT |  assessmentSectionId or itemId is null   |                 ||
| OPERATION_FAILED | unable to complete request | ||
| PERMISSION_DENIED | authorization failure | ||
| Compliance | mandatory | This method must be implemented. | |
| Method | finishAssessmentSection | ||
| Description | 
                     Indicates an assessment section is complete. Finished sections may or may not allow new or updated responses.  | ||
| Parameters | osid.id.Id | assessmentSectionId |  Id  of the  AssessmentSection   | 
| Errors | ILLEGAL_STATE |  hasAssessmentSectionBegun()  is  false or 
isAssessmentSectionOver()  is  true   |                 |
| NOT_FOUND |  assessmentSectionId  is not found  |                 ||
| NULL_ARGUMENT |  assessmentSectionId  is  null   |                 ||
| OPERATION_FAILED | unable to complete request | ||
| PERMISSION_DENIED | authorization failure | ||
| Compliance | mandatory | This method must be implemented. | |
| Method | isAnswerAvailable | ||
| Description | 
                     Tests if an answer is available for the given item.  | ||
| Parameters | osid.id.Id | assessmentSectionId |  Id  of the  AssessmentSection   | 
osid.id.Id | itemId |  Id  of the  Item   | |
| Return | boolean |  true  if an answer are available,  false  
otherwise  | |
| Errors | NOT_FOUND |  assessmentSectionId or itemId is not found, or itemId not part of 
assessmentSectionId   |                 |
| NULL_ARGUMENT |  assessmentSectionId or itemId is null   |                 ||
| OPERATION_FAILED | unable to complete request | ||
| PERMISSION_DENIED | authorization failure | ||
| Compliance | mandatory | This method must be implemented. | |
| Method | getAnswers | ||
| Description | 
                     Gets the acceptable answers to the associated item.  | ||
| Parameters | osid.id.Id | assessmentSectionId |  Id  of the  AssessmentSection   | 
osid.id.Id | itemId |  Id  of the  Item   | |
| Return | osid.assessment.AnswerList | the answers | |
| Errors | ILLEGAL_STATE |  isAnswerAvailable()  is  false   |                 |
| NOT_FOUND |  assessmentSectionId or itemId is not found, or itemId not part of 
assessmentSectionId   |                 ||
| NULL_ARGUMENT |  assessmentSectionId or itemId is null   |                 ||
| OPERATION_FAILED | unable to complete request | ||
| PERMISSION_DENIED | authorization failure | ||
| Compliance | mandatory | This method must be implemented. | |
| Method | finishAssessment | ||
| Description | 
                     Indicates the entire assessment is complete.  | ||
| Parameters | osid.id.Id | assessmentTakenId |  Id  of the  AssessmentTaken   | 
| Errors | ILLEGAL_STATE |  hasBegun()  is  false or isOver()  is  
true   |                 |
| NOT_FOUND |  assessmentTakenId  is not found  |                 ||
| NULL_ARGUMENT |  assessmentTakenId  is  null   |                 ||
| OPERATION_FAILED | unable to complete request | ||
| PERMISSION_DENIED | authorization failure | ||
| Compliance | mandatory | This method must be implemented. | |