@utilities.arguments_not_none<EOL><INDENT>def move_item_ahead(self, item_id, assessment_part_id, reference_id):<DEDENT>
if (not isinstance(assessment_part_id, ABCId) and<EOL>assessment_part_id.get_identifier_namespace() != '<STR_LIT>'):<EOL><INDENT>raise errors.InvalidArgument('<STR_LIT>')<EOL><DEDENT>assessment_part_map, collection = self._get_assessment_part_collection(assessment_part_id)<EOL>assessment_part_map['<STR_LIT>'] = move_id_ahead(item_id, reference_id, assessment_part_map['<STR_LIT>'])<EOL>collection.save(assessment_part_map)<EOL>
Reorders items in an assessment part by moving the specified item in front of a reference item.

        arg:    item_id (osid.id.Id): ``Id`` of the ``Item``
        arg:    assessment_part_id (osid.id.Id): ``Id`` of the
                ``AssessmentPartId``
        arg:    reference_id (osid.id.Id): ``Id`` of the reference
                ``Item``
        raise:  NotFound - ``item_id`` or ``reference_id``  ``not found
                in assessment_part_id``
        raise:  NullArgument - ``item_id, reference_id`` or
                ``assessment_part_id`` is ``null``
        raise:  OperationFailed - unable to complete request
        raise:  PermissionDenied - authorization fauilure
        *compliance: mandatory -- This method must be implemented.*