package Ġch . u zh . ifi . se al . bench er . analysis . finder . asm Ċ Ċ import Ġch . u zh . ifi . se al . bench er . analysis . finder . shared . Bench Field Ċ import Ġorg . object web . asm . Annotation Visitor Ċ import Ġorg . object web . asm . Field Visitor Ċ Ċ class ĠA sm Bench Field Visitor ( api : ĠInt , Ġfv : ĠField Visitor ?, Ġprivate Ġval Ġname : ĠString ) Ġ: ĠField Visitor ( api , Ġfv ) Ġ{ ĊĠĠĠ Ġval Ġbench Field Ġ= ĠB ench Field () ĊĊĠĠĠ Ġ// Ġsub - visitor s ĊĠĠĠ Ġprivate Ġval Ġav s : ĠMutable List < Asm Bench Param Annotation Visitor > Ġ= Ġmutable ListOf () ĊĊĠĠĠ Ġoverride Ġfun Ġvisit Annotation ( descriptor : ĠString , Ġvisible : ĠBoolean ): ĠAnnotation Visitor ? Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( descriptor Ġ== Ġj mh Annotation Param ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbench Field . is Param Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġav Ġ= ĠA sm Bench Param Annotation Visitor ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġapi Ġ= Ġapi , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġav Ġ= Ġfv ?. visit Annotation ( descriptor , Ġvisible ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠfieldName Ġ= Ġname ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġav s . add ( av ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġav ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfv ?. visit Annotation ( descriptor , Ġvisible ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġvisit End () Ġ{ ĊĠĠĠĠĠĠĠ Ġfv ?. visit End () ĊĠĠĠĠĠĠĠ Ġbench Field . j mh Params Ġ= Ġav s . associate Ġ{ Ġp av Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPair ( p av . fieldName , Ġp av . array Values ) ĊĠĠĠĠĠĠĠ Ġ}. to Mutable Map () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval Ġj mh Annotation Param Ġ= Ġ" L org / openjdk / j mh / annotations / Param ;" ĊĠĠĠ Ġ} Ċ } Ċ