def get_activity_smart_objective_bank_session(self, objective_bank_id=None):
if objective_bank_id is None:<EOL><INDENT>raise NullArgument<EOL><DEDENT>raise Unimplemented()<EOL>
Gets the ``OsidSession`` to manage dynamic objective banks of activities.

        arg:    objective_bank_id (osid.id.Id): the ``Id`` of the
                ``ObjectiveBank``
        return: (osid.learning.ActivitySmartObjectiveBankSession) - an
                ``ActivitySmartObjectiveBankSession``
        raise:  NotFound - no objective bank found by the given ``Id``
        raise:  NullArgument - ``objective_bank_id`` is ``null``
        raise:  OperationFailed - unable to complete request
        raise:  Unimplemented -
                ``supports_activity_smart_objective_bank()`` is
                ``false``
        *compliance: optional -- This method must be implemented if
        ``supports_activity_smart_objective_bank()`` is ``true``.*