/* čĊ Ġ* Ġ ĠCopyright Ġ( c ) Ġ 2 0 0 4 - 2 0 2 1 , ĠUniversity Ġof ĠOs lo čĊ Ġ* Ġ ĠAll Ġrights Ġreserved . čĊ Ġ* čĊ Ġ* Ġ ĠRedistribution Ġand Ġuse Ġin Ġsource Ġand Ġbinary Ġforms , Ġwith Ġor Ġwithout čĊ Ġ* Ġ Ġmodification , Ġare Ġpermitted Ġprovided Ġthat Ġthe Ġfollowing Ġconditions Ġare Ġmet : čĊ Ġ* Ġ ĠRedistributions Ġof Ġsource Ġcode Ġmust Ġretain Ġthe Ġabove Ġcopyright Ġnotice , Ġthis čĊ Ġ* Ġ Ġlist Ġof Ġconditions Ġand Ġthe Ġfollowing Ġdisclaimer . čĊ Ġ* čĊ Ġ* Ġ ĠRedistributions Ġin Ġbinary Ġform Ġmust Ġreproduce Ġthe Ġabove Ġcopyright Ġnotice , čĊ Ġ* Ġ Ġthis Ġlist Ġof Ġconditions Ġand Ġthe Ġfollowing Ġdisclaimer Ġin Ġthe Ġdocumentation čĊ Ġ* Ġ Ġand / or Ġother Ġmaterials Ġprovided Ġwith Ġthe Ġdistribution . čĊ Ġ* Ġ ĠNeither Ġthe Ġname Ġof Ġthe ĠH ISP Ġproject Ġnor Ġthe Ġnames Ġof Ġits Ġcontributors Ġmay čĊ Ġ* Ġ Ġbe Ġused Ġto Ġendorse Ġor Ġpromote Ġproducts Ġderived Ġfrom Ġthis Ġsoftware Ġwithout čĊ Ġ* Ġ Ġspecific Ġprior Ġwritten Ġpermission . čĊ Ġ* čĊ Ġ* Ġ ĠTHIS ĠSOFTWARE ĠIS ĠPROVIDED ĠBY ĠTHE ĠCOPYRIGHT ĠHOLDERS ĠAND ĠCONTRIBUTORS Ġ" AS ĠIS " ĠAND čĊ Ġ* Ġ ĠANY ĠEXPRESS ĠOR ĠIMPLIED ĠWARRANTIES , ĠINCLUDING , ĠBUT ĠNOT ĠLIMITED ĠTO , ĠTHE ĠIMPLIED čĊ Ġ* Ġ ĠWARRANTIES ĠOF ĠMERCHANTABILITY ĠAND ĠFITNESS ĠFOR ĠA ĠPARTICULAR ĠPURPOSE ĠARE čĊ Ġ* Ġ ĠDISCLAIMED . ĠIN ĠNO ĠEVENT ĠSHALL ĠTHE ĠCOPYRIGHT ĠOWNER ĠOR ĠCONTRIBUTORS ĠBE ĠLIABLE ĠFOR čĊ Ġ* Ġ ĠANY ĠDIRECT , ĠINDIRECT , ĠINCIDENTAL , ĠSPECIAL , ĠEXEMPLARY , ĠOR ĠCONSEQUENTIAL ĠDAMAGES čĊ Ġ* Ġ Ġ( INCLUDING , ĠBUT ĠNOT ĠLIMITED ĠTO , ĠPROCUREMENT ĠOF ĠSUBSTITUTE ĠGOODS ĠOR ĠSERVICES ; čĊ Ġ* Ġ ĠLOSS ĠOF ĠUSE , ĠDATA , ĠOR ĠPROFITS ; ĠOR ĠBUSINESS ĠINTERRUPTION ) ĠHOWEVER ĠCAUSED ĠAND ĠON čĊ Ġ* Ġ ĠANY ĠTHEORY ĠOF ĠLIABILITY , ĠWHETHER ĠIN ĠCONTRACT , ĠSTRICT ĠLIABILITY , ĠOR ĠTORT čĊ Ġ* Ġ Ġ( INCLUDING ĠNEGLIGENCE ĠOR ĠOTHERWISE ) ĠARISING ĠIN ĠANY ĠWAY ĠOUT ĠOF ĠTHE ĠUSE ĠOF ĠTHIS čĊ Ġ* Ġ ĠSOFTWARE , ĠEVEN ĠIF ĠADVISED ĠOF ĠTHE ĠPOSSIBILITY ĠOF ĠSUCH ĠDAMAGE . čĊ Ġ*/ č Ċ package Ġorg . h isp . dh is . android . core . common čĊč Ċ import Ġjava . util .* č Ċ import Ġorg . h isp . dh is . android . core . common . value type . validation . validators .* č Ċ import Ġorg . h isp . dh is . android . core . organisation unit . Organ isation Unit č Ċ import Ġorg . h isp . dh is . android . core . tracked entity . Tracked Entity Instance čĊč Ċ enum Ġclass ĠValueType ( java Class : ĠClass <* >, Ġval Ġvalidator : ĠValueType Validator <* >) Ġ{ čĊĠĠĠ ĠTEXT ( String :: class . java , ĠText Validator ), čĊĠĠĠ ĠLONG _ TEXT ( String :: class . java , ĠLong Text Validator ), čĊĠĠĠ ĠLETTER ( String :: class . java , ĠLetter Validator ), čĊĠĠĠ ĠBOOLEAN ( Boolean :: class . java , ĠBoolean Validator ), čĊĠĠĠ ĠTRUE _ ONLY ( Boolean :: class . java , ĠTrue Only Validator ), čĊĠĠĠ ĠDATE ( Date :: class . java , ĠDate Validator ), čĊĠĠĠ ĠDAT ETIME ( Date :: class . java , ĠDateTime Validator ), čĊĠĠĠ ĠTIME ( String :: class . java , ĠTime Validator ), čĊĠĠĠ ĠNUMBER ( Double :: class . java , ĠNumber Validator ), čĊĠĠĠ ĠUNIT _ INTERVAL ( Double :: class . java , ĠUnit Interval Validator ), čĊĠĠĠ ĠPER CENT AGE ( Double :: class . java , ĠPer centage Validator ), čĊĠĠĠ ĠINTEGER ( Int :: class . java , ĠInteger Validator ), čĊĠĠĠ ĠINTEGER _ POSITIVE ( Int :: class . java , ĠInteger Positive Validator ), čĊĠĠĠ ĠINTEGER _ NEGATIVE ( Int :: class . java , ĠInteger Negative Validator ), čĊĠĠĠ ĠINTEGER _ ZERO _ OR _ POSITIVE ( Int :: class . java , ĠInteger Zero Or Positive Validator ), čĊĠĠĠ ĠFILE _ RESOURCE ( String :: class . java , ĠU id Validator ), čĊĠĠĠ ĠCO ORD IN ATE ( String :: class . java , ĠCoordinate Validator ), čĊĠĠĠ ĠPH ONE _ NUMBER ( String :: class . java , ĠPhone Number Validator ), čĊĠĠĠ ĠE MAIL ( String :: class . java , ĠEmail Validator ), čĊĠĠĠ ĠUSER NAME ( String :: class . java , ĠText Validator ), čĊĠĠĠ ĠOR GAN IS ATION _ UNIT ( Organ isation Unit :: class . java , ĠU id Validator ), čĊĠĠĠ ĠTR ACK ER _ ASS OCI ATE ( Tracked Entity Instance :: class . java , ĠU id Validator ), čĊĠĠĠ ĠA GE ( Date :: class . java , ĠDate Validator ), čĊĠĠĠ ĠURL ( String :: class . java , ĠText Validator ), čĊĠĠĠ ĠIMAGE ( String :: class . java , ĠU id Validator ); čĊčĊĠĠĠ Ġval Ġis Integer : ĠBoolean čĊĠĠĠĠĠĠĠ Ġget () Ġ= ĠINTEGER _ TYPES . contains ( this ) čĊĠĠĠ Ġval Ġis Numeric : ĠBoolean čĊĠĠĠĠĠĠĠ Ġget () Ġ= ĠNUM ERIC _ TYPES . contains ( this ) čĊĠĠĠ Ġval Ġis Boolean : ĠBoolean čĊĠĠĠĠĠĠĠ Ġget () Ġ= ĠBOOLEAN _ TYPES . contains ( this ) čĊĠĠĠ Ġval Ġis Text : ĠBoolean čĊĠĠĠĠĠĠĠ Ġget () Ġ= ĠTEXT _ TYPES . contains ( this ) čĊĠĠĠ Ġval Ġis Date : ĠBoolean čĊĠĠĠĠĠĠĠ Ġget () Ġ= ĠDATE _ TYPES . contains ( this ) čĊĠĠĠ Ġval Ġis File : ĠBoolean čĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġthis Ġ== ĠFILE _ RESOURCE čĊĠĠĠ Ġval Ġis Coordinate : ĠBoolean čĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġthis Ġ== ĠCO ORD IN ATE čĊčĊĠĠĠ Ġcompanion Ġobject Ġ{ čĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠINTEGER _ TYPES : ĠSet < ValueType > Ġ= čĊĠĠĠĠĠĠĠĠĠĠĠ ĠHashSet ( listOf ( INTEGER , ĠINTEGER _ POSITIVE , ĠINTEGER _ NEGATIVE , ĠINTEGER _ ZERO _ OR _ POSITIVE )) čĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠNUM ERIC _ TYPES : ĠSet < ValueType > Ġ= čĊĠĠĠĠĠĠĠĠĠĠĠ ĠHashSet ( čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf ( čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠINTEGER , ĠNUMBER , ĠINTEGER _ POSITIVE , ĠINTEGER _ NEGATIVE , ĠINTEGER _ ZERO _ OR _ POSITIVE , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠUNIT _ INTERVAL , ĠPER CENT AGE čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) čĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠBOOLEAN _ TYPES : ĠSet < ValueType > Ġ= ĠHashSet ( listOf ( BOOLEAN , ĠTRUE _ ONLY )) čĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠTEXT _ TYPES : ĠSet < ValueType > Ġ= ĠHashSet ( listOf ( TEXT , ĠLONG _ TEXT , ĠLETTER , ĠCO ORD IN ATE , ĠTIME , ĠIMAGE )) čĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠDATE _ TYPES : ĠSet < ValueType > Ġ= ĠHashSet ( listOf ( DATE , ĠDAT ETIME )) čĊĠĠĠ Ġ} č Ċ } čĊ