@ file : Suppress (" unused ") Ċ Ċ package Ġcom . jetbrains . edu . learning . yaml . format Ċ Ċ import Ġcom . fasterxml . jackson . annotation . JsonInclude Ċ import Ġcom . fasterxml . jackson . annotation . JsonProperty Ċ import Ġcom . fasterxml . jackson . annotation . JsonProperty Order Ċ import Ġcom . fasterxml . jackson . databind . annotation . Json Deserialize Ċ import Ġcom . fasterxml . jackson . databind . annotation . Json Serialize Ċ import Ġcom . fasterxml . jackson . databind . util . Std Converter Ċ import Ġcom . jetbrains . edu . course creator . actions . mixins . Json Mixin Names . TAGS Ċ import Ġcom . jetbrains . edu . learning . course Format . tasks . choice . Choice Option Ċ import Ġcom . jetbrains . edu . learning . course Format . tasks . choice . Choice Option Status Ċ import Ġcom . jetbrains . edu . learning . messages . E du Core Bundle Ċ import Ġcom . jetbrains . edu . learning . yaml . error Handling . format Error Ċ import Ġcom . jetbrains . edu . learning . yaml . format . Yaml Mixin Names . FEED BACK _ CORRECT Ċ import Ġcom . jetbrains . edu . learning . yaml . format . Yaml Mixin Names . FEED BACK _ IN CORRECT Ċ import Ġcom . jetbrains . edu . learning . yaml . format . Yaml Mixin Names . FEED BACK _ LINK Ċ import Ġcom . jetbrains . edu . learning . yaml . format . Yaml Mixin Names . FILES Ċ import Ġcom . jetbrains . edu . learning . yaml . format . Yaml Mixin Names . IS _ CORRECT Ċ import Ġcom . jetbrains . edu . learning . yaml . format . Yaml Mixin Names . IS _ MULTIPLE _ CHO ICE Ċ import Ġcom . jetbrains . edu . learning . yaml . format . Yaml Mixin Names . OPTIONS Ċ import Ġcom . jetbrains . edu . learning . yaml . format . Yaml Mixin Names . QUI Z _ HEADER Ċ import Ġcom . jetbrains . edu . learning . yaml . format . Yaml Mixin Names . TYPE ĊĊ Ċ @ Suppress (" UNUSED _ PARAMETER ", Ġ" unused ") Ġ// Ġused Ġfor Ġyaml Ġserialization Ċ @ JsonProperty Order ( TYPE , ĠIS _ MULTIPLE _ CHO ICE , ĠOPTIONS , ĠFE ED BACK _ CORRECT , ĠFE ED BACK _ IN CORRECT , ĠQ UI Z _ HEADER , ĠFILE S , ĠFE ED BACK _ LINK , ĠTAG S ) Ċ abstract Ġclass ĠChoice Task Yaml Mixin Ġ: ĠTask Yaml Mixin () Ġ{ ĊĊĠ Ġ@ JsonProperty ( IS _ MULTIPLE _ CHO ICE ) ĊĠ Ġprivate Ġvar Ġis Multiple Choice : ĠBoolean Ġ= Ġfalse ĊĊĠ Ġ@ JsonProperty ( OPTIONS ) ĊĠ Ġprivate Ġlateinit Ġvar Ġchoice Options : ĠList < Choice Option > ĊĊĠ Ġ@ JsonProperty ( FEED BACK _ CORRECT ) ĊĠ Ġ@ JsonInclude ( JsonInclude . Include . CUSTOM , Ġvalue Filter Ġ= ĠFeedback Correct Filter :: class ) ĊĠ Ġprivate Ġvar Ġmessage Correct : ĠString Ġ= Ġ"" ĊĊĠ Ġ@ JsonProperty ( FEED BACK _ IN CORRECT ) ĊĠ Ġ@ JsonInclude ( JsonInclude . Include . CUSTOM , Ġvalue Filter Ġ= ĠFeedback Incorrect Filter :: class ) ĊĠ Ġprivate Ġvar Ġmessage Incorrect : ĠString Ġ= Ġ"" ĊĊĠ Ġ@ JsonProperty ( QUI Z _ HEADER ) ĊĠ Ġ@ JsonInclude ( JsonInclude . Include . CUSTOM , Ġvalue Filter Ġ= ĠQu iz Header Filter :: class ) ĊĠ Ġprivate Ġvar Ġquiz Header : ĠString Ġ= Ġ"" Ċ } Ċ Ċ /** Ċ Ġ* ĠNot Ġto Ġserialize Ġdefault Ġfeedback _ correct Ġvalues Ċ Ġ*/ Ċ @ Suppress (" Equals Or HashCode ") Ċ class ĠFeedback Correct Filter Ġ{ ĊĠ Ġoverride Ġfun Ġequals ( other : ĠAny ?): ĠBoolean Ġ= Ġ( other Ġis ĠString Ġ&& ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( other Ġ== ĠE du Core Bundle . message (" check . correct . solution "))) Ċ Ċ } Ċ Ċ /** Ċ Ġ* ĠNot Ġto Ġserialize Ġdefault Ġfeedback _ incorrect Ġvalues Ċ Ġ*/ Ċ @ Suppress (" Equals Or HashCode ") Ċ class ĠFeedback Incorrect Filter Ġ{ ĊĠ Ġoverride Ġfun Ġequals ( other : ĠAny ?): ĠBoolean Ġ= Ġ( other Ġis ĠString Ġ&& ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( other Ġ== ĠE du Core Bundle . message (" check . incorrect . solution "))) Ċ } Ċ Ċ /** Ċ Ġ* ĠNot Ġto Ġserialize Ġdefault Ġquiz Header Ġvalues Ċ Ġ*/ Ċ @ Suppress (" Equals Or HashCode ") Ċ class ĠQu iz Header Filter Ġ{ ĊĠ Ġoverride Ġfun Ġequals ( other : ĠAny ?): ĠBoolean Ġ= Ġ( other Ġis ĠString Ġ&& ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( other Ġ== ĠE du Core Bundle . message (" course . creator . create . choice . task . multiple . label ") Ġ|| ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġother Ġ== ĠE du Core Bundle . message (" course . creator . create . choice . task . single . label "))) Ċ } Ċ Ċ abstract Ġclass ĠChoice Option Yaml Mixin Ġ{ ĊĠ Ġ@ JsonProperty ĊĠ Ġprivate Ġvar Ġtext : ĠString Ġ= Ġ"" ĊĊĠ Ġ@ JsonProperty ( IS _ CORRECT ) ĊĠ Ġ@ Json Serialize ( converter Ġ= ĠFrom Choice Option Status Converter :: class ) ĊĠ Ġ@ Json Deserialize ( converter Ġ= ĠTo Choice Option Status Converter :: class ) ĊĠ Ġ@ JsonInclude ( JsonInclude . Include . CUSTOM , Ġvalue Filter Ġ= ĠUnknown Option Filter :: class ) ĊĠ Ġprivate Ġvar Ġstatus : ĠChoice Option Status Ġ= ĠChoice Option Status . UNKNOWN Ċ } Ċ Ċ private Ġclass ĠFrom Choice Option Status Converter Ġ: ĠStd Converter < Choice Option Status , ĠBoolean >() Ġ{ ĊĠ Ġoverride Ġfun Ġconvert ( value : ĠChoice Option Status ): ĠBoolean Ġ{ ĊĠĠĠ Ġreturn Ġwhen Ġ( value ) Ġ{ ĊĠĠĠĠĠ ĠChoice Option Status . CORRECT Ġ-> Ġtrue ĊĠĠĠĠĠ ĠChoice Option Status . IN CORRECT Ġ-> Ġfalse ĊĠĠĠĠĠ Ġelse Ġ-> Ġformat Error ( E du Core Bundle . message (" yaml . editor . invalid . unknown . option ", Ġvalue )) ĊĠĠĠ Ġ} ĊĠ Ġ} Ċ } Ċ Ċ private Ġclass ĠTo Choice Option Status Converter Ġ: ĠStd Converter < Boolean ?, ĠChoice Option Status >() Ġ{ ĊĠ Ġoverride Ġfun Ġconvert ( value : ĠBoolean ?): ĠChoice Option Status Ġ{ ĊĠĠĠ Ġif Ġ( value Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠ Ġreturn ĠChoice Option Status . UNKNOWN ĊĠĠĠ Ġ} ĊĠĠĠ Ġreturn Ġif Ġ( value ) ĠChoice Option Status . CORRECT Ġelse ĠChoice Option Status . IN CORRECT ĊĠ Ġ} Ċ } Ċ Ċ @ Suppress (" Equals Or HashCode ") Ċ private Ġclass ĠUnknown Option Filter Ġ{ ĊĠ Ġoverride Ġfun Ġequals ( other : ĠAny ?): ĠBoolean Ġ{ ĊĠĠĠ Ġif Ġ( other Ġ== Ġnull Ġ|| Ġother Ġ! is ĠChoice Option Status ) Ġ{ ĊĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠ Ġ} ĊĠĠĠ Ġreturn Ġother Ġ== ĠChoice Option Status . UNKNOWN ĊĠ Ġ} Ċ }