package Ġcom . github . j ule k aren al ender . domain Ċ Ċ import Ġcom . github . j ule k aren al ender . db Ċ import Ġcom . github . j ule k aren al ender . game Parameters Ċ import Ġcom . github . j ule k aren al ender . logger Ċ import Ġorg . d iz it art . no 2 . Index Type Ċ import Ġorg . d iz it art . no 2 . objects . Id Ċ import Ġorg . d iz it art . no 2 . objects . Index Ċ import Ġorg . d iz it art . no 2 . objects . Indices Ċ import Ġorg . d iz it art . no 2 . objects . Object Repository Ċ import Ġjava . util .* Ċ Ċ @ Indices ( Index ( value Ġ= Ġ" uuid ", Ġtype Ġ= ĠIndex Type . Unique )) Ċ data Ġclass ĠPart icipant Data ( ĊĠĠĠ Ġ@ Id Ġval Ġuuid : ĠString Ġ= ĠUUID . randomUUID (). toString (), ĊĠĠĠ Ġval Ġname : ĠString , ĊĠĠĠ Ġval Ġimage : ĠString ?, ĊĠĠĠ Ġvar Ġdate W on : ĠInt Ġ= Ġ 0 Ċ ) Ġ{ ĊĠĠĠ Ġfun Ġsave () Ġ{ ĊĠĠĠĠĠĠĠ Ġlogger . debug (" Updating Ġdb Ġwith Ġ: $ this ") ĊĠĠĠĠĠĠĠ Ġif Ġ( game Parameters . dry Run ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlogger . debug (" *** ĠD ry Run : ĠNo Ġdatabase Ġupdate ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġparticipant Store : ĠObject Repository < Participant Data > Ġ= Ġdb . getRepository ( Participant Data :: class . java ) ĊĠĠĠĠĠĠĠ Ġval Ġall Ġ= Ġparticipant Store . find (). toList () ĊĠĠĠĠĠĠĠ Ġval Ġexists Ġ= Ġall . stream (). any Match Ġ{ Ġit . uuid Ġ== Ġthis . uuid Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( exists ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġparticipant Store . update ( this ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġparticipant Store . insert ( this ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġremove () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( game Parameters . dry Run ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlogger . debug (" *** ĠD ry Run : ĠNo Ġdatabase Ġupdate ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġparticipant Store : ĠObject Repository < Participant Data > Ġ= Ġdb . getRepository ( Participant Data :: class . java ) ĊĠĠĠĠĠĠĠ Ġif Ġ( participant Store . find (). contains ( this )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġparticipant Store . remove ( this ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġinsert Non existent First Time () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( game Parameters . dry Run ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlogger . debug (" *** ĠD ry Run : ĠNo Ġdatabase Ġupdate ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġparticipant Store : ĠObject Repository < Participant Data > Ġ= Ġdb . getRepository ( Participant Data :: class . java ) ĊĠĠĠĠĠĠĠ Ġval Ġall Ġ= Ġparticipant Store . find (). toList () ĊĊĠĠĠĠĠĠĠ Ġval Ġexists Ġ= Ġall . stream (). any Match Ġ{ Ġit . name Ġ== Ġthis . name Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( exists ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġparticipant Store . insert ( this ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} Ċ Ċ } Ċ