package Ġdev . the code war ri or . mirror . impl . util Ċ Ċ import Ġdev . the code war ri or . mirror . impl . utils . unmodifiable View Ċ import Ġdev . the code war ri or . mirror . util . Annotation List Ċ import Ġjava . lang . reflect . Annotated Element Ċ Ċ internal Ġclass ĠElement Back ed Annotation List Impl Ġprivate Ġconstructor ( ĊĠĠĠ Ġval Ġelement : ĠAnnot ated Element , ĊĠĠĠ Ġval Ġuse Declared : ĠBoolean , ĊĠĠĠ Ġbacking List : ĠList < Annotation > Ċ ) Ġ: ĠAbstract Annotation List Impl (), ĠList < Annotation > Ġby Ġbacking List Ġ{ ĊĊĠĠĠ Ġconstructor ( element : ĠAnnot ated Element , Ġuse Declared : ĠBoolean ) Ġ: Ġthis ( ĊĠĠĠĠĠĠĠ Ġelement , ĊĠĠĠĠĠĠĠ Ġuse Declared , ĊĠĠĠĠĠĠĠ Ġwhen ( use Declared ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtrue Ġ-> Ġelement . declared Annotations ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfalse Ġ-> Ġelement . annotations ĊĠĠĠĠĠĠĠ Ġ}. toList (). unmodifiable View () ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġoverride Ġfun Ġis Present ( annotation Class : ĠClass < out ĠAnnotation >): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġget ( annotation Class ) Ġ!= Ġnull ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġ< T Ġ: ĠAnnotation > Ġget ( annotation Class : ĠClass < T >): ĠT ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġwhen ( use Declared ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtrue Ġ-> Ġelement . getDeclared Annotation ( annotation Class ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfalse Ġ-> Ġelement . getAnnotation ( annotation Class ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġ< T Ġ: ĠAnnotation > ĠgetAll ByType ( annotation Class : ĠClass < T >): ĠArray < T > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġwhen ( use Declared ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtrue Ġ-> Ġelement . getDeclared Annotations ByType ( annotation Class ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfalse Ġ-> Ġelement . get Annotations ByType ( annotation Class ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }