package Ġorg . elm . lang . core . psi . elements Ċ Ċ import Ġcom . intellij . lang . AST Node Ċ import Ġcom . intellij . psi . Psi Element Ċ import Ġorg . elm . lang . core . psi . Elm Psi Element Impl Ċ import Ġorg . elm . lang . core . psi . Elm Q ID Ċ import Ġorg . elm . lang . core . psi . Elm Types Ċ import Ġorg . elm . lang . core . psi . Elm Types . UPPER _ CASE _ IDENTIFIER Ċ import Ġorg . elm . lang . core . psi . Elm Union Pattern Child Tag Ċ Ċ /** Ċ Ġ* ĠAn Ġidentifier Ġthat Ġrefers Ġto Ġa ĠModule , ĠUnion ĠConstructor , Ġor ĠRecord ĠConstructor , Ċ Ġ* Ġand Ġit Ġmay Ġcontain Ġan Ġadditional Ġqualifier Ġprefix Ġwhich Ġidentifies Ġthe Ġmodule / alias Ċ Ġ* Ġfrom Ġwhich Ġthe Ġidentifier Ġmay Ġbe Ġobtained . Ċ Ġ*/ Ċ class ĠEl m UpperCase Q ID ( node : ĠAST Node ) Ġ: ĠEl m Psi Element Impl ( node ), ĠEl m Q ID , ĠEl m Union Pattern Child Tag Ġ{ ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠGu arante ed Ġto Ġcontain Ġat Ġleast Ġone Ġelement ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġval Ġupper Case Identifier List : ĠList < Psi Element > ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġfind Children ByType ( UPPER _ CASE _ IDENTIFIER ) ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠTrue Ġif Ġthe Ġidentifier Ġis Ġqualified Ġby Ġa Ġmodule Ġname Ġ( in Ġthe Ġcase Ġof Ġunion Ġor ĊĠĠĠĠ Ġ* Ġrecord Ġconstructors ) Ġor Ġthe Ġmodule Ġexists Ġin Ġa Ġhierarchy Ġ( in Ġthe Ġcase Ġof Ġa Ġpure ĊĠĠĠĠ Ġ* Ġmodule Ġname Ġin Ġa Ġmodule Ġdecl Ġor Ġimport Ġdecl ). ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠTODO Ġ[ kl ] Ġthis Ġdouble - duty Ġis Ġa Ġbit Ġstrange . ĠMaybe Ġmake Ġa Ġseparate ĠPsi Ġelement ? ĊĠĠĠĠ Ġ* ĠTODO Ġ[ kl ] Ġalso Ġconsider Ġmoving Ġit Ġinto Ġ[ Elm Q ID ] ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġval Ġis Qualified : ĠBoolean ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġfind Child ByType < Psi Element >( Elm Types . DOT ) Ġ!= Ġnull Ċ } Ċ