/* Ċ Ġ* ĠCopyright Ġ( C ) Ġ 2 0 1 7 / 2 0 2 1 Ġ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 . engine . nlp Ċ Ċ import Ġai . to ck . bot . definition . Intent Ċ import Ġai . to ck . bot . engine . Bot Bus Ċ import Ġai . to ck . shared . Loader Ċ Ċ @ Volatile Ċ private Ġvar Ġinternal Keyword Services : ĠList < Keyword Service >? Ġ= Ġnull Ċ Ċ internal Ġval Ġkeyword Services : ĠList < Keyword Service > ĊĠĠĠ Ġget () Ġ= ĊĠĠĠĠĠĠĠ Ġif Ġ( internal Keyword Services Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinternal Keyword Services Ġ= ĠLoader . load Services () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinternal Keyword Services !! ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinternal Keyword Services !! ĊĠĠĠĠĠĠĠ Ġ} Ċ Ċ interface ĠKeyword Service Ġ{ ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠIf Ġreturns Ġnot Ġnull , Ġa Ġkeyword Ġis Ġdetected , Ġand Ġthe Ġreturned Ġintent Ġis Ġused Ġto Ġfind Ġthe Ġstory . ĊĠĠĠĠ Ġ* ĠUse Ġ[ Intent . keyword ] Ġto Ġredirect Ġto Ġthe Ġdefault Ġkeyword Ġhandler . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġdetect Keyword Intent ( sentence : ĠString ): ĠIntent ? Ġ= Ġnull ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠIf Ġthis Ġmethod Ġreturns Ġnot Ġnull Ġfor Ġthe Ġspecified Ġ[ keyword ], Ġthen Ġthe Ġreturned Ġhandler Ġis Ġcalled . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġkeyword Handler ( keyword : ĠString ): Ġ(( bus : ĠBot Bus ) Ġ-> ĠUnit )? Ġ= Ġnull Ċ } Ċ