package Ġex po . modules . web browser Ċ Ċ import Ġex po . modules . core . interfaces . Consumer Ċ import Ġjava . util .* Ċ Ċ class ĠDeferred Client Actions Queue < T > Ġ{ ĊĠ Ġprivate Ġval Ġactions : ĠQueue < Consumer < T >> Ġ= ĠLinkedList () ĊĠ Ġprivate Ġvar Ġclient : ĠT ? Ġ= Ġnull ĊĊĠ Ġfun Ġset Client ( client : ĠT ) Ġ{ ĊĠĠĠ Ġthis . client Ġ= Ġclient ĊĠĠĠ Ġexecute Queued Actions () ĊĠ Ġ} ĊĊĠ Ġfun Ġhas Client (): ĠBoolean Ġ= Ġclient Ġ!= Ġnull ĊĊĠ Ġfun Ġexecute Or Queue Action ( action : ĠConsumer < T >) Ġ{ ĊĠĠĠ Ġif Ġ( client Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠ Ġaction . apply ( client ) ĊĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠ Ġadd Action To Queue ( action ) ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġfun Ġclear () Ġ{ ĊĠĠĠ Ġclient Ġ= Ġnull ĊĠĠĠ Ġactions . clear () ĊĠ Ġ} ĊĊĠ Ġprivate Ġfun Ġexecute Queued Actions () Ġ{ ĊĠĠĠ Ġif Ġ( client Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠ Ġreturn ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġvar Ġaction Ġ= Ġactions . poll () ĊĠĠĠ Ġwhile Ġ( action Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠ Ġaction . apply ( client ) ĊĠĠĠĠĠ Ġaction Ġ= Ġactions . poll () ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġprivate Ġfun Ġadd Action To Queue ( consumer : ĠConsumer < T >) Ġ{ ĊĠĠĠ Ġactions . add ( consumer ) ĊĠ Ġ} Ċ } Ċ