/* Ċ Ġ* ĠCopyright Ġ( C ) Ġ 2 0 1 7 / 2 0 2 0 Ġ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 . orche stration . shared Ċ Ċ import Ġai . to ck . bot . connector . Serializable 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 Choice Ċ import Ġai . to ck . bot . engine . action . Send Sentence Ċ import Ġcom . fasterxml . jackson . annotation . Json Sub Types Ċ import Ġcom . fasterxml . jackson . annotation . Json TypeInfo Ċ Ċ @ Json TypeInfo ( ĊĠĠĠ Ġuse Ġ= ĠJson TypeInfo . Id . NAME , ĊĠĠĠ Ġinclude Ġ= ĠJson TypeInfo . As . PROPERTY , ĊĠĠĠ Ġproperty Ġ= Ġ" type " Ċ ) Ċ @ Json Sub Types ( ĊĠĠĠ ĠJson Sub Types . Type ( value Ġ= ĠSecondary Bot Send Sentence :: class , Ġname Ġ= Ġ" send Sentence "), ĊĠĠĠ ĠJson Sub Types . Type ( value Ġ= ĠSecondary Bot Send Choice :: class , Ġname Ġ= Ġ" send Choice ") Ċ ) Ċ interface ĠSecondary Bot Action Ġ{ ĊĠĠĠ Ġval Ġmetadata : ĠAction Metadata ĊĠĠĠ Ġfun Ġto Action ( metaData : ĠO rche stration MetaData ) Ġ: ĠAction ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġfrom ( action : ĠAction , Ġbot Id : ĠString ) Ġ: ĠSecondary Bot Action ? Ġ= Ġwhen Ġ( action ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠSend Sentence Ġ-> ĠSecondary Bot Send Sentence ( messages Ġ= Ġaction . messages . filter Is Instance < Serializable Connector Message >(), Ġtext Ġ= Ġaction . text ?. toString (), Ġmetadata Ġ= Ġaction . metadata . copy ( orche str ated By Ġ= Ġbot Id )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠSend Choice Ġ-> ĠSecondary Bot Send Choice ( intent Name Ġ= Ġaction . intent Name , Ġparameters Ġ= Ġaction . parameters , Ġmetadata Ġ= Ġaction . metadata . copy ( orche str ated By Ġ= Ġbot Id )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġnull ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ data Ġclass ĠSecondary Bot Send Sentence ( ĊĠĠĠ Ġval Ġmessages : ĠList < Serializable Connector Message >, ĊĠĠĠ Ġval Ġtext : ĠString ?, ĊĠĠĠ Ġoverride Ġval Ġmetadata : ĠAction Metadata Ċ ) Ġ: ĠSecondary Bot Action Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġto Action ( ĊĠĠĠĠĠĠĠ ĠmetaData : ĠO rche stration MetaData ĊĠĠĠ Ġ): ĠAction Ġ= ĠSend Sentence ( ĊĠĠĠĠĠĠĠ Ġplayer Id Ġ= ĠmetaData . player Id , ĊĠĠĠĠĠĠĠ Ġapplication Id Ġ= ĠmetaData . application Id , ĊĠĠĠĠĠĠĠ Ġrecipient Id Ġ= ĠmetaData . recipient Id , ĊĠĠĠĠĠĠĠ Ġtext Ġ= Ġtext , ĊĠĠĠĠĠĠĠ Ġmessages Ġ= Ġmessages . to Mutable List (), ĊĠĠĠĠĠĠĠ Ġmetadata Ġ= Ġmetadata ĊĠĠĠ Ġ) Ċ } Ċ Ċ data Ġclass ĠSecondary Bot Send Choice ( ĊĠĠĠ Ġval Ġintent Name : ĠString , ĊĠĠĠ Ġval Ġparameters : ĠMap < String , ĠString > Ġ= Ġempty Map (), ĊĠĠĠ Ġoverride Ġval Ġmetadata : ĠAction Metadata Ċ ) Ġ: ĠSecondary Bot Action { ĊĠĠĠ Ġoverride Ġfun Ġto Action ( ĊĠĠĠĠĠĠĠ ĠmetaData : ĠO rche stration MetaData ĊĠĠĠ Ġ): ĠAction Ġ= ĠSend Choice ( ĊĠĠĠĠĠĠĠ Ġplayer Id Ġ= ĠmetaData . player Id , ĊĠĠĠĠĠĠĠ Ġapplication Id Ġ= ĠmetaData . application Id , ĊĠĠĠĠĠĠĠ Ġrecipient Id Ġ= ĠmetaData . recipient Id , ĊĠĠĠĠĠĠĠ Ġintent Name Ġ= Ġintent Name , ĊĠĠĠĠĠĠĠ Ġparameters Ġ= Ġparameters , ĊĠĠĠĠĠĠĠ Ġmetadata Ġ= Ġmetadata ĊĠĠĠ Ġ) Ċ }