package Ġorg . mas pit z ner . pres ences im ulation . models Ċ Ċ import Ġorg . joda . time . DateTime Ċ Ċ /** Ċ Ġ* ĠRepresents Ġa Ġlog Ġdata Ġpoint . Ċ Ġ* Ġ@ param Ġtime Stamp ĠTimestamp Ġat Ġwhich Ġthe Ġgiven Ġevent Ġhappened . Ċ Ġ* Ġ@ param Ġselected Device ĠRepresent ing Ġthe Ġlabel Ġof Ġa Ġdevice Ġin Ġthe Ġlog . Ċ Ġ* Ġ@ param Ġweekend ĠRepresents Ġweather Ġits Ġweekend Ġ@ time Stamp . Ċ Ġ* Ġ@ param Ġreal Temperature ĠThe Ġaverage Ġtemperature . Ċ Ġ* Ġ@ param Ġfelt Temperature ĠThe Ġfelt Ġtemperature . Ċ Ġ* Ġ@ param Ġpressure ĠThe Ġair Ġpressure . Ċ Ġ* Ġ@ param Ġhum idity ĠThe Ġair Ġhum idity . Ċ Ġ* Ġ@ param Ġwind Speed ĠThe Ġspeed Ġof Ġwind . Ċ Ġ* Ġ@ param Ġcloud iness ĠThe Ġpercentage Ġof Ġcloud iness . Ċ Ġ* Ġ@ param Ġweather ĠA Ġcategorical Ġstring Ġwhich Ġdescribes Ġthe Ġcurrent Ġweather Ġstate . Ċ Ġ*/ Ċ data Ġclass ĠLog Entry ( ĊĠĠĠ Ġval Ġtime Stamp : ĠDateTime , ĊĠĠĠ Ġval Ġselected Device : ĠInt , ĊĠĠĠ Ġval Ġweekend : ĠDouble Ġ= Ġif Ġ( time Stamp . day OfWeek Ġ== Ġ 6 Ġ|| Ġtime Stamp . day OfWeek Ġ== Ġ 7 ) Ġ 1 . 0 Ġelse Ġ 0 . 0 , ĊĠĠĠ Ġval Ġtime OfDay : ĠDouble Ġ= Ġtime Stamp . minute OfDay . toDouble (), ĊĠĠĠ Ġvar Ġtime OfDay Scaled : ĠDouble Ġ= Ġ 0 . 0 , ĊĠĠĠ Ġval Ġday OfYear : ĠDouble Ġ= Ġtime Stamp . day OfYear . toDouble (), ĊĠĠĠ Ġvar Ġday OfYear Scaled : ĠDouble Ġ= Ġ 0 . 0 , ĊĠĠĠ Ġvar Ġreal Temperature : ĠDouble Ġ= Ġ 0 . 0 , ĊĠĠĠ Ġvar Ġreal Temperature Scaled : ĠDouble Ġ= Ġ 0 . 0 , ĊĠĠĠ Ġvar Ġfelt Temperature : ĠDouble Ġ= Ġ 0 . 0 , ĊĠĠĠ Ġvar Ġfelt Temperature Scaled : ĠDouble Ġ= Ġ 0 . 0 , ĊĠĠĠ Ġvar Ġpressure : ĠInt Ġ= Ġ 0 , ĊĠĠĠ Ġvar Ġpressure Scaled : ĠDouble Ġ= Ġ 0 . 0 , ĊĠĠĠ Ġvar Ġhum idity : ĠDouble Ġ= Ġ 0 . 0 , ĊĠĠĠ Ġvar Ġhum idity Scaled : ĠDouble Ġ= Ġ 0 . 0 , ĊĠĠĠ Ġvar Ġwind Speed : ĠDouble Ġ= Ġ 0 . 0 , ĊĠĠĠ Ġvar Ġwind Speed Scaled : ĠDouble Ġ= Ġ 0 . 0 , ĊĠĠĠ Ġvar Ġcloud iness : ĠDouble Ġ= Ġ 0 . 0 , ĊĠĠĠ Ġvar Ġcloud iness Scaled : ĠDouble Ġ= Ġ 0 . 0 , ĊĠĠĠ Ġvar Ġweather : ĠString Ġ= Ġ"", ĊĠĠĠ Ġvar Ġweather Encoding : ĠArray < Double > Ġ= ĠArray ( 0 ) Ġ{ Ġ 0 . 0 Ġ} Ċ ) Ġ{ ĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠSets Ġthe Ġweather Ġinformation Ġfor Ġthis ĠLog Entry Ġbased Ġon Ġthe Ġgiven ĠWeather Data Entry . ĊĠĠĠĠ Ġ* Ġ@ param Ġweather Data ĠThe Ġweather Ġinformation ĊĠĠĠĠ Ġ* Ġwhich Ġwhere Ġthe Ġcurrent Ġones Ġat Ġthe Ġspecific Ġtime Ġstamp . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġset Weather ( weather Data : ĠWeather Data Entry ) Ġ{ ĊĠĠĠĠĠĠĠ Ġreal Temperature Ġ= Ġweather Data . physical Weather Data . temp ĊĠĠĠĠĠĠĠ Ġfelt Temperature Ġ= Ġweather Data . physical Weather Data . fe els _ like ĊĠĠĠĠĠĠĠ Ġpressure Ġ= Ġweather Data . physical Weather Data . pressure ĊĠĠĠĠĠĠĠ Ġhum idity Ġ= Ġweather Data . physical Weather Data . humidity ĊĠĠĠĠĠĠĠ Ġwind Speed Ġ= Ġweather Data . wind ?. speed Ġ?: Ġ 0 . 0 ĊĠĠĠĠĠĠĠ Ġcloud iness Ġ= Ġweather Data . clouds ?. all Ġ?: Ġ 0 . 0 ĊĠĠĠĠĠĠĠ Ġweather Ġ= Ġweather Data . basic Weather Data [ 0 ]. main ĊĠĠĠĠĠĠĠ Ġcopy Data ToS ca led () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġsets Ġscaled Ġfeatures Ġinitially Ġto Ġthe Ġoriginal Ġvalues ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġcopy Data ToS ca led () Ġ{ ĊĠĠĠĠĠĠĠ Ġreal Temperature Scaled Ġ= Ġreal Temperature ĊĠĠĠĠĠĠĠ Ġfelt Temperature Scaled Ġ= Ġfelt Temperature ĊĠĠĠĠĠĠĠ Ġpressure Scaled Ġ= Ġpressure . toDouble () ĊĠĠĠĠĠĠĠ Ġhum idity Scaled Ġ= Ġhum idity ĊĠĠĠĠĠĠĠ Ġwind Speed Scaled Ġ= Ġwind Speed ĊĠĠĠĠĠĠĠ Ġcloud iness Scaled Ġ= Ġcloud iness ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġsets Ġthe Ġscaled Ġfeatures Ġfor Ġevery Ġfeature Ġtype ĊĠĠĠĠ Ġ* Ġ@ param Ġfeatures Ġscaled Ġfeatures Ġas Ġmap Ġof Ġtype Ġto Ġvalue ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġset Scaled Features ( features : ĠHashMap < Feature , ĠDouble >) Ġ{ ĊĠĠĠĠĠĠĠ Ġtime OfDay Scaled Ġ= Ġfeatures [ Feature . TIME _ OF _ DAY ] Ġ?: Ġ 0 . 0 ĊĠĠĠĠĠĠĠ Ġday OfYear Scaled Ġ= Ġfeatures [ Feature . DAY _ OF _ YEAR ] Ġ?: Ġ 0 . 0 ĊĠĠĠĠĠĠĠ Ġreal Temperature Scaled Ġ= Ġfeatures [ Feature . REAL _ TEMP ER ATURE ] Ġ?: Ġ 0 . 0 ĊĠĠĠĠĠĠĠ Ġfelt Temperature Scaled Ġ= Ġfeatures [ Feature . F EL T _ TEMP ER ATURE ] Ġ?: Ġ 0 . 0 ĊĠĠĠĠĠĠĠ Ġpressure Scaled Ġ= Ġfeatures [ Feature . PRESS URE ] Ġ?: Ġ 0 . 0 ĊĠĠĠĠĠĠĠ Ġhum idity Scaled Ġ= Ġfeatures [ Feature . HUM ID ITY ] Ġ?: Ġ 0 . 0 ĊĠĠĠĠĠĠĠ Ġwind Speed Scaled Ġ= Ġfeatures [ Feature . W IND _ SPEED ] Ġ?: Ġ 0 . 0 ĊĠĠĠĠĠĠĠ Ġcloud iness Scaled Ġ= Ġfeatures [ Feature . CLOUD INESS ] Ġ?: Ġ 0 . 0 ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġreturns Ġthe Ġscaled Ġfeatures Ġof Ġa ĠLog Entry ĊĠĠĠĠ Ġ* Ġ@ return Ġthe Ġscaled Ġfeatures Ġas ĠArrayList < Double > ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġget Features (): ĠArrayList < Double > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġarray ListOf ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtime OfDay Scaled , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġday OfYear Scaled , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreal Temperature Scaled , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfelt Temperature Scaled , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpressure Scaled , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhum idity Scaled , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwind Speed Scaled , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcloud iness Scaled , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ* weather Encoding ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġoverwrite Ġof Ġequals () Ġneeded Ġsince Ġthere Ġare Ġobject Ġtypes Ġincluded ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġfun Ġequals ( other : ĠAny ?): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( this Ġ=== Ġother ) Ġreturn Ġtrue ĊĠĠĠĠĠĠĠ Ġif Ġ( java Class Ġ!= Ġother ?. java Class ) Ġreturn Ġfalse ĊĊĠĠĠĠĠĠĠ Ġother Ġas ĠLog Entry ĊĊĠĠĠĠĠĠĠ Ġif Ġ( time Stamp Ġ!= Ġother . time Stamp ) Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġif Ġ( selected Device Ġ!= Ġother . selected Device ) Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġif Ġ( week end Ġ!= Ġother . week end ) Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġif Ġ( time OfDay Ġ!= Ġother . time OfDay ) Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġif Ġ( time OfDay Scaled Ġ!= Ġother . time OfDay Scaled ) Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġif Ġ( day OfYear Ġ!= Ġother . day OfYear ) Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġif Ġ( day OfYear Scaled Ġ!= Ġother . day OfYear Scaled ) Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġif Ġ( real Temperature Ġ!= Ġother . real Temperature ) Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġif Ġ( real Temperature Scaled Ġ!= Ġother . real Temperature Scaled ) Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġif Ġ( f elt Temperature Ġ!= Ġother . f elt Temperature ) Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġif Ġ( f elt Temperature Scaled Ġ!= Ġother . f elt Temperature Scaled ) Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġif Ġ( pressure Ġ!= Ġother . pressure ) Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġif Ġ( pressure Scaled Ġ!= Ġother . pressure Scaled ) Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġif Ġ( humidity Ġ!= Ġother . humidity ) Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġif Ġ( humidity Scaled Ġ!= Ġother . humidity Scaled ) Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġif Ġ( wind Speed Ġ!= Ġother . wind Speed ) Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġif Ġ( wind Speed Scaled Ġ!= Ġother . wind Speed Scaled ) Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġif Ġ( cloud iness Ġ!= Ġother . cloud iness ) Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġif Ġ( cloud iness Scaled Ġ!= Ġother . cloud iness Scaled ) Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġif Ġ( weather Ġ!= Ġother . weather ) Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġif Ġ(! weather Encoding . content Equals ( other . weather Encoding )) Ġreturn Ġfalse ĊĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġoverwrite Ġof ĠhashCode () Ġneeded Ġsince Ġthere Ġare Ġobject Ġtypes Ġincluded ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġfun ĠhashCode (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġresult Ġ= Ġtime Stamp . hashCode () ĊĠĠĠĠĠĠĠ Ġresult Ġ= Ġ 3 1 Ġ* Ġresult Ġ+ Ġselected Device ĊĠĠĠĠĠĠĠ Ġresult Ġ= Ġ 3 1 Ġ* Ġresult Ġ+ Ġweekend . hashCode () ĊĠĠĠĠĠĠĠ Ġresult Ġ= Ġ 3 1 Ġ* Ġresult Ġ+ Ġtime OfDay . hashCode () ĊĠĠĠĠĠĠĠ Ġresult Ġ= Ġ 3 1 Ġ* Ġresult Ġ+ Ġtime OfDay Scaled . hashCode () ĊĠĠĠĠĠĠĠ Ġresult Ġ= Ġ 3 1 Ġ* Ġresult Ġ+ Ġday OfYear . hashCode () ĊĠĠĠĠĠĠĠ Ġresult Ġ= Ġ 3 1 Ġ* Ġresult Ġ+ Ġday OfYear Scaled . hashCode () ĊĠĠĠĠĠĠĠ Ġresult Ġ= Ġ 3 1 Ġ* Ġresult Ġ+ Ġreal Temperature . hashCode () ĊĠĠĠĠĠĠĠ Ġresult Ġ= Ġ 3 1 Ġ* Ġresult Ġ+ Ġreal Temperature Scaled . hashCode () ĊĠĠĠĠĠĠĠ Ġresult Ġ= Ġ 3 1 Ġ* Ġresult Ġ+ Ġfelt Temperature . hashCode () ĊĠĠĠĠĠĠĠ Ġresult Ġ= Ġ 3 1 Ġ* Ġresult Ġ+ Ġfelt Temperature Scaled . hashCode () ĊĠĠĠĠĠĠĠ Ġresult Ġ= Ġ 3 1 Ġ* Ġresult Ġ+ Ġpressure ĊĠĠĠĠĠĠĠ Ġresult Ġ= Ġ 3 1 Ġ* Ġresult Ġ+ Ġpressure Scaled . hashCode () ĊĠĠĠĠĠĠĠ Ġresult Ġ= Ġ 3 1 Ġ* Ġresult Ġ+ Ġhum idity . hashCode () ĊĠĠĠĠĠĠĠ Ġresult Ġ= Ġ 3 1 Ġ* Ġresult Ġ+ Ġhum idity Scaled . hashCode () ĊĠĠĠĠĠĠĠ Ġresult Ġ= Ġ 3 1 Ġ* Ġresult Ġ+ Ġwind Speed . hashCode () ĊĠĠĠĠĠĠĠ Ġresult Ġ= Ġ 3 1 Ġ* Ġresult Ġ+ Ġwind Speed Scaled . hashCode () ĊĠĠĠĠĠĠĠ Ġresult Ġ= Ġ 3 1 Ġ* Ġresult Ġ+ Ġcloud iness . hashCode () ĊĠĠĠĠĠĠĠ Ġresult Ġ= Ġ 3 1 Ġ* Ġresult Ġ+ Ġcloud iness Scaled . hashCode () ĊĠĠĠĠĠĠĠ Ġresult Ġ= Ġ 3 1 Ġ* Ġresult Ġ+ Ġweather . hashCode () ĊĠĠĠĠĠĠĠ Ġresult Ġ= Ġ 3 1 Ġ* Ġresult Ġ+ Ġweather Encoding . content HashCode () ĊĠĠĠĠĠĠĠ Ġreturn Ġresult ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġreturns Ġa Ġcsv Ġrepresentation Ġof Ġthe ĠLog Entry ĊĠĠĠĠ Ġ* Ġ@ param Ġseparator Ġseparator Ġchar Ġfor Ġcsv Ġformat ĊĠĠĠĠ Ġ* Ġ@ return Ġcsv - string Ġrepresentation Ġof Ġthis ĠLog Entry ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġget CSV String ( separator : ĠChar ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= ĠStringBuilder () ĊĠĠĠĠĠĠĠ Ġresult . append ("$ time Stamp $ separator ") ĊĠĠĠĠĠĠĠ Ġresult . append ("$ selected Device $ separator ") ĊĠĠĠĠĠĠĠ Ġresult . append ("$ week end $ separator ") ĊĠĠĠĠĠĠĠ Ġresult . append ("$ time OfDay $ separator ") ĊĠĠĠĠĠĠĠ Ġresult . append ("$ time OfDay Scaled $ separator ") ĊĠĠĠĠĠĠĠ Ġresult . append ("$ day OfYear $ separator ") ĊĠĠĠĠĠĠĠ Ġresult . append ("$ day OfYear Scaled $ separator ") ĊĠĠĠĠĠĠĠ Ġresult . append ("$ real Temperature $ separator ") ĊĠĠĠĠĠĠĠ Ġresult . append ("$ real Temperature Scaled $ separator ") ĊĠĠĠĠĠĠĠ Ġresult . append ("$ f elt Temperature $ separator ") ĊĠĠĠĠĠĠĠ Ġresult . append ("$ f elt Temperature Scaled $ separator ") ĊĠĠĠĠĠĠĠ Ġresult . append ("$ pressure $ separator ") ĊĠĠĠĠĠĠĠ Ġresult . append ("$ pressure Scaled $ separator ") ĊĠĠĠĠĠĠĠ Ġresult . append ("$ humidity $ separator ") ĊĠĠĠĠĠĠĠ Ġresult . append ("$ humidity Scaled $ separator ") ĊĠĠĠĠĠĠĠ Ġresult . append ("$ wind Speed $ separator ") ĊĠĠĠĠĠĠĠ Ġresult . append ("$ wind Speed Scaled $ separator ") ĊĠĠĠĠĠĠĠ Ġresult . append ("$ cloud iness $ separator ") ĊĠĠĠĠĠĠĠ Ġresult . append ("$ cloud iness Scaled $ separator ") ĊĠĠĠĠĠĠĠ Ġresult . append ("$ weather $ separator ") ĊĠĠĠĠĠĠĠ Ġreturn Ġresult . toString () ĊĠĠĠ Ġ} Ċ Ċ }