/* Ċ Ġ* ĠCopyright ĠOpen Search ĠContributors Ċ Ġ* ĠSPDX - License - Identifier : ĠApache - 2 . 0 Ċ Ġ*/ Ċ Ċ package Ġorg . opense arch . alert ing . model Ċ Ċ import Ġorg . apache . logging . log 4 j . Log Manager Ċ 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 Ċ import Ġjava . io . IOException Ċ Ċ private Ġval Ġlog Ġ= ĠLog Manager . getLogger ( Finding Document :: class . java ) Ċ Ċ class ĠFind ing Document ( ĊĠĠĠ Ġval Ġindex : ĠString , ĊĠĠĠ Ġval Ġid : ĠString , ĊĠĠĠ Ġval Ġfound : ĠBoolean , ĊĠĠĠ Ġval Ġdocument : ĠString Ċ ) Ġ: ĠWrite able , ĠTo X Content Ġ{ ĊĊĠĠĠ Ġ@ Throws ( IOException :: class ) ĊĠĠĠ Ġconstructor ( sin : ĠStream Input ) Ġ: Ġthis ( ĊĠĠĠĠĠĠĠ Ġindex Ġ= Ġsin . readString (), ĊĠĠĠĠĠĠĠ Ġid Ġ= Ġsin . readString (), ĊĠĠĠĠĠĠĠ Ġfound Ġ= Ġsin . read Boolean (), ĊĠĠĠĠĠĠĠ Ġdocument Ġ= Ġsin . readString () ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġoverride Ġfun Ġto X Content ( builder : ĠX Content Builder , Ġparams : ĠTo X Content . Params ): ĠX Content Builder Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġbuilder . start Object () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. field ( INDEX _ FIELD , Ġindex ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. field ( FIND ING _ DOCUMENT _ ID _ FIELD , Ġid ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. field ( FOUND _ FIELD , Ġfound ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. field ( DOCUMENT _ FIELD , Ġdocument ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. end Object () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Throws ( IOException :: class ) ĊĠĠĠ Ġoverride Ġfun ĠwriteTo ( out : ĠStream Output ) Ġ{ ĊĠĠĠĠĠĠĠ Ġout . writeString ( index ) ĊĠĠĠĠĠĠĠ Ġout . writeString ( id ) ĊĠĠĠĠĠĠĠ Ġout . write Boolean ( found ) ĊĠĠĠĠĠĠĠ Ġout . writeString ( document ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠINDEX _ FIELD Ġ= Ġ" index " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠF IND ING _ DOCUMENT _ ID _ FIELD Ġ= Ġ" id " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠFO UND _ FIELD Ġ= Ġ" found " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠDOCUMENT _ FIELD Ġ= Ġ" document " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠNO _ ID Ġ= Ġ"" ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠNO _ INDEX Ġ= Ġ"" ĊĊĠĠĠĠĠĠĠ Ġ@ Jvm Static Ġ@ Jvm Over loads ĊĠĠĠĠĠĠĠ Ġ@ Throws ( IOException :: class ) ĊĠĠĠĠĠĠĠ Ġfun Ġparse ( x cp : ĠX Content Parser , Ġid : ĠString Ġ= ĠNO _ ID , Ġindex : ĠString Ġ= ĠNO _ INDEX ): ĠFind ing Document Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġfound Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġdocument : ĠString Ġ= Ġ"" ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠX Content Parser Utils . 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 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠFO UND _ FIELD Ġ-> Ġfound Ġ= Ġx cp . boolean Value () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDOCUMENT _ FIELD Ġ-> Ġdocument Ġ= Ġx cp . text () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠFind ing Document ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġindex Ġ= Ġindex , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġid Ġ= Ġid , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfound Ġ= Ġfound , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdocument Ġ= Ġdocument ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Jvm Static ĊĠĠĠĠĠĠĠ Ġ@ Throws ( IOException :: class ) ĊĠĠĠĠĠĠĠ Ġfun Ġread From ( sin : ĠStream Input ): ĠFind ing Document Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠFind ing Document ( sin ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ