/* Ċ Ġ* ĠCopyright ĠOpen Search ĠContributors Ċ Ġ* ĠSPDX - License - Identifier : ĠApache - 2 . 0 Ċ Ġ*/ Ċ Ċ package Ġorg . opense arch . alert ing . model Ċ Ċ import Ġorg . opense arch . alert ing . core . model . Doc Level Query Ċ import Ġorg . opense arch . alert ing . opense arch api . instant Ċ import Ġorg . opense arch . common . io . stream . Stream Input Ċ import Ġorg . opense arch . common . io . stream . Stream Output Ċ import Ġorg . opense arch . common . io . stream . Write able Ċ import Ġorg . opense arch . common . x content . To X Content Ċ import Ġorg . opense arch . common . x content . X Content Builder Ċ import Ġorg . opense arch . common . x content . X Content Parser Ċ import Ġorg . opense arch . common . x content . X Content Parser Utils . ensure Expected Token Ċ import Ġjava . io . IOException Ċ import Ġjava . time . Instant Ċ Ċ /** Ċ Ġ* ĠA Ġwrapper Ġof Ġthe Ġlog Ġevent Ġthat Ġen ric hes Ġthe Ġevent Ġby Ġalso Ġincluding Ġinformation Ġabout Ġthe Ġmonitor Ġit Ġtriggered . Ċ Ġ*/ Ċ class ĠFind ing ( ĊĠĠĠ Ġval Ġid : ĠString Ġ= ĠNO _ ID , ĊĠĠĠ Ġval Ġrelated Doc Ids : ĠList < String >, ĊĠĠĠ Ġval Ġmonitor Id : ĠString , ĊĠĠĠ Ġval Ġmonitor Name : ĠString , ĊĠĠĠ Ġval Ġindex : ĠString , ĊĠĠĠ Ġval Ġdoc Level Queries : ĠList < Doc Level Query >, ĊĠĠĠ Ġval Ġtimestamp : ĠInstant Ċ ) Ġ: ĠWrite able , ĠTo X Content Ġ{ ĊĊĠĠĠ Ġ@ Throws ( IOException :: class ) ĊĠĠĠ Ġconstructor ( sin : ĠStream Input ) Ġ: Ġthis ( ĊĠĠĠĠĠĠĠ Ġid Ġ= Ġsin . readString (), ĊĠĠĠĠĠĠĠ Ġrelated Doc Ids Ġ= Ġsin . readString List (), ĊĠĠĠĠĠĠĠ Ġmonitor Id Ġ= Ġsin . readString (), ĊĠĠĠĠĠĠĠ Ġmonitor Name Ġ= Ġsin . readString (), ĊĠĠĠĠĠĠĠ Ġindex Ġ= Ġsin . readString (), ĊĠĠĠĠĠĠĠ Ġdoc Level Queries Ġ= Ġsin . read List (( Doc Level Query ):: read From ), ĊĠĠĠĠĠĠĠ Ġtimestamp Ġ= Ġsin . read Instant () ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġfun Ġas Template Arg (): ĠMap < String , ĠAny ?> Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġmap Of ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠF IND ING _ ID _ FIELD Ġto Ġid , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠREL ATED _ DOC _ IDS _ FIELD Ġto Ġrelated Doc Ids , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMON ITOR _ ID _ FIELD Ġto Ġmonitor Id , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMON ITOR _ NAME _ FIELD Ġto Ġmonitor Name , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠINDEX _ FIELD Ġto Ġindex , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠQU ER IES _ FIELD Ġto Ġdoc Level Queries , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTIMESTAMP _ FIELD Ġto Ġtimestamp . to Epoch Milli () ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġto X Content ( builder : ĠX Content Builder , Ġparams : ĠTo X Content . Params ): ĠX Content Builder Ġ{ ĊĠĠĠĠĠĠĠ Ġbuilder . start Object () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. field ( FIND ING _ ID _ FIELD , Ġid ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. field ( RELATED _ DOC _ IDS _ FIELD , Ġrelated Doc Ids ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. field ( MONITOR _ ID _ FIELD , Ġmonitor Id ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. field ( MONITOR _ NAME _ FIELD , Ġmonitor Name ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. field ( INDEX _ FIELD , Ġindex ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. field ( QU ER IES _ FIELD , Ġdoc Level Queries . to Typed Array ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. field ( TIMESTAMP _ FIELD , Ġtimestamp . to Epoch Milli ()) ĊĠĠĠĠĠĠĠ Ġbuilder . end Object () ĊĠĠĠĠĠĠĠ Ġreturn Ġbuilder ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Throws ( IOException :: class ) ĊĠĠĠ Ġoverride Ġfun ĠwriteTo ( out : ĠStream Output ) Ġ{ ĊĠĠĠĠĠĠĠ Ġout . writeString ( id ) ĊĠĠĠĠĠĠĠ Ġout . writeString Collection ( related Doc Ids ) ĊĠĠĠĠĠĠĠ Ġout . writeString ( monitor Id ) ĊĠĠĠĠĠĠĠ Ġout . writeString ( monitor Name ) ĊĠĠĠĠĠĠĠ Ġout . writeString ( index ) ĊĠĠĠĠĠĠĠ Ġout . write Collection ( doc Level Queries ) ĊĠĠĠĠĠĠĠ Ġout . write Instant ( timestamp ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠF IND ING _ ID _ FIELD Ġ= Ġ" id " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠREL ATED _ DOC _ IDS _ FIELD Ġ= Ġ" related _ doc _ ids " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠMON ITOR _ ID _ FIELD Ġ= Ġ" monitor _ id " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠMON ITOR _ NAME _ FIELD Ġ= Ġ" monitor _ name " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠINDEX _ FIELD Ġ= Ġ" index " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠQU ER IES _ FIELD Ġ= Ġ" queries " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠTIMESTAMP _ FIELD Ġ= Ġ" timestamp " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠNO _ ID Ġ= Ġ"" ĊĊĠĠĠĠĠĠĠ Ġ@ Jvm Static Ġ@ Jvm Over loads ĊĠĠĠĠĠĠĠ Ġ@ Throws ( IOException :: class ) ĊĠĠĠĠĠĠĠ Ġfun Ġparse ( x cp : ĠX Content Parser ): ĠFind ing Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġid : ĠString Ġ= ĠNO _ ID ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrelated Doc Ids : ĠMutable List < String > Ġ= Ġmutable ListOf () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlateinit Ġvar Ġmonitor Id : ĠString ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlateinit Ġvar Ġmonitor Name : ĠString ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlateinit Ġvar Ġindex : ĠString ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġqueries : ĠMutable List < Doc Level Query > Ġ= Ġmutable ListOf () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlateinit Ġvar Ġtimestamp : ĠInstant ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġensure Expected Token ( X Content Parser . Token . START _ OBJECT , Ġx cp . current Token (), Ġx cp ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhile Ġ( x cp . nextToken () Ġ!= ĠX Content Parser . Token . END _ OBJECT ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠfieldName Ġ= Ġx cp . current Name () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġx cp . nextToken () ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( fieldName ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠF IND ING _ ID _ FIELD Ġ-> Ġid Ġ= Ġx cp . text () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠREL ATED _ DOC _ IDS _ FIELD Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġensure Expected Token ( X Content Parser . Token . START _ ARRAY , Ġx cp . current Token (), Ġx cp ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhile Ġ( x cp . nextToken () Ġ!= ĠX Content Parser . Token . END _ ARRAY ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrelated Doc Ids . add ( x cp . text ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMON ITOR _ ID _ FIELD Ġ-> Ġmonitor Id Ġ= Ġx cp . text () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMON ITOR _ NAME _ FIELD Ġ-> Ġmonitor Name Ġ= Ġx cp . text () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠINDEX _ FIELD Ġ-> Ġindex Ġ= Ġx cp . text () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠQU ER IES _ FIELD Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġensure Expected Token ( X Content Parser . Token . START _ ARRAY , Ġx cp . current Token (), Ġx cp ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhile Ġ( x cp . nextToken () Ġ!= ĠX Content Parser . Token . END _ ARRAY ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġqueries . add ( Doc Level Query . parse ( x cp )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTIMESTAMP _ FIELD Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtimestamp Ġ= Ġrequire NotNull ( x cp . instant ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠFind ing ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġid Ġ= Ġid , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrelated Doc Ids Ġ= Ġrelated Doc Ids , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmonitor Id Ġ= Ġmonitor Id , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmonitor Name Ġ= Ġmonitor Name , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġindex Ġ= Ġindex , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdoc Level Queries Ġ= Ġqueries , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtimestamp Ġ= Ġtimestamp ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Jvm Static ĊĠĠĠĠĠĠĠ Ġ@ Throws ( IOException :: class ) ĊĠĠĠĠĠĠĠ Ġfun Ġread From ( sin : ĠStream Input ): ĠFind ing Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠFind ing ( sin ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ