package Ġh ach i . lang . domain . scope Ċ Ċ import Ġh ach i . lang . domain . type . Type Ċ import Ġh ach i . lang . util . Function Signature Factory Ċ import Ġorg . apache . commons . lang 3 . reflect . Constructor Utils Ċ import Ġorg . apache . commons . lang 3 . reflect . Method Utils Ċ Ċ class ĠClass Path Scope Ġ{ ĊĠĠĠ Ġfun Ġget Function Signature ( owner : ĠType ?, Ġfunction Name : ĠString , Ġarguments : ĠList < Type >): ĠFunction Signature ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmethod Owner Class Ġ= Ġowner ?. getType Class () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġparameters Ġ= Ġarguments . map Ġ{ Ġit . getType Class () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. to Typed Array () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmethod Ġ= ĠMethod Utils . get Matching Accessible Method ( method Owner Class , Ġfunction Name , Ġ* parameters ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠFunction Signature Factory . from Method ( method ) ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnull ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Constructor Signature ( className : ĠString , Ġarguments : ĠList < Type >): ĠFunction Signature ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmethod Owner Class Ġ= ĠClass . forName ( className ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġparameters Ġ= Ġarguments . map Ġ{ Ġit . getType Class () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. to Typed Array () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġconstructor Ġ= ĠConstructor Utils . get Matching Accessible Constructor ( method Owner Class , Ġ* parameters ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠFunction Signature Factory . from Constructor ( constructor ) ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnull ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }