@utilities.arguments_not_none<EOL><INDENT>@check_effective<EOL>def submit_response(self, assessment_section_id, item_id, answer_form):<DEDENT>
if not isinstance(answer_form, ABCAnswerForm):<EOL><INDENT>raise errors.InvalidArgument('<STR_LIT>')<EOL><DEDENT>if answer_form.is_for_update():<EOL><INDENT>raise errors.InvalidArgument('<STR_LIT>')<EOL><DEDENT>try:<EOL><INDENT>if self._forms[answer_form.get_id().get_identifier()] == SUBMITTED:<EOL><INDENT>raise errors.IllegalState('<STR_LIT>')<EOL><DEDENT><DEDENT>except KeyError:<EOL><INDENT>raise errors.Unsupported('<STR_LIT>')<EOL><DEDENT>if not answer_form.is_valid():<EOL><INDENT>raise errors.InvalidArgument('<STR_LIT>')<EOL><DEDENT>answer_form._my_map['<STR_LIT>'] = ObjectId()<EOL>self.get_assessment_section(assessment_section_id).submit_response(item_id, answer_form)<EOL>self._forms[answer_form.get_id().get_identifier()] = SUBMITTED<EOL>
Submits an answer to an item.

        arg:    assessment_section_id (osid.id.Id): ``Id`` of the
                ``AssessmentSection``
        arg:    item_id (osid.id.Id): ``Id`` of the ``Item``
        arg:    answer_form (osid.assessment.AnswerForm): the response
        raise:  IllegalState - ``has_assessment_section_begun()`` is
                ``false or is_assessment_section_over()`` is ``true``
        raise:  InvalidArgument - one or more of the elements in the
                form is invalid
        raise:  NotFound - ``assessment_section_id`` or ``item_id`` is
                not found, or ``item_id`` not part of
                ``assessment_section_id``
        raise:  NullArgument - ``assessment_section_id, item_id,`` or
                ``answer_form`` is ``null``
        raise:  OperationFailed - unable to complete request
        raise:  PermissionDenied - authorization failure
        raise:  Unsupported - ``answer_form`` is not of this service
        *compliance: mandatory -- This method must be implemented.*