package Ġdata Processor Ċ Ċ import Ġdata Processor . input Data . User Changed Files Ċ import Ġjava . util . concurrent . Concurrent HashMap Ċ Ċ class ĠAssignment Matrix Data Processor Ġ: ĠData Processor Mapped < User Changed Files >() Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġ_ assignment Matrix : ĠConcurrent HashMap < Int , ĠConcurrent HashMap < Int , ĠInt >> Ġ= ĠConcurrent HashMap () ĊĊĠĠĠ Ġval Ġassignment Matrix : ĠMap < Int , ĠMap < Int , ĠInt >> ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġ_ assignment Matrix ĊĊĠĠĠ Ġoverride Ġfun Ġprocess Data ( data : ĠUser Changed Files ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval ĠuserId Ġ= Ġuser Mapper . add ( data . user ) ĊĠĠĠĠĠĠĠ Ġfor Ġ( filePath Ġin Ġdata . files ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfile Id Ġ= Ġfile Mapper . add ( filePath ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ_ assignment Matrix ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. compute If Absent ( userId ) Ġ{ ĠConcurrent HashMap () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. compute ( file Id ) Ġ{ Ġ_, Ġv Ġ-> Ġif Ġ( v Ġ== Ġnull ) Ġ 1 Ġelse Ġv Ġ+ Ġ 1 Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġcalculate () Ġ{} Ċ }