package Ġtv . ab ema . flag fit Ċ Ċ import Ġkotlin . reflect . K Class Ċ Ċ class ĠFlag Type Ġ{ ĊĠ Ġ/** ĊĠĠ Ġ* Ġ> ĠRelease ĠToggle s Ġallow Ġincomplete Ġand Ġun - tested Ġcode paths Ġto Ġbe Ġsh ipped Ġto Ġproduction Ġas Ġlatent Ġcode Ġwhich Ġmay Ġnever Ġbe Ġturned Ġon . ĊĠĠ Ġ* ĊĠĠ Ġ* Ġ[ Release ĠToggle s ]( https :// mart inf ow ler . com / articles / feature - toggle s . html # Release Toggle s ) ĊĠĠ Ġ*/ ĊĠ Ġannotation Ġclass ĠWork InProgress ĊĊĠ Ġ/** ĊĠĠ Ġ* Ġ> ĠExperiment ĠToggle s Ġare Ġused Ġto Ġperform Ġmult ivariate Ġor ĠA / B Ġtesting . ĊĠĠ Ġ* ĊĠĠ Ġ* Ġ[ Experiment ĠToggle s ]( https :// mart inf ow ler . com / articles / feature - toggle s . html # Experiment Toggle s ) ĊĠĠ Ġ*/ ĊĠ Ġannotation Ġclass ĠExperiment ĊĊĠ Ġ/** ĊĠĠ Ġ* Ġ> ĠThese Ġflags Ġare Ġused Ġto Ġcontrol Ġoperational Ġaspects Ġof Ġour Ġsystem 's Ġbehavior . ĊĠĠ Ġ* ĊĠĠ Ġ* Ġ[ Ops ĠToggle s ]( https :// mart inf ow ler . com / articles / feature - toggle s . html # Ops Toggle s ) ĊĠĠ Ġ*/ ĊĠ Ġannotation Ġclass ĠOps ĊĊĠ Ġ/** ĊĠĠ Ġ* Ġ> ĠThese Ġflags Ġare Ġused Ġto Ġchange Ġthe Ġfeatures Ġor Ġproduct Ġexperience Ġthat Ġcertain Ġusers Ġreceive . ĊĠĠ Ġ* ĊĠĠ Ġ* Ġ[ Permission ing ĠToggle s ]( https :// mart inf ow ler . com / articles / feature - toggle s . html # Permission ing Toggle s ) ĊĠĠ Ġ*/ ĊĠ Ġannotation Ġclass ĠPermission ĊĊĠ Ġclass ĠWork InProgress Annotation Adapter Ġ: ĠAnnotation Adapter < Work InProgress > Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġcan Handle ( ĊĠĠĠĠĠ Ġannotation : ĠWork InProgress , ĊĠĠĠĠĠ Ġenv : ĠMap < String , ĠAny > ĊĠĠĠ Ġ): ĠBoolean Ġ{ ĊĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġflag Source Class ( annotation : ĠWork InProgress ): ĠK Class < Just Flag Source . False > Ġ{ ĊĠĠĠĠĠ Ġreturn ĠJust Flag Source . False :: class ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġannotation Class (): ĠK Class < Work InProgress > Ġ{ ĊĠĠĠĠĠ Ġreturn ĠWork InProgress :: class ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġclass ĠOps Annotation Adapter Ġ: ĠAnnotation Adapter < Ops > Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġcan Handle ( ĊĠĠĠĠĠ Ġannotation : ĠOps , ĊĠĠĠĠĠ Ġenv : ĠMap < String , ĠAny > ĊĠĠĠ Ġ): ĠBoolean Ġ{ ĊĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġflag Source Class ( annotation : ĠOps ): ĠK Class < Ops Flag Source > Ġ{ ĊĠĠĠĠĠ Ġreturn ĠOps Flag Source :: class ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġannotation Class (): ĠK Class < Ops > Ġ{ ĊĠĠĠĠĠ Ġreturn ĠOps :: class ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġclass ĠExperiment Annotation Adapter Ġ: ĠAnnotation Adapter < Experiment > Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġcan Handle ( ĊĠĠĠĠĠ Ġannotation : ĠExperiment , ĊĠĠĠĠĠ Ġenv : ĠMap < String , ĠAny > ĊĠĠĠ Ġ): ĠBoolean Ġ{ ĊĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġflag Source Class ( annotation : ĠExperiment ): ĠK Class < Experiment Flag Source > Ġ{ ĊĠĠĠĠĠ Ġreturn ĠExperiment Flag Source :: class ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġannotation Class (): ĠK Class < Experiment > Ġ{ ĊĠĠĠĠĠ Ġreturn ĠExperiment :: class ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġclass ĠPermission Annotation Adapter Ġ: ĠAnnotation Adapter < Permission > Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġcan Handle ( ĊĠĠĠĠĠ Ġannotation : ĠPermission , ĊĠĠĠĠĠ Ġenv : ĠMap < String , ĠAny > ĊĠĠĠ Ġ): ĠBoolean Ġ{ ĊĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġflag Source Class ( annotation : ĠPermission ): ĠK Class < Permission Flag Source > Ġ{ ĊĠĠĠĠĠ Ġreturn ĠPermission Flag Source :: class ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġannotation Class (): ĠK Class < Permission > Ġ{ ĊĠĠĠĠĠ Ġreturn ĠPermission :: class ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠ Ġfun Ġannotation Adapters () Ġ= ĠlistOf ( ĊĠĠĠĠĠ ĠWork InProgress Annotation Adapter (), ĊĠĠĠĠĠ ĠExperiment Annotation Adapter (), ĊĠĠĠĠĠ ĠOps Annotation Adapter (), ĊĠĠĠĠĠ ĠPermission Annotation Adapter () ĊĠĠĠ Ġ) ĊĠ Ġ} Ċ } Ċ