package Ġcom . y iq iz uo ye . library . page . api Ċ Ċ import Ġandroid . util . Log Ċ import Ġcom . y iq iz uo ye . library . page . annotation . Action Thread ĊĊ Ċ /** Ċ Ġ* ĠAuthor : Ġj iao Ċ Ġ* ĠDate : Ġ 2 0 2 1 / 3 / 1 5 Ċ Ġ* ĠDescription : Ċ Ġ* Ġ çĪ¶ ç±» å¸ĥå±Ģ Ċ Ġ*/ Ċ class ĠPage Parent ( ĊĠĠĠ Ġval ĠparentId : ĠInt , ĊĠĠĠ Ġval Ġindex : ĠInt Ċ ) Ċ Ċ /** Ċ Ġ* Ġæķ°æį® è½¬æį¢ åĻ¨ ç±» Ċ Ġ*/ Ċ data Ġclass ĠTransform Bean ( ĊĠĠĠ Ġval ĠclassName : ĠString , ĊĠĠĠ Ġval Ġfrom ClassName : ĠString , ĊĠĠĠ Ġval Ġto ClassName : ĠString Ċ ) Ċ Ċ /** Ċ Ġ* Ġ éĺŁåĪĹ æķ°æį® Ċ Ġ*/ Ċ class ĠPage Queue Data Ġ{ ĊĠĠĠ Ġconstructor () ĊĠĠĠ Ġconstructor ( id : ĠInt , Ġpriority : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġis Queue Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġthis . id Ġ= Ġid ĊĠĠĠĠĠĠĠ Ġthis . priority Ġ= Ġpriority ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġæĺ¯åĲ¦ ä¸º éĺŁåĪĹ æ¶Īæģ¯ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġvar Ġis Queue Ġ= Ġfalse ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ éĺŁåĪĹ id ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġvar Ġid : ĠInt Ġ= Ġ 1 ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ éĺŁåĪĹ ä¼ĺåħĪ çº§ Ġé»ĺè®¤ 1 0 0 ĊĠĠĠĠ Ġ* Ġ è¶Ĭ é«ĺ ä¼ĺåħĪ çº§ è¶Ĭ é«ĺ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġvar Ġpriority : ĠInt Ġ= Ġ 1 0 0 Ċ } Ċ Ċ /** Ċ Ġ* Ġ é¡µéĿ¢ æķ°æį® Ċ Ġ*/ Ċ class ĠPage Data ( rule Data : ĠPage Rule Data , Ġparent : ĠPage Parent ) Ġ{ ĊĠĠĠ Ġ// è·¯çĶ± key ĊĠĠĠ Ġval Ġkey : ĠString Ġ= Ġrule Data . key ĊĊĠĠĠ Ġ// å½ĵåīį çļĦ ç±»åŀĭ ï¼Į éĢļè¿ĩ type Factory Ġkey åĴĮ type ç¡®å®ļ ä¸Ģä¸ª page ĊĊĊĠĠĠ Ġ// æķ°æį® è½¬æį¢ åĻ¨ ï¼Į å°Ĩ åİŁå§ĭ æķ°æį® è½¬æį¢ ä¸º é¡µéĿ¢ éľĢè¦ģ çļĦæķ°æį® ĊĠĠĠ Ġprivate Ġval Ġtransform Beans Ġ= Ġrule Data . transform Beans ĊĊĠĠĠ Ġval Ġtypes : ĠInt Array Ġ= Ġrule Data . type ĊĊĠĠĠ Ġ// æĭ ¦ æĪª åĻ¨ ĊĠĠĠ Ġval Ġintercept ors : ĠArray < String > Ġ= Ġrule Data . intercept ors ĊĊĠĠĠ Ġ// é¡µéĿ¢ éľĢè¦ģ çļĦæķ°æį® æł¼å¼ı Ġ ĠçļĦ className ĊĠĠĠ Ġval Ġdata Format : ĠString Ġ= Ġrule Data . data Format Class ĊĊĠĠĠ Ġ// presenter çļĦ ç±»åŀĭ ĠçļĦ className ĊĠĠĠ Ġval Ġpresenter Class Ġ= Ġrule Data . presenter Class ĊĊĠĠĠ Ġ// page é¡µéĿ¢ ç±»åŀĭ ĠçļĦ className ĊĠĠĠ Ġval Ġpage Class Ġ= Ġrule Data . page Class ĊĊĠĠĠ Ġ// è¢« æ·»åĬł çļĦ çĪ¶ View Ġid ĊĠĠĠ Ġval ĠparentId Ġ= Ġparent . parentId ĊĊĠĠĠ Ġ// è¢« æ·»åĬł åĪ° çĪ¶ View ĠçļĦ index ĊĠĠĠ Ġval Ġindex Ġ= Ġparent . index ĊĊĠĠĠ Ġ// éĺŁåĪĹ ä¿¡æģ¯ ĊĠĠĠ Ġval Ġqueue Ġ= Ġrule Data . queue ĊĊĠĠĠ Ġ// æł¼å¼ı æł¼å¼ı ç±»çļĦ class åĲįåŃĹ ï¼Į key ä¸º from Ġvalue ä¸º to ĊĠĠĠ Ġval Ġtransforms Class Ġ= Ġmutable Map Of < String , ĠString >() ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġtransform Beans . forEach Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( it . to ClassName Ġ!= Ġdata Format ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠRuntimeException ("$ it Ġ Ġ è½¬æį¢ åĩº æĿ¥çļĦ æł¼å¼ı ä¸įæĺ¯ page éľĢè¦ģ çļĦ æł¼å¼ı Ġneed Format :$ data Format Ġ Ġ$ it ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtransforms Class [ it . from ClassName ] Ġ= Ġit . className ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠtoString (): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġ" Page Data ( key ='$ key ', Ġtransform Beans =${ transform Beans ?. content ToString ()}, Ġintercept ors =${ intercept ors . content ToString ()}, Ġdata Format ='$ data Format ', Ġpresenter Class ='$ presenter Class ', Ġpage Class ='$ page Class ', ĠparentId =$ parentId , Ġindex =$ index , Ġtransforms Class =$ transforms Class )" ĊĠĠĠ Ġ} ĊĊ Ċ } Ċ Ċ /** Ċ Ġ* Ġ äºĭä»¶ è·¯çĶ± æķ°æį® Ċ Ġ*/ Ċ class ĠAction Data ( rule Data : ĠAction Rule Data , Ġval Ġthread : ĠAction Thread . Thread ) Ġ{ ĊĠĠĠ Ġ// è·¯çĶ± key ĊĠĠĠ Ġval Ġkey : ĠString Ġ= Ġrule Data . key ĊĊĠĠĠ Ġ// å½ĵåīį çļĦ ç±»åŀĭ ï¼Į éĢļè¿ĩ type Factory Ġkey åĴĮ type ç¡®å®ļ ä¸Ģä¸ª page ĊĊĠĠĠ Ġ// æķ°æį® è½¬æį¢ åĻ¨ ï¼Į å°Ĩ åİŁå§ĭ æķ°æį® è½¬æį¢ ä¸º é¡µéĿ¢ éľĢè¦ģ çļĦæķ°æį® ĊĠĠĠ Ġprivate Ġval Ġtransform Beans Ġ= Ġrule Data . transform Beans ĊĊĠĠĠ Ġval Ġtypes : ĠInt Array Ġ= Ġrule Data . type ĊĊĠĠĠ Ġ// é¡µéĿ¢ éľĢè¦ģ çļĦæķ°æį® æł¼å¼ı Ġ ĠçļĦ className ĊĠĠĠ Ġval Ġdata Format : ĠString Ġ= Ġrule Data . data Format Class ĊĊĊĠĠĠ Ġ// page é¡µéĿ¢ ç±»åŀĭ ĠçļĦ className ĊĠĠĠ Ġval Ġaction Class Ġ= Ġrule Data . action Class ĊĊĊĠĠĠ Ġ// éĺŁåĪĹ ä¿¡æģ¯ ĊĠĠĠ Ġval Ġqueue Ġ= Ġrule Data . queue ĊĊĊĠĠĠ Ġ// æł¼å¼ı æł¼å¼ı ç±»çļĦ class åĲįåŃĹ ï¼Į key ä¸º from Ġvalue ä¸º to ĊĠĠĠ Ġval Ġtransforms Class Ġ= Ġmutable Map Of < String , ĠString >() ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġtransform Beans . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( it . to ClassName Ġ!= Ġdata Format ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . e (" Page Rule "," $ it Ġ Ġ è½¬æį¢ åĩº æĿ¥çļĦ æł¼å¼ı ä¸įæĺ¯ page éľĢè¦ģ çļĦ æł¼å¼ı Ġneed Format :$ data Format Ġ Ġ$ it ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} else { ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtransforms Class [ it . from ClassName ] Ġ= Ġit . className ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊ Ċ } ĊĊ