package Ġcontacts . core . entities Ċ Ċ import Ġkotlinx . parcel ize . Parcel ize Ċ Ċ /** Ċ Ġ* ĠNotes Ġabout Ġthe Ġcontact . Ċ Ġ* Ċ Ġ* ĠA ĠRaw Contact Ġmay Ġhave Ġ 0 Ġor Ġ 1 Ġentry Ġof Ġthis Ġdata Ġkind . Ċ Ġ*/ Ċ sealed Ġinterface ĠNote Entity Ġ: ĠData Entity Ġ{ ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠThe Ġnote . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġval Ġnote : ĠString ? ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠThe Ġ[ note ]. ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ// ĠDeleg ated Ġproperties Ġare Ġnot Ġallowed Ġon Ġinterfaces Ġ=( ĊĠĠĠ Ġ// Ġoverride Ġvar Ġprimary Value : ĠString ? Ġby Ġthis :: note ĊĠĠĠ Ġoverride Ġval Ġprimary Value : ĠString ? ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġnote ĊĊĠĠĠ Ġoverride Ġval ĠmimeType : ĠMime Type ĊĠĠĠĠĠĠĠ Ġget () Ġ= ĠMime Type . Note ĊĊĠĠĠ Ġoverride Ġval Ġis Blank : ĠBoolean ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġproperties Are All Null Or Blank ( note ) ĊĊĠĠĠ Ġ// ĠWe Ġhave Ġto Ġcast Ġthe Ġreturn Ġtype Ġbecause Ġwe Ġare Ġnot Ġusing Ġrecursive Ġgeneric Ġtypes . ĊĠĠĠ Ġoverride Ġfun Ġred acted Copy (): ĠNote Entity Ċ } Ċ Ċ /* ĠDEV ĠNOT ES : ĠNe cessary ĠAb stractions Ċ Ġ* Ċ Ġ* ĠWe Ġonly Ġcreate Ġab stractions Ġwhen Ġthey Ġare Ġnecessary ! Ċ Ġ* Ċ Ġ* ĠA part Ġfrom ĠNote Entity , Ġthere Ġis Ġonly Ġone Ġinterface Ġthat Ġextends Ġit ; ĠMutable Note Entity . Ċ Ġ* Ċ Ġ* ĠThe ĠMutable Note Entity Ġinterface Ġis Ġused Ġfor Ġlibrary Ġconstructs Ġthat Ġrequire Ġan ĠNote Entity Ċ Ġ* Ġthat Ġcan Ġbe Ġmut ated Ġwhether Ġit Ġis Ġalready Ġinserted Ġin Ġthe Ġdatabase Ġor Ġnot . ĠThere Ġare Ġtwo Ċ Ġ* Ġvariants Ġof Ġthis ; ĠMutable Note Ġand ĠNew Note . ĠWith Ġthis , Ġwe Ġcan Ġcreate Ġconstructs Ġthat Ġcan Ċ Ġ* Ġkeep Ġa Ġreference Ġto ĠMutable Note ( s ) Ġor ĠNew Note ( s ) Ġthrough Ġthe ĠMutable Note Entity Ċ Ġ* Ġabstraction / facade . Ċ Ġ* Ċ Ġ* ĠThis Ġis Ġwhy Ġthere Ġare Ġno Ġinterfaces Ġfor ĠNew Note Entity , ĠExisting Note Entity , Ġand Ċ Ġ* ĠImmutable Note Entity . ĠThere Ġare Ġcurrently Ġno Ġlibrary Ġfunctions Ġor Ġconstructs Ġthat Ġrequire Ġthem . Ċ Ġ* Ċ Ġ* ĠPlease Ġupdate Ġthis Ġdocumentation Ġif Ġnew Ġab stractions Ġare Ġcreated . Ċ Ġ*/ Ċ Ċ /** Ċ Ġ* ĠA Ġmutable Ġ[ Note Entity ]. Ġ` Ċ Ġ*/ Ċ sealed Ġinterface ĠMutable Note Entity Ġ: ĠNote Entity , ĠMutable Data Entity Ġ{ ĊĊĠĠĠ Ġoverride Ġvar Ġnote : ĠString ? ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠThe Ġ[ note ]. ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ// ĠDeleg ated Ġproperties Ġare Ġnot Ġallowed Ġon Ġinterfaces Ġ=( ĊĠĠĠ Ġ// Ġoverride Ġvar Ġprimary Value : ĠString ? Ġby Ġthis :: note ĊĠĠĠ Ġoverride Ġvar Ġprimary Value : ĠString ? ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġnote ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnote Ġ= Ġvalue ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ// ĠWe Ġhave Ġto Ġcast Ġthe Ġreturn Ġtype Ġbecause Ġwe Ġare Ġnot Ġusing Ġrecursive Ġgeneric Ġtypes . ĊĠĠĠ Ġoverride Ġfun Ġred acted Copy (): ĠMutable Note Entity Ċ } Ċ Ċ /** Ċ Ġ* ĠAn Ġexisting Ġimmutable Ġ[ Note Entity ]. Ċ Ġ*/ Ċ @ Parcel ize Ċ data Ġclass ĠNote Ġinternal Ġconstructor ( ĊĊĠĠĠ Ġoverride Ġval Ġid : ĠLong , ĊĠĠĠ Ġoverride Ġval Ġraw Contact Id : ĠLong , ĊĠĠĠ Ġoverride Ġval Ġcontact Id : ĠLong , ĊĊĠĠĠ Ġoverride Ġval Ġis Primary : ĠBoolean , ĊĠĠĠ Ġoverride Ġval Ġis Super Primary : ĠBoolean , ĊĊĠĠĠ Ġoverride Ġval Ġnote : ĠString ?, ĊĊĠĠĠ Ġoverride Ġval Ġis Red acted : ĠBoolean Ċ Ċ ) Ġ: ĠNote Entity , ĠExisting Data Entity , ĠImmutable Data Entity With Mutable Type < Mutable Note > Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġmutable Copy () Ġ= ĠMutable Note ( ĊĠĠĠĠĠĠĠ Ġid Ġ= Ġid , ĊĠĠĠĠĠĠĠ Ġraw Contact Id Ġ= Ġraw Contact Id , ĊĠĠĠĠĠĠĠ Ġcontact Id Ġ= Ġcontact Id , ĊĊĠĠĠĠĠĠĠ Ġis Primary Ġ= Ġis Primary , ĊĠĠĠĠĠĠĠ Ġis Super Primary Ġ= Ġis Super Primary , ĊĊĠĠĠĠĠĠĠ Ġnote Ġ= Ġnote , ĊĊĠĠĠĠĠĠĠ Ġis Red acted Ġ= Ġis Red acted ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġoverride Ġfun Ġred acted Copy () Ġ= Ġcopy ( ĊĠĠĠĠĠĠĠ Ġis Red acted Ġ= Ġtrue , ĊĊĠĠĠĠĠĠĠ Ġnote Ġ= Ġnote ?. red act () ĊĠĠĠ Ġ) Ċ } Ċ Ċ /** Ċ Ġ* ĠAn Ġexisting Ġmutable Ġ[ Note Entity ]. Ċ Ġ*/ Ċ @ Parcel ize Ċ data Ġclass ĠMutable Note Ġinternal Ġconstructor ( ĊĊĠĠĠ Ġoverride Ġval Ġid : ĠLong , ĊĠĠĠ Ġoverride Ġval Ġraw Contact Id : ĠLong , ĊĠĠĠ Ġoverride Ġval Ġcontact Id : ĠLong , ĊĊĠĠĠ Ġoverride Ġval Ġis Primary : ĠBoolean , ĊĠĠĠ Ġoverride Ġval Ġis Super Primary : ĠBoolean , ĊĊĠĠĠ Ġoverride Ġvar Ġnote : ĠString ?, ĊĊĠĠĠ Ġoverride Ġval Ġis Red acted : ĠBoolean Ċ Ċ ) Ġ: ĠNote Entity , ĠExisting Data Entity , ĠMutable Note Entity Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġred acted Copy () Ġ= Ġcopy ( ĊĠĠĠĠĠĠĠ Ġis Red acted Ġ= Ġtrue , ĊĊĠĠĠĠĠĠĠ Ġnote Ġ= Ġnote ?. red act () ĊĠĠĠ Ġ) Ċ } Ċ Ċ /** Ċ Ġ* ĠA Ġnew Ġmutable Ġ[ Note Entity ]. Ċ Ġ*/ Ċ @ Parcel ize Ċ data Ġclass ĠNew Note Ġ@ Jvm Over loads Ġconstructor ( ĊĊĠĠĠ Ġoverride Ġvar Ġnote : ĠString ? Ġ= Ġnull , ĊĊĠĠĠ Ġoverride Ġval Ġis Red acted : ĠBoolean Ġ= Ġfalse Ċ Ċ ) Ġ: ĠNote Entity , ĠNew Data Entity , ĠMutable Note Entity Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġred acted Copy () Ġ= Ġcopy ( ĊĠĠĠĠĠĠĠ Ġis Red acted Ġ= Ġtrue , ĊĊĠĠĠĠĠĠĠ Ġnote Ġ= Ġnote ?. red act () ĊĠĠĠ Ġ) Ċ }