/** Ċ Ġ* ĠDesign ed Ġand Ġdeveloped Ġby ĠA id an ĠFol le st ad Ġ(@ af ol le st ad ) Ċ Ġ* Ċ Ġ* Ġ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 Ġcom . af ol le st ad . v validator . assertion Ċ Ċ import Ġandroid . view . View Ċ import Ġcom . af ol le st ad . v validator . field . Condition Ċ Ċ /** Ġ@ author ĠA id an ĠFol le st ad Ġ(@ af ol le st ad ) Ġ*/ Ċ abstract Ġclass ĠAssertion < T , ĠA > Ġwhere ĠA Ġ: ĠAssertion < T , ĠA > Ġ{ ĊĠ Ġinternal Ġvar Ġcondition : ĠCondition ? Ġ= Ġnull ĊĠ Ġprivate Ġvar Ġdescription : ĠString ? Ġ= Ġnull ĊĊĠ Ġ/** ĠReturns Ġtrue Ġif Ġthe Ġgiven Ġview Ġpasses Ġthe Ġassertion . Ġ*/ ĊĠ Ġabstract Ġfun ĠisValid ( view : ĠT ): ĠBoolean ĊĊĠ Ġ/** ĠGets Ġa Ġuser Ġset Ġdescription Ġif Ġany , Ġfalls Ġback Ġto Ġthe Ġvalue Ġof Ġ[ default Description ]. Ġ**/ ĊĠ Ġfun Ġdescription (): ĠString Ġ= Ġdescription Ġ?: Ġdefault Description () ĊĊĠ Ġ/** ĠSets Ġa Ġcustom Ġassertion Ġdescription Ġthat Ġis Ġused Ġin Ġvalidation Ġerrors . Ġ*/ ĊĠ Ġfun Ġdescription ( value : ĠString ?): ĠA Ġ{ ĊĠĠĠ Ġthis . description Ġ= Ġvalue ĊĠĠĠ Ġ@ Suppress (" UN CHECK ED _ CAST ") ĊĠĠĠ Ġreturn Ġthis Ġas ĠA ĊĠ Ġ} ĊĊĠ Ġ/** ĠA Ġshort Ġdefault Description Ġof Ġwhat Ġthe Ġassertion Ġtests . Ġ*/ ĊĠ Ġabstract Ġfun Ġdefault Description (): ĠString ĊĊĠ Ġ/** ĠReturns Ġtrue Ġif Ġthe Ġassertion 's Ġcondition Ġreturns Ġtrue , Ġor Ġif Ġthere Ġis Ġno Ġcondition . Ġ*/ ĊĠ Ġinternal Ġfun Ġis Condition Met () Ġ= Ġcondition ?. invoke () Ġ?: Ġtrue Ċ } Ċ Ċ /** Ġ@ author ĠA id an ĠFol le st ad Ġ(@ af ol le st ad ) Ġ*/ Ċ class ĠCustom View Assertion < T >( ĊĠ Ġassertion Description : ĠString , ĊĠ Ġprivate Ġval Ġassertion : Ġ( T ) Ġ-> ĠBoolean Ċ ) Ġ: ĠAssertion < T , ĠCustom View Assertion < T >>() Ġwhere ĠT Ġ: ĠView Ġ{ ĊĠ Ġinit Ġ{ ĊĠĠĠ Ġif Ġ( assertion Description . trim (). isEmpty ()) Ġ{ ĊĠĠĠĠĠ Ġthrow ĠIllegalArgumentException (" Custom Ġassertion Ġdescriptions Ġshould Ġnot Ġbe Ġempty .") ĊĠĠĠ Ġ} ĊĠĠĠ Ġdescription ( assertion Description ) ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun ĠisValid ( view : ĠT ) Ġ= Ġassertion ( view ) ĊĊĠ Ġoverride Ġfun Ġdefault Description () Ġ= Ġ" no Ġdescription Ġset " Ċ } Ċ