/* Ċ Ġ* ĠCopyright Ġ( c ) Ġ 2 0 2 1 ĠD uck Duck Go Ċ Ġ* Ċ Ġ* Ġ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 . duck duck go . feature . toggle s . api Ċ Ċ /** Ċ Ġ* ĠAny Ġfeature Ġtoggle s Ġimplemented Ġin Ġany Ġmodule Ġshould Ġimplement Ġ[ Feature Toggle ] Ċ Ġ*/ Ċ interface ĠFeature Toggle Ġ{ ĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠThis Ġmethod Ġtakes Ġa Ġ[ feature Name ] Ġand Ġoptionally Ġa Ġdefault Ġvalue . ĊĠĠĠĠ Ġ* Ġ@ return Ġ` true ` Ġif Ġthe Ġfeature Ġis Ġenabled , Ġ` false ` Ġif Ġis Ġnot Ġand Ġ` null ` Ġif Ġthe Ġfeature Ġdoes Ġnot Ġexist . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġis Feature Enabled ( feature Name : ĠFeature Name , ĠdefaultValue : ĠBoolean Ġ= Ġtrue ): ĠBoolean ? Ċ } Ċ Ċ /** Ċ Ġ* ĠEach Ġfeature Ġtoggle Ġcreated Ġneeds Ġa Ġ[ Feature Name ] Ġwhich Ġcan Ġbe Ġimplemented Ġusing Ġthis Ġinterface Ċ Ġ*/ Ċ interface ĠFeature Name Ġ{ ĊĠĠĠ Ġval Ġvalue : ĠString Ċ } Ċ