package Ġcom . ep am . br n . upload . csv . sub group Ċ Ċ import Ġcom . ep am . br n . enums . Locale Ċ import Ġcom . ep am . br n . model . Sub Group Ċ import Ġcom . ep am . br n . repo . Series Repository Ċ import Ġcom . ep am . br n . repo . Sub Group Repository Ċ import Ġcom . ep am . br n . upload . csv . Record Processor Ċ import Ġorg . springframework . stereotype . Component Ċ import Ġorg . springframework . transaction . annotation . Transactional Ċ import Ġjavax . persistence . Entity NotFoundException Ċ Ċ @ Component Ċ class ĠSub group Generic Record Processor ( ĊĠĠĠ Ġprivate Ġval Ġseries Repository : ĠSeries Repository , ĊĠĠĠ Ġprivate Ġval Ġsub Group Repository : ĠSub Group Repository Ċ ) Ġ: ĠRecord Processor < Sub group Generic Record , ĠSub Group > Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġis Applicable ( record : ĠAny ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġrecord Ġis ĠSub group Generic Record ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Transactional ĊĠĠĠ Ġoverride Ġfun Ġprocess ( records : ĠList < Sub group Generic Record >, Ġlocale : ĠLocale ): ĠList < Sub Group > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġsub Groups Ġ= Ġrecords ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġseries Ġ= Ġseries Repository ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. findBy Type And Locale ( it . series Type , Ġlocale . locale ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ?: Ġthrow ĠEntity NotFoundException (" Series Ġ${ it . series Type } Ġand Ġgroup Ġlocale Ġ$ locale Ġwas Ġnot Ġfound .") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSub Group ( it , Ġseries ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġsub Groups . forEach Ġ{ Ġsub Group Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrun Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġexist Sub Group Ġ= Ġsub Group Repository . find ByName And Level ( sub Group . name , Ġsub Group . level ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( exist Sub Group Ġ== Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsub Group Repository . save ( sub Group ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġsub Groups ĊĠĠĠ Ġ} Ċ } Ċ