package Ġorg . v accine impact . order ly web . db . repositories Ċ Ċ import Ġorg . jooq . Record Ċ import Ġorg . v accine impact . order ly web . db . J oo q Context Ċ import Ġorg . v accine impact . order ly web . db . Tables . ORDER LY WEB _ DOCUMENT Ċ import Ġorg . v accine impact . order ly web . models . Document Ċ Ċ interface ĠDocument Repository Ċ { ĊĊĠĠĠ Ġfun ĠgetAll Visible Documents (): ĠList < Document > ĊĊĠĠĠ Ġfun ĠgetAll Flat (): ĠList < Document > ĊĊĠĠĠ Ġfun Ġadd ( path : ĠString , Ġname : ĠString , ĠdisplayName : ĠString , Ġis File : ĠBoolean , Ġexternal : ĠBoolean , Ġparent Path : ĠString ?) ĊĠĠĠ Ġfun Ġset Visibility ( documents : ĠList < Document >, Ġshow : ĠBoolean ) Ċ Ċ } Ċ Ċ class ĠOrder ly Document Repository Ġ: ĠDocument Repository Ċ { ĊĊĠĠĠ Ġoverride Ġfun ĠgetAll Visible Documents (): ĠList < Document > ĊĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠ ĠJ oo q Context (). use Ġ{ Ġdb Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġroot Nodes Ġ= Ġdb . dsl . select From ( ORDER LY WEB _ DOCUMENT ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. where ( ORDER LY WEB _ DOCUMENT . PARENT . isNull ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. and ( ORDER LY WEB _ DOCUMENT . SHOW . eq ( 1 )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. fetch () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġroot Nodes . map Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmap Document ( db , Ġit ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}. sorted By Ġ{ Ġit . displayName Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. sorted By Ġ{ Ġit . external Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetAll Flat (): ĠList < Document > ĊĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠ ĠJ oo q Context (). use Ġ{ Ġdb Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġdb . dsl . select From ( ORDER LY WEB _ DOCUMENT ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. fetch () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġresult . map Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDocument ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit [ ORDER LY WEB _ DOCUMENT . NAME ], ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit [ ORDER LY WEB _ DOCUMENT . DISPLAY _ NAME ] Ġ?: Ġit [ ORDER LY WEB _ DOCUMENT . NAME ], ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit [ ORDER LY WEB _ DOCUMENT . PATH ], ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit [ ORDER LY WEB _ DOCUMENT . IS _ FILE ] Ġ== Ġ 1 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit [ ORDER LY WEB _ DOCUMENT . EXTERNAL ] Ġ== Ġ 1 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġadd ( path : ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġname : ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠdisplayName : ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis File : ĠBoolean , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexternal : ĠBoolean , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġparent Path : ĠString ?) ĊĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠ ĠJ oo q Context (). use Ġ{ Ġdb Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdb . dsl . insert Into ( ORDER LY WEB _ DOCUMENT ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set ( ORDER LY WEB _ DOCUMENT . PATH , Ġpath ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set ( ORDER LY WEB _ DOCUMENT . NAME , Ġname ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set ( ORDER LY WEB _ DOCUMENT . DISPLAY _ NAME , ĠdisplayName ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set ( ORDER LY WEB _ DOCUMENT . IS _ FILE , Ġis File . toInt ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set ( ORDER LY WEB _ DOCUMENT . EXTERNAL , Ġexternal . toInt ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set ( ORDER LY WEB _ DOCUMENT . PARENT , Ġparent Path ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set ( ORDER LY WEB _ DOCUMENT . SHOW , Ġ 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. execute () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġset Visibility ( documents : ĠList < Document >, Ġshow : ĠBoolean ) ĊĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġpaths Ġ= Ġdocuments . map Ġ{ Ġit . path Ġ} ĊĠĠĠĠĠĠĠ ĠJ oo q Context (). use Ġ{ Ġdb Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdb . dsl . update ( ORDER LY WEB _ DOCUMENT ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set ( ORDER LY WEB _ DOCUMENT . SHOW , Ġshow . toInt ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. where ( ORDER LY WEB _ DOCUMENT . PATH .` in `( paths )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. execute () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġget Children ( db : ĠJ oo q Context , Ġnode : ĠDocument ): ĠList < Document > ĊĠĠĠ Ġ{ ĊĊĠĠĠĠĠĠĠ Ġreturn Ġdb . dsl . select From ( ORDER LY WEB _ DOCUMENT ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. where ( ORDER LY WEB _ DOCUMENT . PARENT . eq ( node . path )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. and ( ORDER LY WEB _ DOCUMENT . SHOW . eq ( 1 )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. fetch (). map Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmap Document ( db , Ġit ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}. sorted By Ġ{ Ġit . displayName Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. sorted By Ġ{ Ġit . external Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġmap Document ( db : ĠJ oo q Context , Ġrecord : ĠRecord ): ĠDocument ĊĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġdoc Ġ= ĠDocument ( record [ ORDER LY WEB _ DOCUMENT . NAME ], Ġrecord [ ORDER LY WEB _ DOCUMENT . DISPLAY _ NAME ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ?: Ġrecord [ ORDER LY WEB _ DOCUMENT . NAME ], Ġrecord [ ORDER LY WEB _ DOCUMENT . PATH ], ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrecord [ ORDER LY WEB _ DOCUMENT . IS _ FILE ] Ġ== Ġ 1 , Ġrecord [ ORDER LY WEB _ DOCUMENT . EXTERNAL ] Ġ== Ġ 1 , ĠlistOf ()) ĊĠĠĠĠĠĠĠ Ġreturn Ġdoc . copy ( children Ġ= Ġget Children ( db , Ġdoc )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠBoolean . toInt (): ĠInt ĊĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( this ) Ġ 1 Ġelse Ġ 0 ĊĠĠĠ Ġ} Ċ } Ċ