Return a dictionary of requested details about a submission
        with the id of link.

        Keyword Arguments
        -----------------

        * link: the unique string ID of a submission
        * with_source: should we request the source code
        * with_input: request the program input
        * with_output: request the program output
        * with_stderr: request the error output
        * with_compilation_info: request compilation flags

        Examples
        --------

        >>> ideone_object = Ideone('username', 'password')
        >>> ideone_object.submission_details('LsSbo')
        {'cmpinfo': ,
         'date': "2011-04-18 15:24:14",
         'error': "OK",
         'input': "",
         'langId': 116,
         'langName': "Python 3",
         'langVersion': "python-3.1.2",
         'memory': 5852,
         'output': 42,
         'public': True,
         'result': 15,
         'signal': 0,
         'source': "print(42)",
         'status': 0,
         'stderr': "",
         'time': 0.02}

def submission_details(self, link, with_source=True,
                               with_input=True, with_output=True,
                               with_stderr=True, with_compilation_info=True):
        """
        Return a dictionary of requested details about a submission
        with the id of link.

        Keyword Arguments
        -----------------

        * link: the unique string ID of a submission
        * with_source: should we request the source code
        * with_input: request the program input
        * with_output: request the program output
        * with_stderr: request the error output
        * with_compilation_info: request compilation flags

        Examples
        --------

        >>> ideone_object = Ideone('username', 'password')
        >>> ideone_object.submission_details('LsSbo')
        {'cmpinfo': ,
         'date': "2011-04-18 15:24:14",
         'error': "OK",
         'input': "",
         'langId': 116,
         'langName': "Python 3",
         'langVersion': "python-3.1.2",
         'memory': 5852,
         'output': 42,
         'public': True,
         'result': 15,
         'signal': 0,
         'source': "print(42)",
         'status': 0,
         'stderr': "",
         'time': 0.02}

        """
        result = self.client.service.getSubmissionDetails(self.user, self.password,
                                                          link,
                                                          with_source, with_input,
                                                          with_output, with_stderr,
                                                          with_compilation_info)
        result_dict = Ideone._transform_to_dict(result)
        Ideone._handle_error(result_dict)
        return result_dict