/* Ċ Ġ* ĠCopyright Ġ 2 0 1 0 - 2 0 1 5 ĠJetBrains Ġs . r . o . Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ Ċ package Ġorg . jetbrains . kotlin . k doc . psi . impl Ċ Ċ import Ġcom . intellij . lang . AST Node Ċ import Ġorg . jetbrains . kotlin . psi . Kt Element Impl Ċ import Ġorg . jetbrains . kotlin . k doc . psi . api . K Doc Ċ import Ġorg . jetbrains . kotlin . psi . psi Util . get Strict Parent OfType Ċ import Ġcom . intellij . openapi . util . Text Range Ċ import Ġorg . jetbrains . kotlin . lexer . Kt Tokens Ċ import Ġorg . jetbrains . kotlin . psi . psi Util . getChild OfType Ċ Ċ /** Ċ Ġ* ĠA Ġsingle Ġpart Ġof Ġa Ġqualified Ġname Ġin Ġthe Ġtag Ġsubject Ġor Ġlink . Ċ Ġ*/ Ċ class ĠK Doc Name ( node : ĠAST Node ): ĠK t Element Impl ( node ) Ġ{ ĊĠĠĠ Ġfun Ġget Containing Doc (): ĠK Doc Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġk doc Ġ= Ġget Strict Parent OfType < K Doc >() ĊĠĠĠĠĠĠĠ Ġreturn Ġk doc Ġ?: Ġthrow ĠIllegalStateException (" K Doc Name Ġmust Ġbe Ġinside Ġa ĠK Doc ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Containing Section (): ĠK Doc Section Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġk doc Ġ= Ġget Strict Parent OfType < K Doc Section >() ĊĠĠĠĠĠĠĠ Ġreturn Ġk doc Ġ?: Ġthrow ĠIllegalStateException (" K Doc Name Ġmust Ġbe Ġinside Ġa ĠK Doc Section ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Qualifier (): ĠK Doc Name ? Ġ= Ġget Child OfType () ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠReturns Ġthe Ġrange Ġwithin Ġthe Ġelement Ġcontaining Ġthe Ġname Ġ( in Ġother Ġwords , ĊĠĠĠĠ Ġ* Ġthe Ġrange Ġof Ġthe Ġelement Ġexcluding Ġthe Ġqualifier Ġand Ġdot , Ġif Ġpresent ). ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun ĠgetName Text Range (): ĠText Range Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġdot Ġ= Ġnode . find Child ByType ( Kt Tokens . DOT ) ĊĠĠĠĠĠĠĠ Ġval Ġtext Range Ġ= Ġtext Range ĊĠĠĠĠĠĠĠ Ġval Ġname Start Ġ= Ġif Ġ( dot Ġ!= Ġnull ) Ġdot . text Range . end Offset Ġ- Ġtext Range . start Offset Ġelse Ġ 0 ĊĠĠĠĠĠĠĠ Ġreturn ĠText Range ( name Start , Ġtext Range . length ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun ĠgetName Text (): ĠString Ġ= ĠgetName Text Range (). substring ( text ) ĊĊĠĠĠ Ġfun Ġget QualifiedName (): ĠList < String > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġqualifier Ġ= Ġget Qualifier () ĊĠĠĠĠĠĠĠ Ġval Ġname As List Ġ= ĠlistOf ( getName Text ()) ĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( qual ifier Ġ!= Ġnull ) Ġqualifier . get QualifiedName () Ġ+ Ġname As List Ġelse Ġname As List ĊĠĠĠ Ġ} Ċ } Ċ