My question with Groovy Maps. I ve been searching for a way to programmatically add a new entry to a Groovy map without overwriting the current entry. For example
def editsMap = [:] lineEdits.flag.each { lineEdits_Flag -> editsMap.put( FlagId ,lineEdits_Flag.id) editsMap.put( FlagMnemonic ,lineEdits_Flag.mnemonic) editsMap.put( Action ,lineEdits_Flag.action) println "editsMap: ${editsMap}" }
The first pass produces this map:
editsMap: [FlagId:10001, FlagMnemonic:TRA, Action:review]
But the second pass overwrites the first pass with:
editsMap: [FlagId:10002, FlagMnemonic:REB, Action:deny]
What I m trying to do is create multiple entries within the one map. I need my map to populate something like this:
editsMap: [FlagId:10001, FlagMnemonic:TRA, Action:review] editsMap: [FlagId:10002, FlagMnemonic:REB, Action:deny] editsMap: [FlagId:10003, FlagMnemonic:UNB, Action:deny] editsMap: [FlagId:20001, FlagMnemonic:REB, Action:deny] editsMap: [FlagId:20002, FlagMnemonic:ICD, Action:review] editsMap: [FlagId:30001, FlagMnemonic:REB, Action:deny] editsMap: [FlagId:40001, FlagMnemonic:ICD, Action:review] editsMap: [FlagId:40002, FlagMnemonic:MPR, Action:review] editsMap: [FlagId:50001, FlagMnemonic:CPT, Action:deny] editsMap: [FlagId:60001, FlagMnemonic:DTU, Action:deny] editsMap: [FlagId:70001, FlagMnemonic:ICD, Action:review] editsMap: [FlagId:70002, FlagMnemonic:MPR, Action:review]
Once I have populated my map then I need to be able to find certain values in order to process a message. I believe that I can use something like:
def thisValue = appliedEditsMap[FlagId, 10001 ] ?: "default"
to do a quick lookup.
Can someone help me understand how to programmatically add values to a Groovy map without overwriting the values already in the map?