package Ġcom . jay r ave . f alk on . mapper Ċ Ċ import Ġcom . jay r ave . f alk on . engine . Type Ċ Ċ /** Ċ Ġ* Ġ[ Column ] Ġdefines Ġhow Ġa Ġproperty Ġof Ġa Ġtype Ġcorresponds Ġto Ġthe Ġcolumn Ġof Ġa ĠSQL Ġtable Ċ Ġ* ĠĠĠĠĠ Ġ[ T ] Ġ=> ĠTable Ġtype Ċ Ġ* ĠĠĠĠĠ Ġ[ C ] Ġ=> ĠColumn Ġtype Ċ Ġ* Ċ Ġ* Ġ[ Column ] Ġis Ġan Ġextension Ġof Ġ[ ReadOnly Column Of Table ] Ġthat Ġknows Ġhow Ġto Ġconvert Ġa Ġproperty Ċ Ġ* Ġto Ġits Ġstorage Ġform Ċ Ġ*/ Ċ interface ĠColumn < T Ġ: ĠAny , ĠC > Ġ: ĠReadOnly Column Of Table < T , ĠC > Ġ{ ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠThe Ġ[ Type ] Ġthis Ġcolumn Ġwill Ġbe Ġstored Ġas Ġin Ġthe Ġdatabase ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġval Ġdb Type : ĠType ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ` true ` Ġif Ġthis Ġcolumn Ġis Ġ( or Ġpart Ġof ) Ġthe Ġprimary Ġkey Ġof Ġthe Ġtable Ġit Ġbelongs Ġto ; ĊĠĠĠĠ Ġ* Ġ` false ` Ġotherwise ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġval Ġis Id : ĠBoolean ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠTo Ġextract Ġthe Ġproperty Ġfrom Ġthe Ġcontaining Ġobject ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġextract Property From ( t : ĠT ): ĠC ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠFrom Ġproperty Ġto Ġthe Ġform Ġit Ġwould Ġget Ġstored Ġin Ġthe Ġdatabase ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ[ property ] Ġthe Ġproperty Ġto Ġcompute Ġthe Ġstorage Ġform Ġfor ĊĠĠĠĠ Ġ* Ġ@ return Ġ- Ġhow Ġthe Ġpassed Ġin Ġ[ property ] Ġgets Ġstored Ġas ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġcompute Storage Form Of ( property : ĠC ): ĠAny ? ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠStorage Ġform Ġof Ġ[ property ] Ġis Ġcomputed Ġand Ġis Ġsent Ġto Ġ[ Data Consumer ] ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ[ property ] Ġthe Ġproperty Ġto Ġconvert Ġand Ġstore ĊĠĠĠĠ Ġ* Ġ@ param Ġdata Consumer Ġconsumer Ġthat Ġconsume s Ġthe Ġstorage Ġform ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġput Storage Form In ( property : ĠC , Ġdata Consumer : ĠData Consumer ) Ċ }