Bonjour à tous,

Mon titre n'est peut être pas 100% clair mais j'avais du mal à l'exprimer.

J'ai une map, pour laquelle la valeur est une liste.
Je me retrouve donc avec quelque chose du style :
myMap[obj1] = [obj1-1, obj1-2]
myMap[obj2] = [obj2-1]
myMap[obj3] = [obj3-1, obj3-2, obj3-3]
(clé = groupe / valeur = liste de users)

Enfin j'aimerai, mais ça ne fonctionne pas quand j'alimente la liste, et je ne sais pas pourquoi.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
 
def groupsMap = [:]
for (it in sql.rows(groupsQuery)) {
  def group = [:]
  if (it.parent_id != group?.id) {
    // new group to process
    group.put("id", it.parent_id)
    group.put("name", it.parent_name)
    groupsMap.put(group, [])
  }
 
    // create the child
    def child = [:]
    child.put("id", it.child_id)
    child.put("name", it.child_name)
    child.put("type", it.child_type)
 
    // get current child list and add new child
    tempChildList = groupsMap.get(group);
    if (tempChildList.size() > 0) {
      println 'tempChildList is not empty'
    }
    tempChildList.add(child);
    println '..... group ' + group.get("id") + ' size ' + tempChildList.size()
    groupsMap.put(group, tempChildList)
}
En résultat je ne vois jamais "tempChildList is not empty"
Pourtant j'ai au moins 1 groupe pour lequel j'ajoute 3 users. Voici un extrait de la sortie sur la console :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
..... group 14659717 size 1
..... group 14659717 size 1
..... group 14659717 size 1
Est-ce que quelqu'un vois où est mon erreur ?

Merci pour votre aide.

PS: Je suis débutant en Groovy, et j'utilise la version 1.8.3