// ĠCopyright Ġ( c ) Ġ 2 0 1 7 - 2 0 2 0 ĠV lad im ir ĠSch ne ider Ġ< vl ad im ir . sch ne ider @ gmail . com > ĠUse Ġof Ġthis Ġsource Ġcode Ġis Ġgoverned Ġby Ġthe ĠApache Ġ 2 . 0 Ġlicense Ġthat Ġcan Ġbe Ġfound Ġin Ġthe ĠLICENSE Ġfile . Ċ Ċ package Ġcom . vl ad sch . md . nav . flex . psi Ċ Ċ import Ġcom . intellij . openapi . util . Text Range Ċ import Ġcom . intellij . psi . Psi Class Ċ import Ġcom . intellij . psi . Psi Element Ċ import Ġcom . intellij . psi . Psi Literal Expression Ċ import Ġcom . vl ad sch . md . nav . flex . language . Psi Reference Option Definition Literal Ċ Ċ /** Ċ Ġ* ĠDefinition Ġof Ġa Ġflex mark Ġspec Ġexample Ġoption Ċ Ġ* Ċ Ġ* Ġ@ param Ġelement Ġstring Ġliteral Ġexpression Ġdefining Ġthe Ġoption Ċ Ġ* Ġ@ param Ġtext Range Ġtext Ġrange Ġin Ġelement Ġcontaining Ġthe Ġstring , Ġis Ġis Ġusually Ġ[ 1 , Ġtext . length ()- 1 ) Ċ Ġ* Ġ@ param Ġpsi Class Ġpsi Class Ġin Ġwhich Ġit Ġis Ġdefined Ċ Ġ*/ Ċ class ĠFlex mark Example Option Definition Ġconstructor ( val Ġpsi Class : ĠPsi Class , Ġval Ġelement : ĠPsi Element , Ġval Ġtext Range : ĠText Range , Ġval Ġoriginal Psi Class : ĠPsi Class ) Ġ{ ĊĊĠĠĠ Ġval Ġoption Name : ĠString Ġget () Ġ= Ġelement . text . substring ( text Range . start Offset , Ġtext Range . end Offset ) ĊĠĠĠ Ġval Ġrange In Element : ĠText Range Ġget () Ġ= Ġtext Range ĊĊĠĠĠ Ġfun Ġis Definition For ( option : ĠFlex mark Example Option ): ĠBoolean Ġ= Ġoption Name Ġ== Ġoption . option Name ĊĠĠĠ Ġfun Ġis Definition For ( option Name : ĠString ): ĠBoolean Ġ= ĠisValid Ġ&& Ġthis . option Name Ġ== Ġoption Name ĊĊĠĠĠ Ġval Ġliteral Expression Element : ĠPsi Literal Expression Ġget () Ġ= Ġelement Ġas ĠPsi Literal Expression ĊĊĠĠĠ Ġval Ġis Inherited : ĠBoolean Ġget () Ġ= Ġoriginal Psi Class Ġ!= Ġpsi Class ĊĠĠĠ Ġval ĠisValid : ĠBoolean Ġget () Ġ= Ġthis . option Name . isNotBlank () ĊĊĠĠĠ Ġfun Ġget Psi Reference (): ĠPsi Reference Option Definition Literal Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠPsi Reference Option Definition Literal ( element Ġas ĠPsi Literal Expression , Ġtext Range ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġis Data Valid : ĠBoolean Ġget () Ġ= Ġpsi Class . isValid Ġ&& Ġelement . isValid Ġ&& Ġoriginal Psi Class . isValid ĊĊĠĠĠ Ġoverride Ġfun Ġequals ( other : ĠAny ?): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( this Ġ=== Ġother ) Ġreturn Ġtrue ĊĠĠĠĠĠĠĠ Ġif Ġ( java Class Ġ!= Ġother ?. java Class ) Ġreturn Ġfalse ĊĊĠĠĠĠĠĠĠ Ġother Ġas ĠFlex mark Example Option Definition ĊĊĠĠĠĠĠĠĠ Ġif Ġ( element Ġ!= Ġother . element ) Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠhashCode (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġresult Ġ= Ġ 0 ; ĊĠĠĠĠĠĠĠ Ġresult Ġ= Ġ 3 1 Ġ* Ġresult Ġ+ Ġelement . hashCode () ĊĠĠĠĠĠĠĠ Ġreturn Ġresult ĊĠĠĠ Ġ} Ċ } Ċ