/* Ċ Ġ* ĠBSD Ġ 3 - Clause ĠLicense Ċ Ġ* Ċ Ġ* ĠCopyright Ġ 2 0 1 8 Ġ ĠS age ĠB ion etwork s . ĠAll Ġrights Ġreserved . Ċ Ġ* Ċ Ġ* ĠRedistribution Ġand Ġuse Ġin Ġsource Ġand Ġbinary Ġforms , Ġwith Ġor Ġwithout Ġmodification , Ċ Ġ* Ġare Ġpermitted Ġprovided Ġthat Ġthe Ġfollowing Ġconditions Ġare Ġmet : Ċ Ġ* Ċ Ġ* Ġ 1 . Ġ ĠRedistributions Ġof Ġsource Ġcode Ġmust Ġretain Ġthe Ġabove Ġcopyright Ġnotice , Ġthis Ċ Ġ* Ġlist Ġof Ġconditions Ġand Ġthe Ġfollowing Ġdisclaimer . Ċ Ġ* Ċ Ġ* Ġ 2 . Ġ Ġ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 . Ċ Ġ* Ċ Ġ* Ġ 3 . Ġ ĠNeither Ġthe Ġname Ġof Ġthe Ġcopyright Ġholder ( s ) Ġnor Ġthe Ġnames Ġof Ġany Ġcontributors Ċ Ġ* Ġmay Ġbe Ġused Ġto Ġendorse Ġor Ġpromote Ġproducts Ġderived Ġfrom Ġthis Ġsoftware Ġwithout Ċ Ġ* Ġspecific Ġprior Ġwritten Ġpermission . ĠNo Ġlicense Ġis Ġgranted Ġto Ġthe Ġtrade marks Ġof Ċ Ġ* Ġthe Ġcopyright Ġhold ers Ġeven Ġif Ġsuch Ġmarks Ġare Ġincluded Ġin Ġthis Ġsoftware . Ċ Ġ* Ċ Ġ* Ġ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 . sage b ion etwork s . research . mobile _ ui . show _ step . view . forms Ċ Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġandroid . view . ViewGroup Ċ import Ġorg . sage b ion etwork s . research . domain . form . Input UI Hint Ċ import Ġorg . sage b ion etwork s . research . domain . form . interfaces . Input Field Ċ import Ġorg . sage b ion etwork s . research . mobile _ ui . show _ step . view . forms . FormData Adapter . ViewHolder Ċ import Ġorg . sage b ion etwork s . research . presentation . model . form . Input Field View Ċ Ċ /** Ċ Ġ* Ġ[ Form Adapter Item ] Ġcan Ġbe Ġused Ġto Ġrepresent Ġthe Ġtype Ġof Ġthe Ġrow Ġto Ġdisplay . Ċ Ġ*/ Ċ abstract Ġclass ĠForm Adapter Item ( ĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ property Ġidentifier ĠA Ġunique Ġidentifier Ġfor Ġthe Ġitem . ĊĠĠĠĠĠĠĠĠ Ġ* ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠThis Ġidentifier Ġwill Ġbe Ġused Ġto Ġcreate Ġthe ĠitemView Type Ġof Ġthe Ġ[ RecyclerView . ViewHolder ]. ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġval Ġidentifier : ĠString , ĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ property ĠrowIndex ĠThe Ġindex Ġof Ġthis Ġitem Ġrelative Ġto Ġall Ġrows Ġin Ġthe Ġsection Ġin Ġwhich Ġthis Ġitem Ġres ides . ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġval ĠrowIndex : ĠInt , ĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ property Ġidentifier ĠA Ġunique Ġidentifier Ġfor Ġthe Ġsection Ġthis Ġitem Ġbelongs Ġto . ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġval Ġsection Identifier : ĠString ? Ġ= Ġnull , ĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ property Ġsection Index ĠThe Ġsection Ġindex Ġfor Ġthis Ġgroup . ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġval Ġsection Index : ĠInt Ġ= Ġ 0 , ĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ property ĠitemView Type Ġfor Ġthe Ġ[ RecyclerView . Adapter . getItem ViewType ] Ġfunction . ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġval ĠitemView Type : ĠInt ) Ġ{ ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ@ param Ġparent Ġ[ ViewGroup ] Ġpassed Ġfrom Ġ[ RecyclerView . Adapter . onCreate ViewHolder ] ĊĠĠĠĠ Ġ* Ġ@ return Ġthe ĠViewHolder Ġto Ġbe Ġused Ġfor Ġthis Ġ[ Form Adapter Item ] Ġin Ġthe Ġ[ RecyclerView ] ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġabstract Ġfun Ġcreate ViewHolder ( parent : ĠViewGroup ): ĠViewHolder Ċ } Ċ Ċ /** Ċ Ġ* Ġ[ Input Field Adapter Item ] Ġis Ġan Ġabstract Ġbase Ġclass Ġimplementation Ġfor Ġrepresenting Ġan Ġanswer , Ġor Ġpart Ġof Ġan Ċ Ġ* Ġanswer Ġfor Ġa Ġgiven Ġ[ Input Field ]. Ċ Ġ*/ Ċ abstract Ġclass ĠInput Field Adapter Item ( ĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ property Ġinput Field ĠThe ĠR SD Input Field Ġrepresenting Ġthis Ġtable Item . ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġval Ġinput Field : ĠInput Field View <* >, ĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ property Ġui Hint ĠThe ĠUI Ġhint Ġfor Ġthis Ġrow Ġof Ġthe Ġtable . ĠSee Ġ[ Input UI Hint ]. ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġval Ġui Hint : ĠString , ĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ property Ġidentifier Ġof Ġthe Ġitem . ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġidentifier : ĠString , ĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ param ĠitemView Type Ġif Ġnull , Ġa Ġdefault Ġone Ġbased Ġon Ġthe Ġui Hint Ġwill Ġbe Ġprovided . ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ ĠitemView Type : ĠInt ? Ġ= Ġnull , ĊĠĠĠĠĠĠĠ ĠrowIndex : ĠInt , ĊĠĠĠĠĠĠĠ Ġsection Identifier : ĠString ? Ġ= Ġnull ): ĊĊĠĠĠĠĠĠĠ ĠForm Adapter Item ( identifier , ĠrowIndex , Ġsection Identifier , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠitemView Type Ġ= Ġresolve Item ViewType ( item ViewType , Ġui Hint )) Ġ{ ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġfun Ġresolve Item ViewType ( item ViewType : ĠInt ?, Ġui Hint : ĠString ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠitemView Type ?. let Ġ{ Ġreturn Ġit Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠIf Ġthe ĠitemView Type Ġisn 't Ġpassed Ġto Ġthe Ġconstructor Ġthen Ġset Ġit Ġfrom Ġthe Ġui Ġhint . ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġui Hint . hashCode () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ@ property ĠThe Ġanswer Ġassociated Ġwith Ġthis Ġadapter Ġitem Ġcomponent . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġabstract Ġval Ġanswer : ĠAny ? Ċ } Ċ