package Ġdev . v ish na . mj ol n ir . codegen . lang Ċ Ċ import Ġdev . v ish na . mj ol n ir . codegen .* Ċ import Ġjava . lang . IllegalStateException Ċ Ċ import Ġdev . v ish na . string code . smart C ame lize Ċ Ċ class ĠDart Resolver Ġ: ĠLang Resolver () Ġ{ ĊĠĠĠ Ġoverride Ġfun ĠclassName ( model : ĠModel ): ĠString Ġ= Ġmodel . name . smart C ame lize () ĊĊĠĠĠ Ġoverride Ġfun Ġmember Type ( field : ĠField ): ĠString Ġ{ ĊĊĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ( field ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠString Field Ġ-> Ġ" String " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠInt Field Ġ-> Ġ" int " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠDate Field Ġ-> Ġ" DateTime " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠFloat Field Ġ-> Ġ" double " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠLong Field Ġ-> Ġ" int " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠBoolean Field Ġ-> Ġ" bool " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠArray Field Ġ-> Ġ" List < ${ member Type ( field . field )} >" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠCustom Field Ġ-> Ġfield . custom Type . smart C ame lize () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġdynamic Type ( field : ĠField ): ĠString Ġ{ ĊĊĠĠĠĠĠĠĠ Ġreturn Ġwith ( field . info ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( field ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠCustom Field Ġ-> Ġ""" ${ field . custom Type . smart C ame lize ()} """ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠDate Field Ġ-> Ġ""" DateTime """ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠArray Field Ġ-> Ġ""" List < ${ member Type ( field . field )}> """ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ""" dynamic """ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġctor 1 ( field : ĠField ): ĠString Ġ{ ĊĊĠĠĠĠĠĠĠ Ġif Ġ(! field . info . serial izable ) Ġ{ Ġ// Ġmeans Ġit Ġisn 't Ġpart Ġof Ġjson ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġ" null " ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġwith ( field . info ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( field ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠCustom Field Ġ-> Ġ""" ${ field . custom Type . smart C ame lize ()}. fromJson ( json [' $ name Un escaped ']) """ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠDate Field Ġ-> Ġ""" _ safe Parse ( json [' $ name Un escaped ']) """ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠArray Field Ġ-> Ġ""" json [' $ name Un escaped '] ?. map (( it ) Ġ=> Ġ${ array Ctor ( field . field )}) ?. toList () ${ array Cast ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfield . field ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ)} """ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠFloat Field Ġ-> Ġ" json [' $ name Un escaped '] ?. toDouble ()" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠString Field Ġ-> Ġ" json [' $ name Un escaped '] ?. toString ()" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ""" json [' $ name Un escaped '] """ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġarray Ctor ( inner Field : ĠField ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ( inner Field ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠString Field Ġ-> Ġ" it ?. toString ()" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠFloat Field Ġ-> Ġ" it ?. toDouble ()" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠLong Field , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠBoolean Field , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠDate Field , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠInt Field Ġ-> Ġ" it " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠCustom Field Ġ-> Ġ""" ${ inner Field . custom Type . smart C ame lize ()} ?. fromJson ( it ) """ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠArray Field Ġ-> Ġthrow ĠIllegalStateException (" nested Ġarrays Ġunsupported Ġbecause Ġdeveloper Ġis Ġlazy .") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġarray Cast ( inner Field : ĠField ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ( inner Field ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠFloat Field , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠLong Field , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠBoolean Field , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠString Field , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠDate Field , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠInt Field Ġ-> Ġ""" ?. cast < ${ member Type ( inner Field )} >() """ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠCustom Field Ġ-> Ġ""" ?. cast < ${ inner Field . custom Type . smart C ame lize () }> () """ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠArray Field Ġ-> Ġthrow ĠIllegalStateException (" nested Ġarrays Ġunsupported Ġbecause Ġdeveloper Ġis Ġlazy .") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġarray Map ( inner Field : ĠField ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ( inner Field ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠFloat Field , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠLong Field , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠBoolean Field , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠString Field , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠDate Field , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠInt Field Ġ-> Ġ" it " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠCustom Field Ġ-> Ġ""" it ?. copy With () """ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠArray Field Ġ-> Ġthrow ĠIllegalStateException (" nested Ġarrays Ġunsupported Ġbecause Ġdeveloper Ġis Ġlazy .") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġcopy With ( field : ĠField ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġwith ( field . info ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( field ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠFloat Field , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠLong Field , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠBoolean Field , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠString Field , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠDate Field , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠInt Field Ġ-> Ġ""" ${ field . info . name } Ġ?? Ġthis .${ field . info . name } """ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠCustom Field Ġ-> Ġ""" ${ field . info . name } Ġ?? Ġthis .${ field . info . name } ?. copy With () """ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠArray Field Ġ-> Ġ""" ${ field . info . name } Ġ?? Ġthis .${ field . info . name } ?. map (( it ) Ġ=> Ġ${ array Map ( inner Field Ġ= Ġfield . field )} Ġ) ?. toList () """ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġdt or ( field : ĠField ): ĠString Ġ{ ĊĊĠĠĠĠĠĠĠ Ġif Ġ(! field . info . serial izable ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġ" null " ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġwith ( field . info ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( field ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠFloat Field , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠLong Field , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠBoolean Field , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠString Field , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠInt Field Ġ-> Ġname ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠDate Field Ġ-> Ġ""" $ name ?. to Iso 8 6 0 1 String () """ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠCustom Field Ġ-> Ġ""" $ name ?. toJson () """ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠArray Field Ġ-> Ġ""" $ name ?. map (( it ) Ġ=> Ġ${ array Dtor ( field . field )}) ?. toList () """ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġarray Dtor ( field : ĠField ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ( field ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠFloat Field , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠLong Field , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠBoolean Field , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠString Field , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠInt Field Ġ-> Ġ" it " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠDate Field Ġ-> Ġ""" it ?. to Iso 8 6 0 1 String () """ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠCustom Field Ġ-> Ġ""" it ?. toJson () """ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠArray Field Ġ-> Ġthrow ĠIllegalStateException (" nested Ġarrays Ġunsupported Ġbecause Ġdeveloper Ġis Ġlazy .") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġobject Id ( model : ĠModel ): ĠString Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġid Field Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmodel . fields . find Ġ{ Ġ( it Ġis ĠString Field Ġ&& Ġit . info . name Ġ== Ġ" id ") Ġ|| Ġ( it Ġis ĠString Field Ġ&& Ġit . id ) Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( id Field Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġ""" "${ className ( model )} # ${ '$ ' }{ ${ id Field . info . name }} "; """ ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġ" null ; Ġ// Ġid Ġfield Ġnot Ġrecognized Ġby Ġgenerator " ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġval Ġspecial Names : ĠList < String > ĊĠĠĠĠĠĠĠ Ġget () Ġ= ĠlistOf (" new ", Ġ" do ", Ġ" with ", Ġ" other ", Ġ" class ") Ċ }