package Ġde . ma ib orn w ol ff . code chart a . importer . jas ome Ċ Ċ 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 . io . Writer Ċ import Ġjava . util . concurrent . Callable Ċ Ċ @ CommandLine . Command ( ĊĠĠĠ Ġname Ġ= Ġ" jas ome import ", ĊĠĠĠ Ġdescription Ġ= Ġ[" gener ates Ġcc . json Ġfrom Ġj as ome Ġxml Ġfile "], ĊĠĠĠ Ġfooter Ġ= Ġ[" Copyright ( c ) Ġ 2 0 2 0 , ĠMa ib orn W ol ff ĠGmbH "] Ċ ) Ċ class ĠJ as ome Importer Ġ: ĠCallable < Void > Ġ{ ĊĊĠĠĠ Ġ@ CommandLine . Parameters ( arity Ġ= Ġ" 1 ", Ġparam Label Ġ= Ġ" FILE ", Ġdescription Ġ= Ġ[" file Ġto Ġparse "]) ĊĠĠĠ Ġprivate Ġvar Ġfile : ĠFile ? Ġ= Ġnull ĊĊĠĠĠ Ġ@ 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 . Option ( names Ġ= Ġ[" - nc ", Ġ"-- not - compressed "], Ġdescription Ġ= Ġ[" save Ġun compressed Ġoutput ĠFile "]) ĊĠĠĠ Ġprivate Ġvar Ġcompress Ġ= Ġtrue ĊĊĠĠĠ Ġoverride Ġfun Ġcall (): ĠVoid ? Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġj as ome Project Ġ= ĠJ as ome Deserializer (). deserialize J as ome XML ( file !!. inputStream ()) ĊĠĠĠĠĠĠĠ Ġval Ġproject Ġ= ĠJ as ome Project Builder (). add ( jas ome Project ). build () ĊĠĠĠĠĠĠĠ Ġval ĠfilePath Ġ= ĠoutputFile ?. absolute Path Ġ?: Ġ" not Specified " ĊĊĠĠĠĠĠĠĠ Ġif Ġ( compress Ġ&& ĠfilePath Ġ!= Ġ" not Specified ") ĠProject Serializer . serialize As Compressed File ( project , ĠfilePath ) Ġelse ĠProject Serializer . serialize Project ( project , Ġwriter ()) ĊĊĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġwriter (): ĠWriter Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠoutputFile ?. writer () Ġ?: ĠSystem . out . writer () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĊĠĠĠĠĠĠĠ Ġ@ Jvm Static ĊĠĠĠĠĠĠĠ Ġfun Ġmain ( args : ĠArray < String >) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCommandLine . call ( J as ome Importer (), ĠSystem . out , Ġ* args ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ