/* Ċ Ġ* ĠCopyright Ġ( C ) Ġ 2 0 1 7 / 2 0 1 9 Ġe - voy age urs Ġtechnologies Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ Ċ package Ġai . to ck . bot . mongo Ċ Ċ import Ġai . to ck . bot . connector . Connector Message Ċ import Ġai . to ck . bot . engine . action . Action Ċ import Ġai . to ck . bot . engine . action . Action Metadata Ċ import Ġai . to ck . bot . engine . action . Send Sentence Ċ import Ġai . to ck . bot . engine . dialog . Dialog Ċ import Ġai . to ck . bot . engine . dialog . Event State Ċ import Ġai . to ck . bot . engine . nlp . N lp Call Stats Ċ import Ġai . to ck . bot . engine . user . Player Id Ċ import Ġmu . Kotlin Logging Ċ import Ġorg . lit ote . km ongo . Id Ċ import Ġorg . lit ote . km ongo . new Id Ċ import Ġjava . time . Instant Ċ Ċ /** Ċ Ġ* Ċ Ġ*/ Ċ internal Ġclass ĠSend Sentence With Not Loaded Message ( ĊĠĠĠ Ġval Ġdialog Id : ĠId < Dialog >, ĊĠĠĠ Ġplayer Id : ĠPlayer Id , ĊĠĠĠ Ġapplication Id : ĠString , ĊĠĠĠ Ġrecipient Id : ĠPlayer Id , ĊĠĠĠ Ġtext : ĠCharSequence ?, ĊĠĠĠ Ġid : ĠId < Action > Ġ= Ġnew Id (), ĊĠĠĠ Ġdate : ĠInstant Ġ= ĠInstant . now (), ĊĠĠĠ Ġstate : ĠEvent State Ġ= ĠEvent State (), ĊĠĠĠ Ġmetadata : ĠAction Metadata Ġ= ĠAction Metadata () Ċ ) Ġ: ĠSend Sentence ( player Id , Ġapplication Id , Ġrecipient Id , Ġtext , Ġmutable ListOf (), Ġid , Ġdate , Ġstate , Ġmetadata , Ġnull ) Ġ{ ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġlogger Ġ= ĠKotlin Logging . logger Ġ{} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinternal Ġvar Ġmessage Loaded Ġ= Ġfalse ĊĠĠĠ Ġprivate Ġvar Ġloaded Message : ĠMutable List < Connector Message > Ġ= Ġmutable ListOf () ĊĊĠĠĠ Ġoverride Ġval Ġmessages : ĠMutable List < Connector Message > ĊĠĠĠĠĠĠĠ Ġget () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! message Loaded ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlogger . debug Ġ{ Ġ" load Ġmessage Ġfor Ġ$ id " Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmessage Loaded Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġloaded Message . addAll ( User Timeline Mongo DAO . load Connector Message ( to Action Id (), Ġdialog Id )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġloaded Message ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġinternal Ġvar Ġn lp Stats Loaded Ġ= Ġfalse ĊĠĠĠ Ġprivate Ġvar Ġloaded N lp Stats : ĠN lp Call Stats ? Ġ= Ġnull ĊĊĠĠĠ Ġoverride Ġvar Ġn lp Stats : ĠN lp Call Stats ? ĊĠĠĠĠĠĠĠ Ġget () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! nlp Stats Loaded ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlogger . debug Ġ{ Ġ" load Ġn lp Stats Ġfor Ġ$ id " Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġn lp Stats Loaded Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġloaded N lp Stats Ġ= ĠUser Timeline Mongo DAO . load N lp Stats ( to Action Id (), Ġdialog Id ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġloaded N lp Stats ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . loaded N lp Stats Ġ= Ġvalue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġn lp Stats Loaded Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠtoString (): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( message Loaded ) Ġsuper . toString () Ġelse Ġ" Send Sentence With Not Loaded Message ( dialog Id =$ dialog Id , Ġmessage Loaded =$ message Loaded , Ġn lp Stats Loaded =$ nlp Stats Loaded )" ĊĠĠĠ Ġ} ĊĊ Ċ }