def update_objective_bank(self, objective_bank_form=None):
if objective_bank_form is None:<EOL><INDENT>raise NullArgument()<EOL><DEDENT>if not isinstance(objective_bank_form, abc_learning_objects.ObjectiveBankForm):<EOL><INDENT>raise InvalidArgument('<STR_LIT>')<EOL><DEDENT>if not objective_bank_form.is_for_update():<EOL><INDENT>raise InvalidArgument('<STR_LIT>')<EOL><DEDENT>try:<EOL><INDENT>if self._forms[objective_bank_form.get_id().get_identifier()] == UPDATED:<EOL><INDENT>raise IllegalState('<STR_LIT>')<EOL><DEDENT><DEDENT>except KeyError:<EOL><INDENT>raise Unsupported('<STR_LIT>')<EOL><DEDENT>if not objective_bank_form.is_valid():<EOL><INDENT>raise InvalidArgument('<STR_LIT>')<EOL><DEDENT>url_path = construct_url('<STR_LIT>')<EOL>try:<EOL><INDENT>result = self._put_request(url_path, objective_bank_form._my_map)<EOL><DEDENT>except Exception:<EOL><INDENT>raise  <EOL><DEDENT>self._forms[objective_bank_form.get_id().get_identifier()] = UPDATED<EOL>return objects.ObjectiveBank(result)<EOL>
Updates an existing objective bank.

        arg:    objectiveBankForm (osid.learning.ObjectiveBankForm): the
                form containing the elements to be updated
        raise:  IllegalState - objectiveBankForm already used in an
                update transaction
        raise:  InvalidArgument - the form contains an invalid value
        raise:  NullArgument - objectiveBankForm is null
        raise:  OperationFailed - unable to complete request
        raise:  PermissionDenied - authorization failure
        raise:  Unsupported - objective_bank_form did not originate from
                get_objective_bank_form_for_update()
        compliance: mandatory - This method must be implemented.