/* Ċ Ġ* ĠCopyright Ġ( C ) Ġ 2 0 1 7 ĠVS CT Ċ Ġ* Ċ Ġ* Ġ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 Ġfr . vs ct . to ck . bot . engine . nlp Ċ Ċ import Ġfr . vs ct . to ck . bot . definition . Intent Ċ import Ġfr . vs ct . to ck . shared . property Ċ import Ġjava . util . concurrent . Concurrent Skip List Set Ċ Ċ /** Ċ Ġ* ĠBuilt - in Ġlistener Ġto Ġstart Ġ[ Bot Definition . keyword Story ]. Ċ Ġ*/ Ċ object ĠBuilt In Keyword Listener Ġ: ĠN lp Listener Ġ{ ĊĊĠĠĠ Ġval Ġdelete Keyword Ġ= Ġproperty (" to ck _ bot _ delete _ keyword ", Ġ"_ delete _ user _ ") ĊĠĠĠ Ġval Ġenable Keyword Ġ= Ġproperty (" to ck _ bot _ enable _ keyword ", Ġ"_ enable _ user _ ") ĊĠĠĠ Ġval Ġdisable Keyword Ġ= Ġproperty (" to ck _ bot _ disable _ keyword ", Ġ"_ disable _ user _ ") ĊĠĠĠ Ġval Ġtest Context Keyword Ġ= Ġproperty (" to ck _ bot _ test _ context _ keyword ", Ġ"_ test _ ") ĊĠĠĠ Ġval Ġend TestContext Keyword Ġ= Ġproperty (" to ck _ bot _ end _ test _ context _ keyword ", Ġ"_ end _ test _ ") ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠThe Ġkeyword Ġto Ġlisten . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġval Ġkeywords : ĠMutable Set < String > Ġ= ĠConcurrent Skip List Set < String >( ĊĠĠĠĠĠĠĠ ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdelete Keyword , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġenable Keyword , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdisable Keyword , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtest Context Keyword , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġend TestContext Keyword ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠThe Ġkeyword Ġregexp Ġis Ġapplicable . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Volatile ĊĠĠĠ Ġvar Ġkeyword Regexp : ĠRegex ? Ġ= Ġnull ĊĊĠĠĠ Ġoverride Ġfun Ġhandle Keyword ( sentence : ĠString ): ĠIntent ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( keywords . contains ( sentence ) Ġ|| Ġkeyword Regexp ?. matches ( sentence ) Ġ== Ġtrue ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠIntent . keyword ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnull ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ Ċ }