package Ġcom . alibaba . g ai ax . template . factory Ċ Ċ import Ġcom . alibaba . fastjson . JSONObject Ċ import Ġcom . alibaba . g ai ax . GX Register Center Ċ import Ġcom . alibaba . g ai ax . template . GX Data Binding Ċ import Ġcom . alibaba . g ai ax . template . GX I Expression Ċ import Ġcom . alibaba . g ai ax . template . GX Template Key Ċ Ċ object ĠG X Data Binding Factory Ġ{ ĊĊĠĠĠ Ġfun Ġcreate ( data : ĠAny ): ĠG X Data Binding ? Ġ{ ĊĠĠĠĠĠĠĠ ĠG X Register Center . instance . extension Data Binding ?. create ( data )?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġit ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġcreate Default Data Binding ( data ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġcreate Default Data Binding ( data : ĠAny ): ĠG X Data Binding ? Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( data Ġ! is ĠJSONObject ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġvalue Ġ= Ġdata . getString ( GX Template Key . G AI AX _ VALUE ) ĊĠĠĠĠĠĠĠ Ġval Ġplaceholder Ġ= Ġdata . getString ( GX Template Key . G AI AX _ PLACE HOLDER ) ĊĠĠĠĠĠĠĠ Ġval Ġaccessibility Desc Ġ= Ġdata . getString ( GX Template Key . G AI AX _ ACC ES SI B ILITY _ DESC ) ĊĠĠĠĠĠĠĠ Ġval Ġaccessibility Enable Ġ= Ġdata . getString ( GX Template Key . G AI AX _ ACC ES SI B ILITY _ ENABLE ) ĊĠĠĠĠĠĠĠ Ġval Ġextend Ġ= Ġdata . getJSONObject ( GX Template Key . G AI AX _ EXT END ) ĊĊĠĠĠĠĠĠĠ Ġval Ġvalue Exp Ġ= ĠG X Expression Factory . create ( value ) ĊĠĠĠĠĠĠĠ Ġval Ġplaceholder Exp Ġ= ĠG X Expression Factory . create ( placeholder ) ĊĠĠĠĠĠĠĠ Ġval Ġaccessibility Desc Exp Ġ= ĠG X Expression Factory . create ( accessibility Desc ) ĊĠĠĠĠĠĠĠ Ġval Ġaccessibility Enable Exp Ġ= ĠG X Expression Factory . create ( accessibility Enable ) ĊĠĠĠĠĠĠĠ Ġval Ġextend Exp : ĠMutable Map < String , ĠG XI Expression >? Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( extend Ġ!= Ġnull Ġ&& Ġextend . isNotEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresult : ĠMutable Map < String , ĠG XI Expression > Ġ= Ġmutable Map Of () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( entry Ġin Ġextend ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( entry . key Ġ!= Ġnull Ġ&& Ġentry . value Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠG X Expression Factory . create ( entry . value )?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult [ entry . key ] Ġ= Ġit ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( value Exp Ġ!= Ġnull Ġ|| Ġplaceholder Exp Ġ!= Ġnull Ġ|| Ġaccessibility Desc Exp Ġ!= Ġnull Ġ|| Ġaccessibility Enable Exp Ġ!= Ġnull Ġ|| Ġextend Exp Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠG X Data Binding ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvalue Ġ= Ġvalue Exp , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġplaceholder Ġ= Ġplaceholder Exp , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġaccessibility Desc Ġ= Ġaccessibility Desc Exp , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġaccessibility Enable Ġ= Ġaccessibility Enable Exp , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġextend Ġ= Ġextend Exp ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnull ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }