package Ġcom . eg m . st elli o . entity . model Ċ Ċ import Ġcom . eg m . st elli o . entity . config . Neo 4 j Uri Property Converter Ċ import Ġcom . eg m . st elli o . shared . model . Ng si Ld Relationship Instance Ċ import Ġcom . eg m . st elli o . shared . util . Json Ld Utils Ċ import Ġcom . eg m . st elli o . shared . util . Json Ld Utils . NG S ILD _ REL ATION SHIP _ HAS _ OBJECT Ċ import Ġcom . eg m . st elli o . shared . util . Json Ld Utils . getProperty Value From Map As DateTime Ċ import Ġcom . eg m . st elli o . shared . util . Json Ld Utils . getProperty Value From Map AsString Ċ import Ġcom . eg m . st elli o . shared . util . extract Short Type From Expanded Ċ import Ġcom . eg m . st elli o . shared . util . to Ng si Ld Format Ċ import Ġcom . eg m . st elli o . shared . util . to Uri Ċ import Ġcom . fasterxml . jackson . annotation . JsonIgnore Ċ import Ġcom . fasterxml . jackson . annotation . JsonProperty Ċ import Ġorg . springframework . data . annotation . Last ModifiedDate Ċ import Ġorg . springframework . data . neo 4 j . core . convert . Convert With Ċ import Ġorg . springframework . data . neo 4 j . core . schema . Dynamic Labels Ċ import Ġorg . springframework . data . neo 4 j . core . schema . Id Ċ import Ġorg . springframework . data . neo 4 j . core . schema . Node Ċ import Ġjava . net . URI Ċ import Ġjava . time . Instant Ċ import Ġjava . time . Zone Offset Ċ import Ġjava . time . Z onedDateTime Ċ import Ġjava . util . UUID Ċ Ċ @ Node Ċ data Ġclass ĠRelationship ( ĊĊĠĠĠ Ġ@ Id ĊĠĠĠ Ġ@ Convert With ( converter Ġ= ĠNeo 4 j Uri Property Converter :: class ) ĊĠĠĠ Ġval Ġid : ĠURI Ġ= Ġ" urn : ng si - ld : Relationship :${ UUID . randomUUID ()} ". to Uri (), ĊĊĠĠĠ Ġ// Ġkeep Ġa Ġcopy Ġof Ġthe Ġtarget Ġobject ĠURI Ġto Ġavoid Ġunnecessary ĠDB Ġcalls Ġto Ġretrieve Ġit ĊĠĠĠ Ġvar Ġobject Id : ĠURI , ĊĊĠĠĠ Ġvar Ġobserved At : ĠZ onedDateTime ? Ġ= Ġnull , ĊĊĠĠĠ Ġ@ JsonIgnore ĊĠĠĠ Ġval ĠcreatedAt : ĠZ onedDateTime Ġ= ĠInstant . now (). at Zone ( Zone Offset . UTC ), ĊĊĠĠĠ Ġ@ JsonIgnore ĊĠĠĠ Ġ@ Last ModifiedDate ĊĠĠĠ Ġval Ġmodified At : ĠZ onedDateTime ? Ġ= Ġnull , ĊĊĠĠĠ Ġ@ Convert With ( converter Ġ= ĠNeo 4 j Uri Property Converter :: class ) ĊĠĠĠ Ġval Ġdataset Id : ĠURI ? Ġ= Ġnull , ĊĊĠĠĠ Ġ@ org . springframework . data . neo 4 j . core . schema . Relationship ( type Ġ= Ġ" HAS _ VALUE ") ĊĠĠĠ Ġval Ġproperties : ĠMutable List < Property > Ġ= Ġmutable ListOf (), ĊĊĠĠĠ Ġ@ org . springframework . data . neo 4 j . core . schema . Relationship ( type Ġ= Ġ" HAS _ OBJECT ") ĊĠĠĠ Ġval Ġrelationships : ĠMutable List < Relationship > Ġ= Ġmutable ListOf (), ĊĊĠĠĠ Ġ@ Dynamic Labels ĊĠĠĠ Ġ@ JsonProperty ("@ type ") ĊĠĠĠ Ġval Ġtype : ĠList < String >, Ċ Ċ ) Ġ: ĠAttribute Ġ{ ĊĊĠĠĠ Ġconstructor ( type : ĠString , Ġng si Ld Relationship Instance : ĠNg si Ld Relationship Instance ) Ġ: ĊĠĠĠĠĠĠĠ Ġthis ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġobject Id Ġ= Ġng si Ld Relationship Instance . objectId , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtype Ġ= ĠlistOf ( type ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġobserved At Ġ= Ġng si Ld Relationship Instance . observed At , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdataset Id Ġ= Ġng si Ld Relationship Instance . dataset Id ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠ Ġoverride Ġfun Ġserialize Core Properties ( include Sys Attrs : ĠBoolean ): ĠMutable Map < String , ĠAny > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġresult Entity Ġ= Ġmutable Map Of < String , ĠAny >() ĊĠĠĠĠĠĠĠ Ġif Ġ( include Sys Attrs ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresult Entity [ Json Ld Utils . NG S ILD _ CREATED _ AT _ PROPERTY ] Ġ= Ġmap Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠJson Ld Utils . JSON LD _ TYPE Ġto ĠJson Ld Utils . NG S ILD _ DATE _ TIME _ TYPE , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠJson Ld Utils . JSON LD _ VALUE _ KW Ġto ĠcreatedAt . to Ng si Ld Format () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġmodified At ?. run Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult Entity [ Json Ld Utils . NG S ILD _ MODI FIED _ AT _ PROPERTY ] Ġ= Ġmap Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠJson Ld Utils . JSON LD _ TYPE Ġto ĠJson Ld Utils . NG S ILD _ DATE _ TIME _ TYPE , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠJson Ld Utils . JSON LD _ VALUE _ KW Ġto Ġthis . to Ng si Ld Format () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġobserved At ?. run Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresult Entity [ Json Ld Utils . NG S ILD _ OB SER VED _ AT _ PROPERTY ] Ġ= Ġmap Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠJson Ld Utils . JSON LD _ TYPE Ġto ĠJson Ld Utils . NG S ILD _ DATE _ TIME _ TYPE , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠJson Ld Utils . JSON LD _ VALUE _ KW Ġto Ġthis . to Ng si Ld Format () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġdataset Id ?. run Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresult Entity [ Json Ld Utils . NG S ILD _ DATASET _ ID _ PROPERTY ] Ġ= Ġmap Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠJson Ld Utils . JSON LD _ ID Ġto Ġthis . toString () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġresult Entity [ Json Ld Utils . NG S ILD _ REL ATION SHIP _ HAS _ OBJECT ] Ġ= Ġmap Of ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠJson Ld Utils . JSON LD _ ID Ġto Ġobject Id . toString () ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġresult Entity [ Json Ld Utils . JSON LD _ TYPE ] Ġ= ĠJson Ld Utils . NG S ILD _ REL ATION SHIP _ TYPE . uri ĊĊĠĠĠĠĠĠĠ Ġreturn Ġresult Entity ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġnode Properties (): ĠMutable Map < String , ĠAny > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġnode Properties Ġ= Ġmutable Map Of < String , ĠAny >( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" id " Ġto Ġid . toString (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" objectId " Ġto Ġobject Id . toString (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" createdAt " Ġto ĠcreatedAt ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġmodified At ?. run Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnode Properties [" modified At "] Ġ= Ġthis ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġobserved At ?. run Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnode Properties [" observed At "] Ġ= Ġthis ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġdataset Id ?. run Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnode Properties [" dataset Id "] Ġ= Ġthis . toString () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġnode Properties ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġid (): ĠURI Ġ= Ġid ĊĊĠĠĠ Ġprivate Ġfun Ġupdate Values ( objectId : ĠURI ?, Ġobserved At : ĠZ onedDateTime ?): ĠRelationship Ġ{ ĊĠĠĠĠĠĠĠ Ġobject Id ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . objectId Ġ= Ġit ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġobserved At ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . observed At Ġ= Ġobserved At ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġupdate Values ( update Fragment : ĠMap < String , ĠList < Any >> ): ĠRelationship Ġ= ĊĠĠĠĠĠĠĠ Ġupdate Values ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġget PropertyValue From Map AsString ( update Fragment , ĠN GS ILD _ REL ATION SHIP _ HAS _ OBJECT )?. to Uri (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġget PropertyValue From Map As DateTime ( update Fragment , ĠJson Ld Utils . NG S ILD _ OB SER VED _ AT _ PROPERTY ) ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠ Ġ// Ġne o 4 j Ġforces Ġus Ġto Ġhave Ġa Ġlist Ġbut Ġwe Ġknow Ġwe Ġhave Ġonly Ġone Ġdynamic Ġlabel ĊĠĠĠ Ġfun Ġrelationship Type (): ĠString Ġ= ĊĠĠĠĠĠĠĠ Ġtype . first () Ċ } Ċ Ċ fun ĠString . to Relationship TypeName (): ĠString Ġ= ĊĠĠĠ Ġthis . extract Short Type From Expanded () Ċ