/* Ċ Ġ* ĠMinecraft ĠDev Ġfor ĠIntelliJ Ċ Ġ* Ċ Ġ* Ġhttps :// minecraft dev . org Ċ Ġ* Ċ Ġ* ĠCopyright Ġ( c ) Ġ 2 0 2 0 Ġm inecraft - dev Ċ Ġ* Ċ Ġ* ĠMIT ĠLicense Ċ Ġ*/ Ċ Ċ package Ġcom . de mon wav . mc dev . util Ċ Ċ import Ġcom . intellij . patterns . Platform Patterns Ċ import Ġcom . intellij . patterns . Psi Annotation Pattern Ċ import Ġcom . intellij . patterns . Psi Java Element Pattern Ċ import Ġcom . intellij . patterns . Psi Java Patterns Ċ import Ġcom . intellij . psi . Psi Annotation Parameter List Ċ import Ġcom . intellij . psi . Psi Element Ċ Ċ private Ġval ĠAN NOT ATION _ ATTRIBUTE _ STOP Ġ= ĊĠĠĠ ĠPlatform Patterns . not ( Psi Java Patterns . psi Expression ()). and Not ( Psi Java Patterns . psi NameValuePair ()) Ċ Ċ // ĠPsi Java Element Pattern . inside Annotation Param Ġchecks Ġfor Ġthe Ġparameter Ġlist Ġonly Ġup Ġto Ġ 3 Ġlevels Ċ // ĠIt Ġcan Ġbe Ġmore Ġif Ġthe Ġvalue Ġis Ġfor Ġexample Ġen closed Ġin Ġparentheses Ċ fun Ġ< T Ġ: ĠPsi Element , ĠSelf Ġ: ĠPsi Java Element Pattern < T , ĠSelf >> ĠPsi Java Element Pattern < T , ĠSelf >. inside Annotation Attribute ( ĊĠĠĠ Ġannotation : ĠPsi Annotation Pattern , ĊĠĠĠ Ġattribute : ĠString Ċ ): ĠSelf Ġ{ ĊĠĠĠ Ġreturn Ġinside ( ĊĠĠĠĠĠĠĠ Ġtrue , ĊĠĠĠĠĠĠĠ ĠPsi Java Patterns . psi NameValuePair (). with Name ( attribute ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Parent ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPlatform Patterns . psi Element ( Psi Annotation Parameter List :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Parent ( annotation ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠ ĠAN NOT ATION _ ATTRIBUTE _ STOP ĊĠĠĠ Ġ) Ċ } Ċ Ċ fun Ġ< T Ġ: ĠPsi Element , ĠSelf Ġ: ĠPsi Java Element Pattern < T , ĠSelf >> ĠPsi Java Element Pattern < T , ĠSelf >. inside Annotation Attribute ( ĊĠĠĠ Ġannotation : ĠString , ĊĠĠĠ Ġattribute : ĠString Ġ= Ġ" value " Ċ ): ĠSelf Ġ{ ĊĠĠĠ Ġreturn Ġinside Annotation Attribute ( Psi Java Patterns . psi Annotation (). q Name ( annotation ), Ġattribute ) Ċ } Ċ