package Ġcom . vi arte me v . request mapper . annotations . spring . class mapping Ċ Ċ import Ġcom . intellij . psi . Psi Annotation Ċ import Ġcom . intellij . psi . Psi Method Ċ import Ġcom . vi arte me v . request mapper . Bound Type Ċ Ċ private Ġconst Ġval ĠSPR ING _ REQUEST _ MAPPING _ CLASS Ġ= Ġ" org . springframework . web . bind . annotation . RequestMapping " Ċ private Ġconst Ġval ĠSPR ING _ OPEN _ FE IGN _ CLASS Ġ= Ġ" org . springframework . cloud . open fe ign . Fe ign Client " Ċ private Ġconst Ġval ĠSPR ING _ NET FLI X _ FE IGN _ CLASS Ġ= Ġ" org . springframework . cloud . netflix . fe ign . Fe ign Client " Ċ Ċ interface ĠSpring Class Mapping Annotation Ġ{ ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĊĠĠĠĠĠĠĠ Ġprivate Ġfun Ġmapping Annotation ( psi Annotation : ĠPsi Annotation ): ĠSpring Class Mapping Annotation Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ( psi Annotation . qualified Name ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSPR ING _ REQUEST _ MAPPING _ CLASS Ġ-> ĠClass RequestMapping ( psi Annotation ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSPR ING _ OPEN _ FE IGN _ CLASS Ġ-> ĠClass Fe ign Client Mapping ( psi Annotation ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSPR ING _ NET FLI X _ FE IGN _ CLASS Ġ-> ĠClass Fe ign Client Mapping ( psi Annotation ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> ĠClass Unknown Annotation () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġfetch Mappings From Class ( psi Method : ĠPsi Method ): ĠList < String > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġclass Mapping Ġ= Ġfind Class Annotations ( psi Method ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ? . flatMap Ġ{ Ġmapping Annotation ( it ). fetch Class Mapping () Ġ} Ġ?: Ġempty List () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( class Mapping . isEmpty ()) ĠlistOf ("") Ġelse Ġclass Mapping ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġfetch Bound Mapping From Class ( psi Method : ĠPsi Method ): ĠSet < Bound Type > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġclass Mapping Ġ= Ġfind Class Annotations ( psi Method ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ? . flatMap Ġ{ Ġmapping Annotation ( it ). fetch Bound Mapping From Class () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ? . toSet () Ġ?: Ġempty Set () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( class Mapping . isEmpty ()) Ġset Of ( Bound Type . IN BOUND ) Ġelse Ġclass Mapping ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġprivate Ġfun Ġfind Class Annotations ( psi Method : ĠPsi Method ): ĠList < Psi Annotation >? Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġpsi Method ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. containing Class ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ? . modifier List ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ? . annotations ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ? . filter NotNull () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġfetch Class Mapping (): ĠList < String > ĊĠĠĠ Ġfun Ġfetch Bound Mapping From Class (): ĠSet < Bound Type > Ċ } Ċ