package Ġfr . st ard ust enter pri ses . def ace . api . engine Ċ Ċ import Ġjava . util .* Ċ Ċ /** Ċ Ġ* ĠInterface Ġfor Ġlooking - up Ġand Ġgetting Ġ[ Class ] es Ġinformation . Ċ Ġ* Ċ Ġ* Ġ@ author Ġx tr m Ċ Ġ* Ġ@ since Ġ 0 . 4 . 0 Ċ Ġ*/ Ċ interface ĠI Lookup Service Ġ{ ĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠFinds Ġa Ġclass Ġby Ġits Ġname Ġin Ġthe ĠJVM . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param ĠclassName Ġthe Ġclass Ġname , Ġmust Ġbe Ġa Ġfully Ġqualified Ġclass Ġname ĊĠĠĠĠ Ġ* ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( e . g . Ġ" java / lang / String " Ġor Ġ"[ Ljava / lang / Object ; ") ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ return Ġthe Ġclass Ġwith Ġthat Ġname , Ġor Ġ` null ` Ġif Ġnot Ġfound . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġfind Class ( className : ĠString ): ĠClass < *> ? ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠFinds Ġall Ġloaded Ġclasses Ġin Ġthe ĠJVM . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ return Ġall Ġloaded Ġclasses Ġin Ġthe ĠJVM . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġget Loaded Classes (): ĠList < Class <* >> ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠFinds Ġall Ġclasses Ġloaded Ġby Ġa Ġgiven Ġclass Ġloader . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġclass Loader Ġthe Ġclass Ġloader Ġto Ġlook Ġfor Ġclasses ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ return Ġall Ġclasses Ġloaded Ġby Ġthe Ġgiven Ġclass Ġloader . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġget ClassLoader Classes ( class Loader : ĠClassLoader ): ĠList < Class <* >> ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠFinds Ġwhether Ġa Ġclass Ġis Ġmod ifiable Ġor Ġnot . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġclazz Ġthe Ġclass Ġto Ġcheck . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ return Ġwhether Ġa Ġclass Ġif Ġmod ifiable Ġor Ġnot . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġis Mod ifiable ( clazz : ĠClass < *> ): ĠBoolean ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠComp anion Ġobject Ġused Ġto Ġget Ġservice Ġinstances . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠThe Ġ[ Service Loader ] Ġinstance . ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġloader : ĠService Loader < IL ook up Service > Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠService Loader . load ( IL ook up Service :: class . java ) ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠThe Ġlist Ġof Ġ[ IL ook up Service ] Ġimplementations . ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġ@ Jvm Static ĊĠĠĠĠĠĠĠ Ġval ĠSERVICES : ĠList < IL ook up Service > ĊĠĠĠĠĠĠĠĠĠĠĠ Ġget () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġloader . reload () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġloader . toList () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ