/* Ċ Ġ* ĠCopyright Ġ 2 0 1 9 ĠK or bin ian ĠM oser Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠBSD Ġ 3 - Clause ĠLicense Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* Ġhttps :// opensource . org / licenses / BSD - 3 - Clause Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ Ċ package Ġcom . kor bi . simple budget . logic . model Ċ Ċ import Ġorg . th reet en . bp . LocalDate Ċ Ċ data Ġclass ĠExp ense ( var Ġid : ĠInt , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġdescription : ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġcost : ĠLong , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġdate : ĠLocalDate , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġcategory : ĠCategory , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġinterval : ĠInt ) Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġequals ( other : ĠAny ?): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġother Ġas ĠExp ense ĊĠĠĠĠĠĠĠ Ġreturn Ġ( this . category Ġ== Ġother . category Ġ&& Ġthis . cost Ġ== Ġother . cost Ġ&& ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis . description Ġ== Ġother . description Ġ&& Ġthis . date Ġ== Ġother . date Ġ&& ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis . interval Ġ== Ġother . interval ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// Ġis Ġused Ġto Ġdetermine Ġif Ġexp enses Ġalready Ġexist Ġwhen Ġimporting Ġdata ĊĠĠĠ Ġfun Ġis Duplicate ( other : ĠExp ense ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġ( this . description Ġ== Ġother . description Ġ&& Ġthis . cost Ġ== Ġother . cost Ġ&& ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis . date Ġ== Ġother . date Ġ&& Ġthis . category . icon Ġ== Ġother . category . icon ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠhashCode (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġresult Ġ= Ġid ĊĠĠĠĠĠĠĠ Ġresult Ġ= Ġ 3 1 Ġ* Ġresult Ġ+ Ġdescription . hashCode () ĊĠĠĠĠĠĠĠ Ġresult Ġ= Ġ 3 1 Ġ* Ġ( result Ġ+ Ġcost ). toInt () ĊĠĠĠĠĠĠĠ Ġresult Ġ= Ġ 3 1 Ġ* Ġresult Ġ+ Ġdate . hashCode () ĊĠĠĠĠĠĠĠ Ġresult Ġ= Ġ 3 1 Ġ* Ġresult Ġ+ Ġcategory . hashCode () ĊĠĠĠĠĠĠĠ Ġresult Ġ= Ġ 3 1 Ġ* Ġresult Ġ+ Ġinterval ĊĠĠĠĠĠĠĠ Ġreturn Ġresult ĊĠĠĠ Ġ} Ċ }