/* čĊ Ġ* ĠĠĠ ĠCopyright Ġ 2 0 1 8 ĠDeep Data ĠLtd . čĊ Ġ* čĊ Ġ* ĠĠĠ ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); čĊ Ġ* ĠĠĠ Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . čĊ Ġ* ĠĠĠ ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat čĊ Ġ* čĊ Ġ* ĠĠĠĠĠĠĠ Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 čĊ Ġ* čĊ Ġ* ĠĠĠ Ġ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 Ġhu . deep data . tender base . ted xml . simp lex ml . model čĊč Ċ import Ġorg . simple framework . xml .* čĊč Ċ /** čĊ Ġ* Ġ@ author ĠZ sol t ĠJ ur Ã¡ny i čĊ Ġ*/ č Ċ abstract Ġclass ĠValue Or Value Range ( čĊĉ ĉ @ field : Attribute ( name Ġ= Ġ" CUR RE NCY ") čĊĉ ĉ var Ġcurrency : ĠCurrency ? Ġ= Ġnull , čĊčĊĉ ĉ @ field : Attribute ( name Ġ= Ġ" TYPE ", Ġrequired Ġ= Ġfalse ) čĊĉ ĉ var Ġtype : ĠValueType ? Ġ= Ġnull č Ċ ) Ġ{ čĊčĊ ĉ fun Ġas Single Values (): ĠList < Value > Ġ= čĊĉĉ ĉ if Ġ( is Single Value ()) ĠlistOf ( this Ġas ĠValue ) Ġelse Ġ{ čĊĉĉĉ ĉ val Ġr Ġ= Ġthis Ġas ĠValue Range čĊĉĉĉ ĉ listOf ( čĊĉĉĉĉĉ ĉ Value ( this . currency , Ġthis . type , Ġr . low ), čĊĉĉĉĉĉ ĉ Value ( this . currency , Ġthis . type , Ġr . high ) čĊĉĉĉ ĉ ) čĊĉĉ ĉ } čĊčĊ ĉ fun Ġas Value Range (): ĠValue Range Ġ= čĊĉĉ ĉ if Ġ( is Value Range ()) Ġthis Ġas ĠValue Range Ġelse Ġ{ čĊĉĉĉ ĉ val Ġv Ġ= Ġthis Ġas ĠValue čĊĉĉĉ ĉ Value Range ( v . currency , Ġv . type , Ġv . value , Ġv . value ) čĊĉĉ ĉ } čĊčĊ ĉ override Ġfun Ġequals ( other : ĠAny ?): ĠBoolean Ġ{ čĊĉ ĉ if Ġ( this Ġ=== Ġother ) Ġreturn Ġtrue čĊĉ ĉ if Ġ( other Ġ! is ĠValue Or Value Range ) Ġreturn Ġfalse čĊčĊĉ ĉ if Ġ( currency Ġ!= Ġother . currency ) Ġreturn Ġfalse čĊĉ ĉ if Ġ( type Ġ!= Ġother . type ) Ġreturn Ġfalse čĊčĊĉ ĉ return Ġtrue čĊ ĉ } čĊčĊ ĉ override Ġfun ĠhashCode (): ĠInt Ġ{ čĊĉ ĉ var Ġresult Ġ= Ġcurrency ?. hashCode () Ġ?: Ġ 0 čĊĉ ĉ result Ġ= Ġ 3 1 Ġ* Ġresult Ġ+ Ġ( type ?. hashCode () Ġ?: Ġ 0 ) čĊĉ ĉ return Ġresult čĊ ĉ } čĊčĊ ĉ fun Ġis Single Value () Ġ= Ġthis Ġis ĠValue čĊčĊ ĉ fun Ġis Value Range () Ġ= Ġthis Ġis ĠValue Range čĊč Ċ } čĊ