def METHOD_NAME(self, data, tasks_by_name):
    id_ = self.get_id()
    data['files'] = self.parse_dict(
        data['files'],
        partial(self.parse_generic, cls='File'), 'filename',
        submission=id_)
    data['executables'] = self.parse_dict(
        data['executables'],
        partial(self.parse_generic, cls='Executable'), 'filename',
        submission=id_)
    data['evaluations'] = self.parse_list(
        data['evaluations'],
        partial(self.parse_generic, cls='Evaluation'), submission=id_)
    if data['token'] is not None:
        data['token'] = self.parse_generic(data['token'], 'Token')
    task_id = tasks_by_name[data['task']]
    data['task'] = task_id
    self.objs[task_id]['submissions'].append(id_)
    data['_class'] = 'Submission'
    self.objs[id_] = data
    return id_