/* ĠCopyright Ġ 2 0 2 1 ĠBetter ĠLtd Ġ( www . better . care ) Ċ Ġ* Ċ Ġ* Ġ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 Ġcare . better . platform . web . template . converter . raw . factory . leaf Ċ Ċ import Ġcare . better . platform . template . Am Node Ċ import Ġcare . better . platform . web . template . builder . model . input . Web Template Input Ċ import Ġcare . better . platform . web . template . converter . Web Template Path Ċ import Ġcare . better . platform . web . template . converter . exceptions . Conversion Exception Ċ import Ġcare . better . platform . web . template . converter . raw . context . Conversion Context Ċ import Ġcom . fasterxml . jackson . databind . JsonNode Ċ import Ġcom . fasterxml . jackson . databind . node . Value Node Ċ import Ġorg . open e hr . rm . common . Feed er Audit Details Ċ Ċ /** Ċ Ġ* Ġ@ author ĠPri moz ĠDe lop st Ċ Ġ* Ġ@ since Ġ 3 . 1 . 0 Ċ Ġ* Ċ Ġ* ĠSingleton Ġinstance Ġof Ġ[ Rm Object Leaf Node Factory ] Ġthat Ġcreates Ġa Ġnew Ġinstance Ġof Ġ[ Feed er Audit Details ]. Ċ Ġ*/ Ċ internal Ġobject ĠFeed er Audit Details Factory Ġ: ĠR m Object Leaf Node Factory < Feed er Audit Details >() Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġcreate ForValue Node ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġconversion Context : ĠConversion Context , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġam Node : ĠAm Node , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvalue Node : ĠValue Node , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġweb Template Path : ĠWeb Template Path ): ĠFeed er Audit Details Ġ= ĊĠĠĠĠĠĠĠ Ġthrow ĠConversion Exception ("${ am Node . rm Type } Ġcan Ġnot Ġbe Ġcreated Ġfrom Ġsimple Ġvalue ", Ġweb Template Path . toString ()) ĊĊĠĠĠ Ġoverride Ġfun Ġcreate Instance ( attributes : ĠSet < Attribute Dto >): ĠFeed er Audit Details Ġ= ĠFeed er Audit Details () ĊĊĠĠĠ Ġoverride Ġfun Ġhandle Field ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġconversion Context : ĠConversion Context , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġam Node : ĠAm Node , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġattribute : ĠAttribute Dto , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrm Object : ĠFeed er Audit Details , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġjson Node : ĠJsonNode , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġweb Template Path : ĠWeb Template Path ): ĠBoolean Ġ= ĊĠĠĠĠĠĠĠ Ġwhen Ġ( attribute . attribute ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" system _ id " Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrm Object . system Id Ġ= Ġjson Node . as Text () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" version _ id " Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrm Object . version Id Ġ= Ġjson Node . as Text () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" time " Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrm Object . time Ġ= ĠD v DateTime Factory . create ( conversion Context , Ġam Node , Ġjson Node , ĠWeb Template Path ( attribute . original Attribute , Ġweb Template Path )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" location " Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrm Object . location Ġ= Ġjson Node . map NotNull Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠParty Ident ified Factory . create ( conversion Context , Ġam Node , Ġit , Ġweb Template Path Ġ+ Ġattribute . original Attribute ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}. first OrNull () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" provider " Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrm Object . provider Ġ= Ġjson Node . map NotNull Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠParty Ident ified Factory . create ( conversion Context , Ġam Node , Ġit , Ġweb Template Path Ġ+ Ġattribute . original Attribute ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}. first OrNull () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" provider _ related " Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrm Object . provider Ġ= Ġjson Node . map NotNull Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠParty Related Factory . create ( conversion Context , Ġam Node , Ġit , Ġweb Template Path Ġ+ Ġattribute . original Attribute ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}. first OrNull () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" subject " Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrm Object . subject Ġ= Ġjson Node . map NotNull Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠParty Ident ified Factory . create ( conversion Context , Ġam Node , Ġit , Ġweb Template Path Ġ+ Ġattribute . original Attribute ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}. first OrNull () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" subject _ related " Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrm Object . subject Ġ= Ġjson Node . map NotNull Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠParty Related Factory . create ( conversion Context , Ġam Node , Ġit , Ġweb Template Path Ġ+ Ġattribute . original Attribute ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}. first OrNull () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" subject _ self " Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrm Object . subject Ġ= Ġjson Node . map NotNull Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠParty Ident ified Factory . create ( conversion Context , Ġam Node , Ġit , Ġweb Template Path Ġ+ Ġattribute . original Attribute ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}. first OrNull () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġfalse ĊĠĠĠĠĠĠĠ Ġ} Ċ } Ċ