package Ġcn . var sa . idea . p de . partial . plugin . manifest . psi Ċ Ċ import Ġcom . intellij . ext api . psi .* Ċ import Ġcom . intellij . lang .* Ċ import Ġcom . intellij . psi .* Ċ import Ġcom . intellij . psi . util .* Ċ import Ġcom . intellij . util .* Ċ import Ġorg . jetbrains . lang . manifest . psi .* Ċ Ċ abstract Ġclass ĠO sgi Manifest ElementType ( name : ĠString ) Ġ: ĠManifest ElementType ( name ) Ġ{ ĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġattribute Ġ= Ġobject Ġ: ĠO sgi Manifest ElementType (" ATTRIBUTE ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġcreate Psi ( node : ĠAST Node ): ĠPsi Element Ġ= ĠAttribute ( node ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġdirective Ġ= Ġobject Ġ: ĠO sgi Manifest ElementType (" DIRECT IVE ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġcreate Psi ( node : ĠAST Node ): ĠPsi Element Ġ= ĠDirective ( node ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġclause Ġ= Ġobject Ġ: ĠO sgi Manifest ElementType (" CLA USE ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġcreate Psi ( node : ĠAST Node ): ĠPsi Element Ġ= ĠClause ( node ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ abstract Ġclass ĠAbstract Assignment Expression ( node : ĠAST Node ) Ġ: ĠAST Wrapper Psi Element ( node ), ĠPsi Named Element Ġ{ ĊĠĠĠ Ġoverride Ġfun ĠgetName (): ĠString Ġ= ĠgetName Element ()?. un wrapped Text Ġ?: Ġ"< unnamed >" ĊĠĠĠ Ġoverride Ġfun ĠsetName ( name : ĠString ): ĠPsi Element Ġ= Ġthrow ĠInc orrect OperationException () ĊĊĠĠĠ Ġfun ĠgetName Element (): ĠHeader Value Part ? Ġ= ĠPsi Tree Util . getChild OfType ( this , ĠHeader Value Part :: class . java ) ĊĠĠĠ Ġfun ĠgetValue Element (): ĠHeader Value Part ? Ġ= ĊĠĠĠĠĠĠĠ ĠgetName Element ()?. let Ġ{ ĠPsi Tree Util . getNext Sibling OfType ( it , ĠHeader Value Part :: class . java ) Ġ} ĊĊĠĠĠ Ġfun ĠgetValue (): ĠString Ġ= ĠgetValue Element ()?. un wrapped Text Ġ?: Ġ"" Ċ } Ċ Ċ class ĠAttribute ( node : ĠAST Node ) Ġ: ĠAbstract Assignment Expression ( node ) Ġ{ ĊĠĠĠ Ġoverride Ġfun ĠtoString (): ĠString Ġ= Ġ" Attribute : Ġ$ name " Ċ } Ċ Ċ class ĠDirective ( node : ĠAST Node ) Ġ: ĠAbstract Assignment Expression ( node ) Ġ{ ĊĠĠĠ Ġoverride Ġfun ĠtoString (): ĠString Ġ= Ġ" Directive : Ġ$ name " Ċ } Ċ Ċ class ĠClause ( node : ĠAST Node ) Ġ: ĠAST Wrapper Psi Element ( node ), ĠHeader Value Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġget Un wrapped Text (): ĠString Ġ= Ġtext . replace (" (? s )\\ s *\ n \\ s * ". to Regex (), Ġ""). trim () ĊĠĠĠ Ġoverride Ġfun ĠtoString (): ĠString Ġ= Ġ" Clause " ĊĊĠĠĠ Ġfun ĠgetValue (): ĠHeader Value Part ? Ġ= Ġfind Child By Class ( HeaderValue Part :: class . java ) ĊĠĠĠ Ġfun Ġget Attributes (): ĠList < Attribute > Ġ= ĠPsi Tree Util . getChildren OfType As List ( this , ĠAttribute :: class . java ) ĊĠĠĠ Ġfun Ġget Directives (): ĠList < Directive > Ġ= ĠPsi Tree Util . getChildren OfType As List ( this , ĠDirective :: class . java ) Ċ } Ċ