def get_composition_smart_repository_session(self, repository_id=None):
if repository_id is None:<EOL><INDENT>raise NullArgument<EOL><DEDENT>raise Unimplemented()<EOL>
Gets a composition smart repository session for the given repository.

        arg:    repository_id (osid.id.Id): the ``Id`` of the repository
        return: (osid.repository.CompositionSmartRepositorySession) - a
                ``CompositionSmartRepositorySession``
        raise:  NotFound - ``repository_id`` not found
        raise:  NullArgument - ``repository_id`` is ``null``
        raise:  OperationFailed - ``unable to complete request``
        raise:  Unimplemented -
                ``supports_composition_smart_repository()``  ``false``
        *compliance: optional -- This method must be implemented if
        ``supports_composition_smart_repository()`` is ``true``.*