package Ġde . ma ib orn w ol ff . code chart a . importer . code ma at Ċ Ċ import Ġde . ma ib orn w ol ff . code chart a . attribute Types . Attribute Types Ċ import Ġde . ma ib orn w ol ff . code chart a . model . AttributeType Ċ import Ġde . ma ib orn w ol ff . code chart a . serialization . Project Serializer Ċ import Ġde . ma ib orn w ol ff . code chart a . translator . Metric Name Translator Ċ import Ġpic oc li . CommandLine Ċ import Ġjava . io .* Ċ import Ġjava . util . concurrent . Callable Ċ Ċ @ CommandLine . Command ( name Ġ= Ġ" code ma at import ", Ġdescription Ġ= Ġ[" gener ates Ġcc . json Ġfrom Ġcode ma at Ġcoup ling Ġcsv "], ĊĠĠĠĠĠĠĠ Ġfooter Ġ= Ġ[" Copyright ( c ) Ġ 2 0 2 0 , ĠMa ib orn W ol ff ĠGmbH "]) Ċ class ĠCode Ma at Importer : ĠCallable < Void > Ġ{ ĊĊĠĠĠ Ġ@ CommandLine . Option ( names Ġ= Ġ[" - h ", Ġ"-- help "], Ġusage Help Ġ= Ġtrue , Ġdescription Ġ= Ġ[" display s Ġthis Ġhelp Ġand Ġexits "]) ĊĠĠĠ Ġprivate Ġvar Ġhelp Ġ= Ġfalse ĊĊĠĠĠ Ġ@ CommandLine . Option ( names Ġ= Ġ[" - o ", Ġ"-- output - file "], Ġdescription Ġ= Ġ[" output ĠFile Ġ( or Ġempty Ġfor Ġstdout )" ]) ĊĠĠĠ Ġprivate Ġvar ĠoutputFile : ĠFile ? Ġ= Ġnull ĊĊĠĠĠ Ġ@ CommandLine . Parameters ( arity Ġ= Ġ" 1 .. *", Ġparam Label Ġ= Ġ" FILE ", Ġdescription Ġ= Ġ[" code ma at Ġcoup ling Ġcsv Ġfiles "]) ĊĠĠĠ Ġprivate Ġvar Ġfiles : ĠList < File > Ġ= Ġmutable ListOf () ĊĊĠĠĠ Ġprivate Ġval Ġpath Separator Ġ= Ġ'/' ĊĊĠĠĠ Ġprivate Ġval Ġcsv Delimiter Ġ= Ġ',' ĊĊĠĠĠ Ġ@ Throws ( IOException :: class ) ĊĠĠĠ Ġoverride Ġfun Ġcall (): ĠVoid ? Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcsv Project Builder Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCSV Project Builder ( path Separator , Ġcsv Delimiter , Ġcode ma at Replacement , Ġattribute Types ) ĊĠĠĠĠĠĠĠ Ġfiles . map Ġ{ Ġit . inputStream () Ġ}. forEach < InputStream > Ġ{ Ġcsv Project Builder . parse CSV Stream ( it ) Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġproject Ġ= Ġcsv Project Builder . build () ĊĊĠĠĠĠĠĠĠ ĠProject Serializer . serialize Project ( project , Ġwriter ()) ĊĊĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġcode ma at Replacement : ĠMetric Name Translator ĊĠĠĠĠĠĠĠ Ġget () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġprefix Ġ= Ġ"" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġreplacement Map Ġ= Ġmutable Map Of < String , ĠString >() ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreplacement Map [" entity "] Ġ= Ġ" from N od ename " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreplacement Map [" coup led "] Ġ= Ġ" to NodeName " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreplacement Map [" degree "] Ġ= Ġ" pair ing Rate " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreplacement Map [" average - re vs "] Ġ= Ġ" avg Commits " ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠMetric Name Translator ( replacement Map . toMap (), Ġprefix ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġattribute Types : ĠAttribute Types ĊĠĠĠĠĠĠĠ Ġget () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtype Ġ= Ġ" edges " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġattribute Types Ġ= Ġmutable Map Of < String , ĠAttribute Type >() ĊĠĠĠĠĠĠĠĠĠĠĠ Ġattribute Types [" pair ing Rate "] Ġ= ĠAttribute Type . relative ĊĠĠĠĠĠĠĠĠĠĠĠ Ġattribute Types [" avg Commits "] Ġ= ĠAttribute Type . absolute ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠAttribute Types ( attribute Types . toMap (), Ġtype ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġwriter (): ĠWriter Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( outputFile Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠOutputStream Writer ( System . out ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠBuffered Writer ( FileWriter ( outputFile )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġ@ Jvm Static ĊĠĠĠĠĠĠĠ Ġfun Ġmain ( args : ĠArray < String >) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCommandLine . call ( Code Ma at Importer (), ĠSystem . out , Ġ* args ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } ĊĊ