package Ġcom . ve o sp s . game . name Ċ Ċ import Ġcom . github . m ichael bull . logging . Inline Logger Ċ import Ġcom . ve o sp s . game . cache . name . ui . User Interface Name Loader Ċ import Ġcom . ve o sp s . game . cache . name . vars . Var bit Name Loader Ċ import Ġcom . ve o sp s . game . cache . name . vars . Var p Name Loader Ċ import Ġcom . ve o sp s . game . util . Bean Scope Ċ import Ġorg . springframework . beans . factory . Factory Bean Ċ import Ġorg . springframework . context . annotation . Scope Ċ import Ġorg . springframework . stereotype . Component Ċ Ċ private Ġval Ġlogger Ġ= ĠInline Logger () Ċ Ċ class ĠNamed Type Loader List ( ĊĠĠĠ Ġprivate Ġval Ġload ers : ĠMutable List < Named Type Loader > Ġ= Ġmutable ListOf () Ċ ) Ġ: ĠList < Named Type Loader > Ġby Ġload ers Ġ{ ĊĊĠĠĠ Ġfun Ġregister ( loader : ĠNamed Type Loader ) Ġ{ ĊĠĠĠĠĠĠĠ Ġload ers . add ( loader ) ĊĠĠĠĠĠĠĠ Ġlogger . debug Ġ{ Ġ" Register Ġnamed Ġtype Ġloader Ġ( loader =$ loader )" Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoperator Ġfun ĠNamed Type Loader . unary Minus () Ġ{ ĊĠĠĠĠĠĠĠ Ġregister ( this ) ĊĠĠĠ Ġ} Ċ } Ċ Ċ @ Component Ċ @ Scope ( Bean Scope . SCOPE _ SINGLE TON ) Ċ class ĠNamed Type Loader List Provider ( ĊĠĠĠ Ġprivate Ġval Ġinterface List : ĠUser Interface Name Loader , ĊĠĠĠ Ġprivate Ġval Ġvar p List : ĠV arp Name Loader , ĊĠĠĠ Ġprivate Ġval Ġvar bit List : ĠVar bit Name Loader Ċ ) Ġ: ĠFactory Bean < Named Type Loader List > Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġget ObjectType () Ġ= ĠNamed Type Loader List :: class . java ĊĊĠĠĠ Ġoverride Ġfun ĠgetObject () Ġ= ĠNamed Type Loader List (). apply Ġ{ ĊĠĠĠĠĠĠĠ Ġregister ( interface List ) ĊĠĠĠĠĠĠĠ Ġregister ( var p List ) ĊĠĠĠĠĠĠĠ Ġregister ( var bit List ) ĊĠĠĠ Ġ} Ċ }