package Ġio . hol unda . decision . model . api . definition Ċ Ċ import Ġio . hol unda . decision . model . api . data .* Ċ import Ġjava . util .* Ċ Ċ /** Ċ Ġ* ĠInput ĠDefinitions Ġdeclare Ġkey Ġand Ġtype Ġ( and Ġan Ġoptional Ġlabel ) Ġfor Ġinput Ġcolumns . Ċ Ġ* ĠThese Ġare Ġused Ġa ) Ġdefine Ġthe Ġdecision Ġtable Ġcolumns Ġand Ġb ) Ġto Ġpass Ġvariables Ġduring Ġevaluation . Ċ Ġ* Ċ Ġ* ĠThe Ġconcrete Ġinput Definitions Ġare Ġdefined Ġas Ġsealed - sub classes , Ġbecause Ġwe Ġneed Ġto Ġlimit Ġthe Ġgeneric Ġtype Ġparameter Ġ` T ` Ċ Ġ* Ġto Ġthe Ġ 6 Ġallowed Ġvalues : Ġstring , Ġboolean , Ġinteger , Ġlong , Ġdouble , Ġdate . Ċ Ġ*/ Ċ sealed Ġclass ĠInput Definition < T Ġ: ĠAny >( override Ġval Ġkey : ĠString , Ġoverride Ġval Ġlabel : ĠString , Ġoverride Ġval ĠdataType : ĠDataType < T >) Ġ: ĠColumn Definition < T > Ġ{ ĊĠ Ġabstract Ġfun Ġto Output Definition (): ĠOutput Definition < T > Ċ } Ċ Ċ data Ġclass ĠString Input Definition ( override Ġval Ġkey : ĠString , Ġoverride Ġval Ġlabel : ĠString ) Ġ: ĠInput Definition < String >( key , Ġlabel , ĠString DataType ) Ġ{ ĊĠ Ġoverride Ġfun Ġto Output Definition (): ĠString Output Definition Ġ= ĠString Output Definition ( key , Ġlabel ) Ċ } Ċ Ċ data Ġclass ĠBoolean Input Definition ( override Ġval Ġkey : ĠString , Ġoverride Ġval Ġlabel : ĠString ) Ġ: ĠInput Definition < Boolean >( key , Ġlabel , ĠBoolean DataType ) Ġ{ ĊĠ Ġoverride Ġfun Ġto Output Definition (): ĠBoolean Output Definition Ġ= ĠBoolean Output Definition ( key , Ġlabel ) Ċ } Ċ Ċ sealed Ġclass ĠNumber Input Definition < T Ġ: ĠNumber >( key : ĠString , Ġlabel : ĠString , ĠdataType : ĠNumber DataType < T >) Ġ: ĠInput Definition < T >( key , Ġlabel , ĠdataType ) Ċ Ċ data Ġclass ĠInteger Input Definition ( override Ġval Ġkey : ĠString , Ġoverride Ġval Ġlabel : ĠString ) Ġ: ĠNumber Input Definition < Int >( key , Ġlabel , ĠInteger DataType ) Ġ{ ĊĠ Ġoverride Ġfun Ġto Output Definition (): ĠInteger Output Definition Ġ= ĠInteger Output Definition ( key , Ġlabel ) Ċ } Ċ Ċ data Ġclass ĠLong Input Definition ( override Ġval Ġkey : ĠString , Ġoverride Ġval Ġlabel : ĠString ) Ġ: ĠNumber Input Definition < Long >( key , Ġlabel , ĠLong DataType ) Ġ{ ĊĠ Ġoverride Ġfun Ġto Output Definition (): ĠLong Output Definition Ġ= ĠLong Output Definition ( key , Ġlabel ) Ċ } Ċ Ċ data Ġclass ĠDouble Input Definition ( override Ġval Ġkey : ĠString , Ġoverride Ġval Ġlabel : ĠString ) Ġ: ĠNumber Input Definition < Double >( key , Ġlabel , ĠDouble DataType ) Ġ{ ĊĠ Ġoverride Ġfun Ġto Output Definition (): ĠDouble Output Definition Ġ= ĠDouble Output Definition ( key , Ġlabel ) Ċ } Ċ Ċ data Ġclass ĠDate Input Definition ( override Ġval Ġkey : ĠString , Ġoverride Ġval Ġlabel : ĠString ) Ġ: ĠInput Definition < Date >( key , Ġlabel , ĠDate DataType ) Ġ{ ĊĠ Ġoverride Ġfun Ġto Output Definition (): ĠDate Output Definition Ġ= ĠDate Output Definition ( key , Ġlabel ) Ċ } Ċ