package Ġcom . phoenix pen . game . simulation Ċ Ċ /** Ċ Ġ* ĠAn Ġenumeration Ġdescribing Ġthe Ġfour Ġse asons Ġin Ġa Ġyear Ċ Ġ* Ċ Ġ* Ġ@ property Ġindex Ġthe Ġindex Ġof Ġthe Ġseason Ġtype Ġin Ġthis Ġenumeration Ċ Ġ*/ Ċ enum Ġclass ĠSe ason ( val Ġindex : ĠInt ) Ċ { ĊĠĠĠ ĠSpring ( 0 ), ĊĠĠĠ ĠSum mer ( 1 ), ĊĠĠĠ ĠAut umn ( 2 ), ĊĠĠĠ ĠW inter ( 3 ); ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠGiven Ġa Ġseason , Ġdetermine Ġthe Ġnext Ġseason . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġnext Season (): ĠSe ason ĊĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠCalculate Ġnew Ġindex ĊĠĠĠĠĠĠĠ Ġval Ġnew Index Ġ= Ġ( this . index Ġ+ Ġ 1 ) Ġ% Ġ 4 ĊĊĠĠĠĠĠĠĠ Ġ// ĠReturn Ġnew Ġseason ĊĠĠĠĠĠĠĠ Ġreturn Ġseason From Index ( new Index ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject ĊĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠRetrieve Ġseason Ġfor Ġgiven Ġindex ĊĠĠĠĠĠĠĠĠ Ġ* ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ param Ġindex ĠIndex Ġto Ġretrieve Ġmatching Ġseason Ġfor ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ return ĠSe ason Ġmatching Ġgiven Ġindex ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġfun Ġseason From Index ( index : ĠInt ): ĠSe ason ĊĠĠĠĠĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġwhen ( index ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 0 Ġ-> ĠSpring ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 1 Ġ-> ĠSum mer ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 2 Ġ-> ĠAut umn ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 3 Ġ-> ĠW inter ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġthrow ĠIllegalStateException (" Unknown Ġseason Ġindex : Ġ$ index ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }