def METHOD_NAME(self, graph, expr_index, sdfg, permissive=False):
    map_entry = self.map_entry
    # Check if the map is one-dimensional
    if map_entry.map.range.dims() != 1:
        return False
    # We cannot transform a map which is already of schedule type MPI
    if map_entry.map.schedule == dtypes.ScheduleType.MPI:
        return False
    # We cannot transform a map which is already inside a MPI map, or in
    # another device
    schedule_whitelist = [dtypes.ScheduleType.Default, dtypes.ScheduleType.Sequential]
    sdict = graph.scope_dict()
    parent = sdict[map_entry]
    while parent is not None:
        if parent.map.schedule not in schedule_whitelist:
            return False
        parent = sdict[parent]
    # Dynamic map ranges not supported (will allocate dynamic memory)
    if has_dynamic_map_inputs(graph, map_entry):
        return False
    # MPI schedules currently do not support WCR
    map_exit = graph.exit_node(map_entry)
    if any(e.data.wcr for e in graph.out_edges(map_exit)):
        return False
    return True