package Ġorg . are nd . module . config Ċ Ċ import Ġcom . intellij . openapi . util . io . File Util Ċ import Ġorg . are nd . library . Library Dependency Ċ import Ġjava . nio . file . Paths ĊĊ Ċ interface ĠAre nd Module Configuration Ġ{ ĊĠĠĠ Ġvar Ġlibraries Root : ĠString ĊĠĠĠ Ġvar Ġsources Dir : ĠString ĊĠĠĠ Ġvar Ġwith Bin aries : ĠBoolean ĊĠĠĠ Ġvar Ġbinaries Directory : ĠString ĊĠĠĠ Ġvar Ġtests Dir : ĠString ĊĠĠĠ Ġvar Ġwith Extensions : ĠBoolean ĊĠĠĠ Ġvar Ġextensions Directory : ĠString ĊĠĠĠ Ġvar Ġextension Main Class Data : ĠString ĊĠĠĠ Ġvar Ġdependencies : ĠList < Library Dependency > ĊĠĠĠ Ġvar Ġlang Version String : ĠString ĊĊĠĠĠ Ġvar Ġflag ged Bin aries Dir : ĠString ? ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġif Ġ( with Bin aries ) Ġbinaries Directory Ġelse Ġnull ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwith Bin aries Ġ= Ġvalue Ġ!= Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( value Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinaries Directory Ġ= Ġvalue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġflag ged Extensions Dir : ĠString ? ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġif Ġ( with Extensions ) Ġextensions Directory Ġelse Ġnull ĊĊĠĠĠ Ġval Ġflag ged Extension Main Class : ĠString ? ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġif Ġ( with Extensions ) Ġextension Main Class Data Ġelse Ġnull ĊĊĠĠĠ Ġfun Ġcopy From ( another : ĠAre nd Module Configuration ) Ġ{ ĊĠĠĠĠĠĠĠ Ġlibraries Root Ġ= Ġanother . libraries Root ĊĠĠĠĠĠĠĠ Ġsources Dir Ġ= Ġanother . sources Dir ĊĠĠĠĠĠĠĠ Ġwith Bin aries Ġ= Ġanother . with Bin aries ĊĠĠĠĠĠĠĠ Ġbinaries Directory Ġ= Ġanother . binaries Directory ĊĠĠĠĠĠĠĠ Ġtests Dir Ġ= Ġanother . tests Dir ĊĠĠĠĠĠĠĠ Ġwith Extensions Ġ= Ġanother . with Extensions ĊĠĠĠĠĠĠĠ Ġextensions Directory Ġ= Ġanother . extensions Directory ĊĠĠĠĠĠĠĠ Ġextension Main Class Data Ġ= Ġanother . extension Main Class Data ĊĠĠĠĠĠĠĠ Ġdependencies Ġ= ĠArrayList ( another . dependencies ) ĊĠĠĠĠĠĠĠ Ġlang Version String Ġ= Ġanother . lang Version String ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġcompare ( another : ĠAre nd Module Configuration ) Ġ= ĊĠĠĠĠĠĠĠ Ġlibraries Root Ġ== Ġanother . libraries Root Ġ&& ĊĠĠĠĠĠĠĠ Ġsources Dir Ġ== Ġanother . sources Dir Ġ&& ĊĠĠĠĠĠĠĠ Ġwith Bin aries Ġ== Ġanother . with Bin aries Ġ&& ĊĠĠĠĠĠĠĠ Ġbinaries Directory Ġ== Ġanother . binaries Directory Ġ&& ĊĠĠĠĠĠĠĠ Ġtests Dir Ġ== Ġanother . tests Dir Ġ&& ĊĠĠĠĠĠĠĠ Ġwith Extensions Ġ== Ġanother . with Extensions Ġ&& ĊĠĠĠĠĠĠĠ Ġextensions Directory Ġ== Ġanother . extensions Directory Ġ&& ĊĠĠĠĠĠĠĠ Ġextension Main Class Data Ġ== Ġanother . extension Main Class Data Ġ&& ĊĠĠĠĠĠĠĠ Ġdependencies Ġ== Ġanother . dependencies Ġ&& ĊĠĠĠĠĠĠĠ Ġlang Version String Ġ== Ġanother . lang Version String ĊĊĠĠĠ Ġfun Ġto Relative ( root : ĠString ?, Ġstr : ĠString ) Ġ= Ġif Ġ( root Ġ== Ġnull Ġ|| Ġstr . isEmpty ()) Ġstr Ġelse Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġroot Path Ġ= ĠPaths . get ( root ) ĊĠĠĠĠĠĠĠ Ġval Ġpath Ġ= ĠPaths . get ( str ) ĊĠĠĠĠĠĠĠ Ġif Ġ( path . startsWith ( rootPath )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠFile Util . to System In dependent Name ( rootPath . rel ativ ize ( path ). toString ()) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpath . toString () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġto Absolute ( root : ĠString ?, Ġstr : ĠString ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġd Str Ġ= ĠFile Util . to System Dependent Name ( str ) ĊĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġroot Ġ== Ġnull Ġ-> Ġd Str ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstr . isEmpty () Ġ-> Ġroot ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpath Ġ= ĠPaths . get ( d Str ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( path . is Absolute ) Ġd Str Ġelse ĠPaths . get ( root ). resolve ( path ). toString () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }