package Ġcom . ark iv an ov . mv ik otlin . logging . store Ċ Ċ import Ġcom . ark iv an ov . mv ik otlin . core . store . Bootstrap per Ċ import Ġcom . ark iv an ov . mv ik otlin . core . store . Executor Ċ import Ġcom . ark iv an ov . mv ik otlin . core . store . Reducer Ċ import Ġcom . ark iv an ov . mv ik otlin . core . store . Store Ċ import Ġcom . ark iv an ov . mv ik otlin . core . store . Store Factory Ċ import Ġcom . ark iv an ov . mv ik otlin . logging . logger . Default Log Formatter Ċ import Ġcom . ark iv an ov . mv ik otlin . logging . logger . Default Logger Ċ import Ġcom . ark iv an ov . mv ik otlin . logging . logger . Log Formatter Ċ import Ġcom . ark iv an ov . mv ik otlin . logging . logger . Logger Ċ import Ġcom . ark iv an ov . mv ik otlin . logging . logger . Logger Wrapper Ċ Ċ /** Ċ Ġ* ĠAn Ġimplementation Ġof Ġthe Ġ[ Store Factory ] Ġthat Ġwraps Ġanother Ġ[ Store Factory ] Ġand Ġprovides Ġlogging Ċ Ġ* Ċ Ġ* Ġ@ param Ġdelegate Ġa Ġ[ Store Factory ] Ġthat Ġwill Ġbe Ġwrapped Ġby Ġthis Ġfactory Ċ Ġ* Ġ@ param Ġlogger Ġa Ġ[ Logger ], Ġby Ġdefault Ġthe Ġ[ Default Logger ] Ġis Ġused Ċ Ġ* Ġ@ param Ġlog Formatter Ġa Ġ[ Log Formatter ], Ġby Ġdefault Ġthe Ġ[ Default Log Formatter ] Ġwith Ġdefault Ġarguments Ġis Ġused Ċ Ġ*/ Ċ class ĠLogging Store Factory ( ĊĠĠĠ Ġprivate Ġval Ġdelegate : ĠStore Factory , ĊĠĠĠ Ġlogger : ĠLogger Ġ= ĠDefault Logger , ĊĠĠĠ Ġlog Formatter : ĠLog Formatter Ġ= ĠDefault Log Formatter () Ċ ) Ġ: ĠStore Factory Ġby Ġdelegate Ġ{ ĊĊĠĠĠ Ġconstructor ( delegate : ĠStore Factory ) Ġ: Ġthis ( delegate , ĠDefault Logger , ĠDefault Log Formatter ()) ĊĊĠĠĠ Ġprivate Ġval Ġlogger Wrapper Ġ= ĠLogger Wrapper ( logger , Ġlog Formatter ) ĊĊĠĠĠ Ġoverride Ġfun Ġ< Intent Ġ: ĠAny , ĠAction Ġ: ĠAny , ĠMessage Ġ: ĠAny , ĠState Ġ: ĠAny , ĠLabel Ġ: ĠAny > Ġcreate ( ĊĠĠĠĠĠĠĠ Ġname : ĠString ?, ĊĠĠĠĠĠĠĠ Ġis Auto Init : ĠBoolean , ĊĠĠĠĠĠĠĠ ĠinitialState : ĠState , ĊĠĠĠĠĠĠĠ Ġbootstrap per : ĠBootstrap per < Action > ?, ĊĠĠĠĠĠĠĠ Ġexecutor Factory : Ġ() Ġ-> ĠExecutor < Intent , ĠAction , ĠState , ĠMessage , ĠLabel >, ĊĠĠĠĠĠĠĠ Ġreducer : ĠRed ucer < State , ĠMessage > ĊĠĠĠ Ġ): ĠStore < Intent , ĠState , ĠLabel > Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( name Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġdelegate . create ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Auto Init Ġ= Ġis Auto Init , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠinitialState Ġ= ĠinitialState , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbootstrap per Ġ= Ġbootstrap per , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexecutor Factory Ġ= Ġexecutor Factory , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreducer Ġ= Ġreducer ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġlogger Wrapper . log ("$ name : Ġcreating ") ĊĊĠĠĠĠĠĠĠ Ġval Ġdelegate Store Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdelegate . create ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġname Ġ= Ġname , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Auto Init Ġ= Ġfalse , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠinitialState Ġ= ĠinitialState , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbootstrap per Ġ= Ġbootstrap per , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexecutor Factory Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLogging Executor ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdelegate Ġ= Ġexecutor Factory (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlogger Ġ= Ġlogger Wrapper , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstore Name Ġ= Ġname ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreducer Ġ= ĠLogging Reducer ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdelegate Ġ= Ġreducer , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlogger Ġ= Ġlogger Wrapper , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstore Name Ġ= Ġname ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġreturn ĠLogging Store ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdelegate Ġ= Ġdelegate Store , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlogger Ġ= Ġlogger Wrapper , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġname Ġ= Ġname ĊĠĠĠĠĠĠĠ Ġ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( is Auto Init ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinit () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ