package Ġde . ma ib orn w ol ff . code chart a . filter . edge filter Ċ Ċ import Ġde . ma ib orn w ol ff . code chart a . serialization . Project Deserializer Ċ import Ġde . ma ib orn w ol ff . code chart a . serialization . Project Serializer Ċ import Ġpic oc li . CommandLine Ċ import Ġjava . io . File Ċ import Ġjava . util . concurrent . Callable Ċ Ċ @ CommandLine . Command ( name Ġ= Ġ" edge filter ", ĊĠĠĠĠĠĠĠ Ġdescription Ġ= Ġ[" aggreg tes Ġedge Attributes Ġas Ġnode Attributes Ġinto Ġa Ġnew Ġcc . json Ġfile "], ĊĠĠĠĠĠĠĠ Ġfooter Ġ= Ġ[" Copyright ( c ) Ġ 2 0 2 0 , ĠMa ib orn W ol ff ĠGmbH "]) Ċ class ĠEdge Filter : ĠCallable < Void ?> Ġ{ ĊĊĠĠĠ Ġ@ CommandLine . Option ( names Ġ= Ġ[" - h ", Ġ"-- help "], Ġusage Help Ġ= Ġtrue , Ġdescription Ġ= Ġ[" display s Ġthis Ġhelp Ġand Ġexits "]) ĊĠĠĠ Ġvar Ġhelp : ĠBoolean Ġ= Ġfalse ĊĊĠĠĠ Ġ@ CommandLine . Parameters ( arity Ġ= Ġ" 1 .. *", Ġparam Label Ġ= Ġ" FILE ", Ġdescription Ġ= Ġ[" files Ġto Ġfilter "]) ĊĠĠĠ Ġprivate Ġvar Ġsource : ĠString Ġ= Ġ"" ĊĊĠĠĠ Ġ@ CommandLine . Option ( names Ġ= Ġ[" -- path - separator "], Ġdescription Ġ= Ġ[" path Ġseparator Ġ( default Ġ= Ġ'/') "]) ĊĠĠĠ Ġprivate Ġvar Ġpath Separator Ġ= Ġ'/' ĊĊĠĠĠ Ġ@ CommandLine . Option ( names Ġ= Ġ[" - o ", Ġ"-- output - file "], Ġdescription Ġ= Ġ[" output ĠFile Ġ( or Ġempty Ġfor Ġstdout )" ]) ĊĠĠĠ Ġprivate Ġvar ĠoutputFile : ĠFile ? Ġ= Ġnull ĊĊĠĠĠ Ġoverride Ġfun Ġcall (): ĠVoid ? Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġsrc Project Ġ= ĠProject Deserializer . deserialize Project ( File ( source ). buffered Reader ()) ĊĊĠĠĠĠĠĠĠ Ġval Ġnew Project Ġ= ĠEdge Project Builder ( src Project , Ġpath Separator ). merge () ĊĊĠĠĠĠĠĠĠ Ġval Ġwriter Ġ= ĠoutputFile ?. buffered Writer () Ġ?: ĠSystem . out . buffered Writer () ĊĠĠĠĠĠĠĠ ĠProject Serializer . serialize Project ( new Project , Ġwriter ) ĊĊĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġ@ Jvm Static ĊĠĠĠĠĠĠĠ Ġfun Ġmain ( args : ĠArray < String >) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCommandLine . call ( Edge Filter (), ĠSystem . out , Ġ* args ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ