package Ġstreams . kafka . connect . sink Ċ Ċ import Ġorg . apache . kafka . connect . data .* Ċ import Ġorg . junit . Test Ċ import Ġorg . neo 4 j . driver . Value Ċ import Ġorg . neo 4 j . driver . Values Ċ import Ġorg . neo 4 j . driver . internal . value .* Ċ import Ġstreams . kafka . connect . sink . converters . Neo 4 j Value Converter Ċ import Ġjava . math . BigDecimal Ċ import Ġjava . time . Instant Ċ import Ġjava . time . Zone Id Ċ import Ġjava . util . Date Ċ import Ġkotlin . test . assertEquals Ċ import Ġkotlin . test . assertTrue Ċ Ċ class ĠNeo 4 j Value Converter Test Ġ{ ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` should Ġconvert Ġtree Ġstruct Ġinto Ġmap Ġof Ġne o 4 j Ġvalues `() Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġgiven ĊĠĠĠĠĠĠĠ Ġ// Ġthis Ġtest Ġgenerates Ġa Ġsimple Ġtree Ġstructure Ġlike Ġthis ĊĠĠĠĠĠĠĠ Ġ// ĠĠĠĠĠĠĠĠĠĠ Ġbody ĊĠĠĠĠĠĠĠ Ġ// ĠĠĠĠĠĠĠĠĠ Ġ/ ĠĠĠ Ġ\ ĊĠĠĠĠĠĠĠ Ġ// ĠĠĠĠĠĠĠĠ Ġp ĠĠĠĠ Ġul ĊĠĠĠĠĠĠĠ Ġ// ĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĊĠĠĠĠĠĠĠ Ġ// ĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġli ĊĠĠĠĠĠĠĠ Ġval Ġbody Ġ= Ġget Tree Struct () ĊĊĠĠĠĠĠĠĠ Ġ// Ġwhen ĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= ĠNeo 4 j Value Converter (). convert ( body ) Ġas ĠMap < *, Ġ*> ĊĊĠĠĠĠĠĠĠ Ġ// Ġthen ĊĠĠĠĠĠĠĠ Ġval Ġexpected Ġ= Ġget Expected Map () ĊĠĠĠĠĠĠĠ ĠassertEquals ( expected , Ġresult ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` should Ġconvert Ġtree Ġsimple Ġmap Ġinto Ġmap Ġof Ġne o 4 j Ġvalues `() Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġgiven ĊĠĠĠĠĠĠĠ Ġ// Ġthis Ġtest Ġgenerates Ġa Ġsimple Ġtree Ġstructure Ġlike Ġthis ĊĠĠĠĠĠĠĠ Ġ// ĠĠĠĠĠĠĠĠĠĠ Ġbody ĊĠĠĠĠĠĠĠ Ġ// ĠĠĠĠĠĠĠĠĠ Ġ/ ĠĠĠ Ġ\ ĊĠĠĠĠĠĠĠ Ġ// ĠĠĠĠĠĠĠĠ Ġp ĠĠĠĠ Ġul ĊĠĠĠĠĠĠĠ Ġ// ĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĊĠĠĠĠĠĠĠ Ġ// ĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġli ĊĠĠĠĠĠĠĠ Ġval Ġbody Ġ= Ġget TreeMap () ĊĊĠĠĠĠĠĠĠ Ġ// Ġwhen ĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= ĠNeo 4 j Value Converter (). convert ( body ) Ġas ĠMap < *, Ġ*> ĊĊĠĠĠĠĠĠĠ Ġ// Ġthen ĊĠĠĠĠĠĠĠ Ġval Ġexpected Ġ= Ġget Expected Map () ĊĠĠĠĠĠĠĠ ĠassertEquals ( expected , Ġresult ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` should Ġconvert Ġtree Ġwith Ġmix es Ġtypes Ġinto Ġmap Ġof Ġne o 4 j Ġvalues `() Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġut c Ġ= ĠZone Id . of (" UTC ") ĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= ĠNeo 4 j Value Converter (). convert ( Struct ( TEST _ SCHEMA )) Ġas ĠMap < String , ĠValue ?> ĊĊĠĠĠĠĠĠĠ Ġval Ġtarget Ġ= Ġresult [" target "] ĊĠĠĠĠĠĠĠ ĠassertTrue { Ġtarget Ġis ĠFloat Value Ġ} ĊĠĠĠĠĠĠĠ ĠassertEquals ( 1 2 3 . 4 , Ġtarget ?. as Double ()) ĊĊĠĠĠĠĠĠĠ Ġval Ġlarge Decimal Ġ= Ġresult [" large Decimal "] ĊĠĠĠĠĠĠĠ ĠassertTrue { Ġlarge Decimal Ġis ĠString Value Ġ} ĊĠĠĠĠĠĠĠ ĠassertEquals ( BigDecimal . valueOf ( Double . MAX _ VALUE ). pow ( 2 ). to Plain String (), Ġlarge Decimal ?. asString ()) ĊĊĠĠĠĠĠĠĠ Ġval ĠbyteArray Ġ= Ġresult [" byteArray "] ĊĠĠĠĠĠĠĠ ĠassertTrue { ĠbyteArray Ġis ĠBytes Value Ġ} ĊĠĠĠĠĠĠĠ ĠassertEquals (" Foo ". toByteArray (). map Ġ{ Ġit Ġ}, ĠbyteArray ?. as ByteArray ()?. map Ġ{ Ġit Ġ}) ĊĊĠĠĠĠĠĠĠ Ġval Ġint 6 4 Ġ= Ġresult [" int 6 4 "] ĊĠĠĠĠĠĠĠ ĠassertTrue { Ġint 6 4 Ġis ĠInteger Value Ġ} ĊĠĠĠĠĠĠĠ ĠassertEquals ( Long . MAX _ VALUE , Ġint 6 4 ?. as Long ()) ĊĊĠĠĠĠĠĠĠ Ġval Ġint 6 4 Timestamp Ġ= Ġresult [" int 6 4 Timestamp "] ĊĠĠĠĠĠĠĠ ĠassertTrue { Ġint 6 4 Timestamp Ġis ĠLocalDateTime Value Ġ} ĊĠĠĠĠĠĠĠ ĠassertEquals ( Date . from ( Instant . of Epoch Milli ( 7 8 9 )). to Instant (). at Zone ( utc ). to LocalDateTime (), Ġint 6 4 Timestamp ?. as LocalDateTime ()) ĊĊĠĠĠĠĠĠĠ Ġval Ġint 3 2 Ġ= Ġresult [" int 3 2 "] ĊĠĠĠĠĠĠĠ ĠassertTrue { Ġint 3 2 Ġis ĠInteger Value Ġ} ĊĠĠĠĠĠĠĠ ĠassertEquals ( 1 2 3 , Ġint 3 2 ?. as Int ()) ĊĊĠĠĠĠĠĠĠ Ġval Ġint 3 2 Date Ġ= Ġresult [" int 3 2 Date "] ĊĠĠĠĠĠĠĠ ĠassertTrue { Ġint 3 2 Date Ġis ĠDate Value Ġ} ĊĠĠĠĠĠĠĠ ĠassertEquals ( Date . from ( Instant . of Epoch Milli ( 4 5 6 )). to Instant (). at Zone ( utc ). to LocalDate (), Ġint 3 2 Date ?. as LocalDate ()) ĊĊĠĠĠĠĠĠĠ Ġval Ġint 3 2 Time Ġ= Ġresult [" int 3 2 Time "] ĊĠĠĠĠĠĠĠ ĠassertTrue { Ġint 3 2 Time Ġis ĠLocal Time Value Ġ} ĊĠĠĠĠĠĠĠ ĠassertEquals ( Date . from ( Instant . of Epoch Milli ( 1 2 3 )). to Instant (). at Zone ( utc ). to Local Time (), Ġint 3 2 Time ?. as Local Time ()) ĊĊĠĠĠĠĠĠĠ Ġval Ġnull Field Ġ= Ġresult [" null Field "] ĊĠĠĠĠĠĠĠ ĠassertTrue { Ġnull Field Ġis ĠNull Value Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġnull Field Bytes Ġ= Ġresult [" null Field Bytes "] ĊĠĠĠĠĠĠĠ ĠassertTrue { Ġnull Field Bytes Ġis ĠNull Value Ġ} ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` should Ġconvert ĠBigDecimal Ġinto ĠString Ġne o 4 j Ġvalue Ġif Ġis Ġa Ġpositive Ġless Ġthan ĠDouble ĠMIN _ VALUE `() Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġnumber Ġ= ĠBigDecimal . valueOf ( Double . MIN _ VALUE ). pow ( 2 ) ĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= ĠNeo 4 j Value Converter (). convert ( getItem Element ( number )) ĊĠĠĠĠĠĠĠ Ġval Ġitem Ġ= Ġresult [" item "] ĊĊĠĠĠĠĠĠĠ ĠassertTrue { Ġitem Ġis ĠString Value Ġ} ĊĠĠĠĠĠĠĠ ĠassertEquals ( number . to Plain String (), Ġitem ?. asString ()) ĊĊĠĠĠĠĠĠĠ Ġval Ġresult 2 Ġ= ĠNeo 4 j Value Converter (). convert ( getItem Element ( null )) ĊĠĠĠĠĠĠĠ Ġval Ġitem 2 Ġ= Ġresult 2 [" item "] ĊĊĠĠĠĠĠĠĠ ĠassertTrue { Ġitem 2 Ġis ĠNull Value Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` should Ġconvert ĠBigDecimal Ġinto ĠString Ġne o 4 j Ġvalue Ġif Ġis Ġa Ġnegative Ġless Ġthan ĠDouble ĠMAX _ VALUE `() Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġnumber Ġ= Ġ- Ġ( BigDecimal . valueOf ( Double . MAX _ VALUE )). multiply ( BigDecimal . valueOf ( 2 )) ĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= ĠNeo 4 j Value Converter (). convert ( getItem Element ( number )) ĊĠĠĠĠĠĠĠ Ġval Ġitem Ġ= Ġresult [" item "] ĊĊĠĠĠĠĠĠĠ ĠassertTrue { Ġitem Ġis ĠString Value Ġ} ĊĠĠĠĠĠĠĠ ĠassertEquals ( number . to Plain String (), Ġitem ?. asString ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` should Ġconvert ĠBigDecimal Ġinto ĠString Ġne o 4 j Ġvalue Ġif Ġis Ġgreater Ġthan ĠDouble ĠMAX _ VALUE `() Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġnumber Ġ= ĠBigDecimal . valueOf ( Double . MAX _ VALUE ). pow ( 2 ) ĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= ĠNeo 4 j Value Converter (). convert ( getItem Element ( number )) ĊĠĠĠĠĠĠĠ Ġval Ġitem Ġ= Ġresult [" item "] ĊĊĠĠĠĠĠĠĠ ĠassertTrue { Ġitem Ġis ĠString Value Ġ} ĊĠĠĠĠĠĠĠ ĠassertEquals ( number . to Plain String (), Ġitem ?. asString ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` should Ġconvert ĠBigDecimal Ġinto ĠDouble Ġne o 4 j Ġvalue Ġif Ġis Ġless Ġthan ĠDouble ĠMAX _ VALUE Ġand Ġgreater Ġthan ĠDouble ĠMIN _ VALUE `() Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġnumber Ġ= Ġ 3 4 5 6 . 7 8 ĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġ ĠNeo 4 j Value Converter (). convert ( getItem Element ( BigDecimal . valueOf ( number ))) ĊĠĠĠĠĠĠĠ Ġval Ġitem Ġ= Ġresult [" item "] ĊĊĠĠĠĠĠĠĠ ĠassertTrue { Ġitem Ġis ĠFloat Value Ġ} ĊĠĠĠĠĠĠĠ ĠassertEquals ( number , Ġitem ?. as Double ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` should Ġconvert ĠBigDecimal Ġinto ĠDouble Ġne o 4 j Ġvalue Ġif Ġis Ġequal Ġto ĠDouble ĠMAX _ VALUE `() Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġnumber Ġ= ĠDouble . MAX _ VALUE ĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= ĠNeo 4 j Value Converter (). convert ( getItem Element ( BigDecimal . valueOf ( number ))) ĊĠĠĠĠĠĠĠ Ġval Ġitem Ġ= Ġresult [" item "] ĊĊĠĠĠĠĠĠĠ ĠassertTrue { Ġitem Ġis ĠFloat Value Ġ} ĊĠĠĠĠĠĠĠ ĠassertEquals ( number , Ġitem ?. as Double ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` should Ġconvert Ġproperly Ġmixed Ġitems `() Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġdouble Ġ= ĠDouble . MAX _ VALUE ĊĠĠĠĠĠĠĠ Ġval Ġlong Ġ= ĠLong . MAX _ VALUE ĊĠĠĠĠĠĠĠ Ġval Ġbig Double Ġ= Ġ ĠBigDecimal . valueOf ( Double . MAX _ VALUE ). pow ( 2 ) ĊĠĠĠĠĠĠĠ Ġval Ġstring Ġ= Ġ Ġ" Foo Bar " ĊĠĠĠĠĠĠĠ Ġval Ġdate Ġ= ĠDate () ĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= ĠNeo 4 j Value Converter (). convert ( map Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" double " Ġto Ġdouble , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" long " Ġto Ġlong , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" big Double " Ġto Ġbig Double , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" string " Ġto Ġstring , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" date " Ġto Ġdate )) ĊĊĠĠĠĠĠĠĠ ĠassertEquals ( double , Ġresult [" double "] ?. as Double ()) ĊĠĠĠĠĠĠĠ ĠassertEquals ( long , Ġresult [" long "] ?. as Long ()) ĊĠĠĠĠĠĠĠ ĠassertEquals ( big Double . to Plain String (), Ġresult [" big Double "] ?. asString ()) ĊĠĠĠĠĠĠĠ ĠassertEquals ( string , Ġresult [" string "] ?. asString ()) ĊĠĠĠĠĠĠĠ ĠassertEquals ( date . to Instant (). at Zone ( Zone Id . of (" UTC ")). to LocalDateTime (), Ġresult [" date "] ?. as LocalDateTime ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` should Ġbe Ġable Ġto Ġprocess Ġa Ġnested ĠAV RO Ġstructure `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtrain Schema Ġ= ĠSchema Builder . struct () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. field (" international Train Number ", ĠSchema . STRING _ SCHEMA ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. field (" train Date ", ĠSchema . STRING _ SCHEMA ). build () ĊĠĠĠĠĠĠĠ Ġval Ġmy Schema Ġ= ĠSchema Builder . struct () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. field (" train Id ", Ġtrain Schema ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. field (" core Id ", ĠSchema . STRING _ SCHEMA ). build () ĊĊĠĠĠĠĠĠĠ Ġval Ġtrain Id Struct Ġ= ĠStruct ( train Schema ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. put (" international Train Number ", Ġ" 4 6 2 6 1 ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. put (" train Date ", Ġ" 2 0 2 1 - 0 5 - 2 0 ") ĊĠĠĠĠĠĠĠ Ġval Ġroot Struct Ġ= ĠStruct ( my Schema ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. put (" train Id ", Ġtrain Id Struct ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. put (" core Id ", Ġ" 0 0 0 0 0 0 0 4 6 2 6 1 ") ĊĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= ĠNeo 4 j Value Converter (). convert ( root Struct ) Ġas ĠMap < *, Ġ*> ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠLI _ SCHEMA Ġ= ĠSchema Builder . struct (). name (" org . neo 4 j . example . html . LI ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. field (" value ", ĠSchema . OPTIONAL _ STRING _ SCHEMA ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. field (" class ", ĠSchema Builder . array ( Schema . STRING _ SCHEMA ). optional ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠU L _ SCHEMA Ġ= ĠSchema Builder . struct (). name (" org . neo 4 j . example . html . UL ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. field (" value ", ĠSchema Builder . array ( LI _ SCHEMA )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠP _ SCHEMA Ġ= ĠSchema Builder . struct (). name (" org . neo 4 j . example . html . P ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. field (" value ", ĠSchema . OPTIONAL _ STRING _ SCHEMA ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠB ODY _ SCHEMA Ġ= ĠSchema Builder . struct (). name (" org . neo 4 j . example . html . BODY ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. field (" ul ", ĠSchema Builder . array ( UL _ SCHEMA ). optional ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. field (" p ", ĠSchema Builder . array ( P _ SCHEMA ). optional ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠTEST _ SCHEMA Ġ= ĠSchema Builder . struct (). name (" test . schema ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. field (" target ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠConnect Schema ( Schema . Type . BYTES , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfalse , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠBigDecimal . valueOf ( 1 2 3 . 4 ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDecimal . LOG ICAL _ NAME , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnull , Ġnull )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. field (" large Decimal ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠConnect Schema ( Schema . Type . BYTES , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfalse , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠBigDecimal . valueOf ( Double . MAX _ VALUE ). pow ( 2 ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDecimal . LOG ICAL _ NAME , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnull , Ġnull )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. field (" byteArray ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠConnect Schema ( Schema . Type . BYTES , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfalse , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Foo ". toByteArray (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" name . byteArray ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnull , Ġnull )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. field (" int 6 4 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠConnect Schema ( Schema . Type . INT 6 4 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfalse , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLong . MAX _ VALUE , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" name . int 6 4 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnull , Ġnull )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. field (" int 6 4 Timestamp ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠConnect Schema ( Schema . Type . INT 6 4 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfalse , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDate . from ( Instant . of Epoch Milli ( 7 8 9 )), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTimestamp . LOG ICAL _ NAME , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnull , Ġnull )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. field (" int 3 2 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠConnect Schema ( Schema . Type . INT 3 2 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfalse , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 1 2 3 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" name . int 3 2 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnull , Ġnull )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. field (" int 3 2 Date ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠConnect Schema ( Schema . Type . INT 3 2 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfalse , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDate . from ( Instant . of Epoch Milli ( 4 5 6 )), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġorg . apache . kafka . connect . data . Date . LOG ICAL _ NAME , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnull , Ġnull )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. field (" int 3 2 Time ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠConnect Schema ( Schema . Type . INT 3 2 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfalse , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDate . from ( Instant . of Epoch Milli ( 1 2 3 )), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTime . LOG ICAL _ NAME , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnull , Ġnull )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. field (" null Field ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠConnect Schema ( Schema . Type . INT 6 4 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfalse , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTime . LOG ICAL _ NAME , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnull , Ġnull )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. field (" null Field Bytes ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠConnect Schema ( Schema . Type . BYTES , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfalse , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTime . LOG ICAL _ NAME , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnull , Ġnull )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĊĠĠĠĠĠĠĠ Ġfun Ġget Tree Struct (): ĠStruct ? Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfirst UL Ġ= ĠStruct ( UL _ SCHEMA ). put (" value ", ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠStruct ( LI _ SCHEMA ). put (" value ", Ġ" First ĠU L Ġ- ĠFirst ĠElement "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠStruct ( LI _ SCHEMA ). put (" value ", Ġ" First ĠU L Ġ- ĠSecond ĠElement ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. put (" class ", ĠlistOf (" Class A ", Ġ" Class B ")) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ)) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsecond UL Ġ= ĠStruct ( UL _ SCHEMA ). put (" value ", ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠStruct ( LI _ SCHEMA ). put (" value ", Ġ" Second ĠU L Ġ- ĠFirst ĠElement "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠStruct ( LI _ SCHEMA ). put (" value ", Ġ" Second ĠU L Ġ- ĠSecond ĠElement ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ)) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġul List Ġ= ĠlistOf ( first UL , Ġsecond UL ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġp List Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠStruct ( P _ SCHEMA ). put (" value ", Ġ" First ĠParagraph "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠStruct ( P _ SCHEMA ). put (" value ", Ġ" Second ĠParagraph ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠStruct ( BODY _ SCHEMA ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. put (" ul ", Ġul List ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. put (" p ", Ġp List ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġget Expected Map (): ĠMap < String , ĠValue > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfirst UL Map Ġ= Ġmap Of (" value " Ġto ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmap Of (" value " Ġto ĠValues . value (" First ĠU L Ġ- ĠFirst ĠElement "), Ġ" class " Ġto ĠValues . NULL ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmap Of (" value " Ġto ĠValues . value (" First ĠU L Ġ- ĠSecond ĠElement "), Ġ" class " Ġto ĠValues . value ( listOf (" Class A ", Ġ" Class B ")) ))) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsecond UL Map Ġ= Ġmap Of (" value " Ġto ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmap Of (" value " Ġto ĠValues . value (" Second ĠU L Ġ- ĠFirst ĠElement "), Ġ" class " Ġto ĠValues . NULL ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmap Of (" value " Ġto ĠValues . value (" Second ĠU L Ġ- ĠSecond ĠElement "), Ġ" class " Ġto ĠValues . NULL ))) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġul List Map Ġ= ĠValues . value ( listOf ( first UL Map , Ġsecond UL Map )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġp List Map Ġ= ĠValues . value ( listOf ( map Of (" value " Ġto ĠValues . value (" First ĠParagraph ")), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmap Of (" value " Ġto ĠValues . value (" Second ĠParagraph ")) )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġmap Of (" ul " Ġto Ġul List Map , Ġ" p " Ġto Ġp List Map ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġget TreeMap (): ĠMap < String , ĠAny ?> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfirst UL Map Ġ= Ġmap Of (" value " Ġto ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmap Of (" value " Ġto Ġ" First ĠU L Ġ- ĠFirst ĠElement ", Ġ" class " Ġto Ġnull ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmap Of (" value " Ġto Ġ" First ĠU L Ġ- ĠSecond ĠElement ", Ġ" class " Ġto ĠlistOf (" Class A ", Ġ" Class B ")) )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsecond UL Map Ġ= Ġmap Of (" value " Ġto ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmap Of (" value " Ġto Ġ" Second ĠU L Ġ- ĠFirst ĠElement ", Ġ" class " Ġto Ġnull ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmap Of (" value " Ġto Ġ" Second ĠU L Ġ- ĠSecond ĠElement ", Ġ" class " Ġto Ġnull ))) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġul List Map Ġ= ĠlistOf ( first UL Map , Ġsecond UL Map ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġp List Map Ġ= ĠlistOf ( map Of (" value " Ġto Ġ" First ĠParagraph "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmap Of (" value " Ġto Ġ" Second ĠParagraph ")) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġmap Of (" ul " Ġto Ġul List Map , Ġ" p " Ġto Ġp List Map ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun ĠgetItem Element ( number : ĠAny ?): ĠMap < String , ĠAny ?> Ġ= Ġmap Of (" item " Ġto Ġnumber ) ĊĠĠĠ Ġ} Ċ Ċ } ĊĊ