package Ġcom . github . j async _ sql _ extensions . mapper . dsl Ċ Ċ import Ġcom . github . j async . sql . db . Row Data Ċ Ċ interface ĠSl iding < T Ġ: ĠAny > Ġ{ ĊĠĠĠ Ġfun Ġhas Next (): ĠBoolean ĊĠĠĠ Ġfun Ġnext ( ignore Index : ĠBoolean Ġ= Ġfalse ): ĠT ? ĊĠĠĠ Ġfun Ġall (): ĠList < T > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcollector : ĠMutable List < T > Ġ= Ġmutable ListOf () ĊĊĠĠĠĠĠĠĠ Ġwhile Ġ( this . hasNext ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġelement Ġ= Ġthis . next () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( element Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcollector . add ( element ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġcollector ĊĠĠĠ Ġ} Ċ } Ċ Ċ class ĠIter ating Slider < T Ġ: ĠAny >( val Ġparent : ĠIterator < T >): ĠSl iding < T > Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġnext ( ignore Index : ĠBoolean ): ĠT ? Ġ= Ġparent . next () ĊĠĠĠ Ġoverride Ġfun Ġhas Next (): ĠBoolean Ġ= Ġparent . hasNext () Ċ } Ċ Ċ class ĠSl iding Window ( val Ġparent : ĠIterator < Row Data >, Ġval Ġindex : ĠInt ): ĠSl iding < Row Data > Ġ{ ĊĠĠĠ Ġprivate Ġvar Ġcurrent Row : ĠRow Data ? Ġ= Ġif Ġ( parent . hasNext ()) Ġparent . next () Ġelse Ġnull ĊĠĠĠ Ġprivate Ġvar Ġnext Row : ĠRow Data ? Ġ= Ġif Ġ( parent . hasNext ()) Ġparent . next () Ġelse Ġnull ĊĊĠĠĠ Ġoverride Ġfun Ġhas Next (): ĠBoolean Ġ= Ġcurrent Row Ġ!= Ġnull ĊĠĠĠ Ġoverride Ġfun Ġnext ( ignore Index : ĠBoolean ): ĠRow Data ? Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġresult : ĠRow Data ? Ġ= Ġif Ġ( ignore Index Ġ|| Ġnext Row Ġ== Ġnull Ġ|| Ġcurrent Row ! ![ index ] Ġ!= Ġnext Row ! ![ index ]) Ġcurrent Row Ġelse Ġnull ĊĠĠĠĠĠĠĠ Ġcurrent Row Ġ= Ġnext Row ĊĠĠĠĠĠĠĠ Ġnext Row Ġ= Ġif Ġ( parent . hasNext ()) Ġparent . next () Ġelse Ġnull ĊĊĠĠĠĠĠĠĠ Ġreturn Ġresult ĊĠĠĠ Ġ} Ċ } Ċ