/* Ċ Ġ* ĠCopyright Ġ 2 0 2 1 ĠCouch base , ĠInc . Ċ Ġ* Ċ Ġ* Ġ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 . couch base . client . kotlin . kv Ċ Ċ import Ġcom . couch base . client . core . msg . kv . Sub doc Command Type Ċ import Ġcom . couch base . client . core . msg . kv . Sub doc GetRequest Ċ import Ġcom . couch base . client . kotlin . annotations . Volatile C ouch base Api Ċ import Ġcom . couch base . client . kotlin . kv . internal . Lookup In Macro Ċ import Ġcom . couch base . client . kotlin . samples . sub doc Lookup Ċ Ċ public Ġclass ĠSub doc Ġinternal Ġconstructor ( ĊĠĠĠ Ġpublic Ġval Ġpath : ĠString , ĊĠĠĠ Ġpublic Ġval Ġx attr : ĠBoolean , ĊĠĠĠ Ġinternal Ġval Ġspec : ĠLookup In Spec , ĊĠĠĠ Ġinternal Ġval Ġindex : ĠInt , Ċ ) Ġ{ ĊĠĠĠ Ġpublic Ġfun Ġcontent ( result : ĠLookup In Result ): ĠByteArray Ġ= Ġwith ( result ) Ġ{ Ġcontent Ġ} ĊĠĠĠ Ġpublic Ġinline Ġfun Ġ< re ified ĠT > Ġcontent As ( result : ĠLookup In Result ): ĠT Ġ= Ġwith ( result ) Ġ{ Ġcontent As () Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠtoString (): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġ" Sub doc ( path ='$ path ', Ġx attr =$ x attr )" ĊĠĠĠ Ġ} Ċ } Ċ Ċ public Ġclass ĠSub doc Count Ġinternal Ġconstructor ( ĊĠĠĠ Ġpublic Ġval Ġpath : ĠString , ĊĠĠĠ Ġpublic Ġval Ġx attr : ĠBoolean , ĊĠĠĠ Ġinternal Ġval Ġspec : ĠLookup In Spec , ĊĠĠĠ Ġinternal Ġval Ġindex : ĠInt , Ċ ) Ġ{ ĊĠĠĠ Ġpublic Ġfun Ġget ( result : ĠLookup In Result ): ĠInt Ġ= Ġwith ( result ) Ġ{ Ġvalue Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠtoString (): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġ" Sub doc Count ( path ='$ path ', Ġx attr =$ x attr )" ĊĠĠĠ Ġ} Ċ } Ċ Ċ public Ġclass ĠSub doc Exists Ġinternal Ġconstructor ( ĊĠĠĠ Ġpublic Ġval Ġpath : ĠString , ĊĠĠĠ Ġpublic Ġval Ġx attr : ĠBoolean , ĊĠĠĠ Ġinternal Ġval Ġspec : ĠLookup In Spec , ĊĠĠĠ Ġinternal Ġval Ġindex : ĠInt , Ċ ) Ġ{ ĊĠĠĠ Ġpublic Ġfun Ġget ( result : ĠLookup In Result ): ĠBoolean Ġ= Ġwith ( result ) Ġ{ Ġvalue Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠtoString (): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġ" Sub doc Exists ( path ='$ path ', Ġx attr =$ x attr )" ĊĠĠĠ Ġ} Ċ } Ċ Ċ /** Ċ Ġ* ĠSpecifies Ġwhich Ġfields Ġto Ġretrieve Ġwhen Ġdoing Ġa Ġsub doc Ġlookup . Ċ Ġ* Ċ Ġ* Ġ@ sample Ġsub doc Lookup Ċ Ġ*/ Ċ public Ġabstract Ġclass ĠLookup In Spec Ġ{ ĊĠĠĠ Ġinternal Ġval Ġcommands Ġ= ĠArrayList < Sub doc GetRequest . Command >() ĊĊĠĠĠ Ġprotected Ġfun Ġget ( path : ĠString , Ġx attr : ĠBoolean Ġ= Ġfalse ): ĠSub doc Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġorig Index Ġ= Ġcommands . size ĊĠĠĠĠĠĠĠ Ġval Ġsub doc Ġ= ĠSub doc ( path , Ġx attr , Ġthis , Ġorig Index ) ĊĠĠĠĠĠĠĠ Ġval Ġtype Ġ= Ġif Ġ( path Ġ== Ġ"") ĠSub doc Command Type . GET _ DOC Ġelse ĠSub doc Command Type . GET ĊĠĠĠĠĠĠĠ Ġcommands . add ( Sub doc GetRequest . Command ( type , Ġpath , Ġx attr , Ġorig Index )) ĊĠĠĠĠĠĠĠ Ġreturn Ġsub doc ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Volatile C ouch base Api ĊĠĠĠ Ġprotected Ġfun Ġget ( macro : ĠLookup In Macro ): ĠSub doc Ġ= Ġget ( macro . value , Ġx attr Ġ= Ġtrue ) ĊĊĠĠĠ Ġprotected Ġfun Ġcount ( path : ĠString , Ġx attr : ĠBoolean Ġ= Ġfalse ): ĠSub doc Count Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġorig Index Ġ= Ġcommands . size ĊĠĠĠĠĠĠĠ Ġval Ġsub doc Ġ= ĠSub doc Count ( path , Ġx attr , Ġthis , Ġorig Index ) ĊĠĠĠĠĠĠĠ Ġcommands . add ( Sub doc GetRequest . Command ( Sub doc Command Type . COUNT , Ġpath , Ġx attr , Ġorig Index )) ĊĠĠĠĠĠĠĠ Ġreturn Ġsub doc ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprotected Ġfun Ġexists ( path : ĠString , Ġx attr : ĠBoolean Ġ= Ġfalse ): ĠSub doc Exists Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġorig Index Ġ= Ġcommands . size ĊĠĠĠĠĠĠĠ Ġval Ġsub doc Ġ= ĠSub doc Exists ( path , Ġx attr , Ġthis , Ġorig Index ) ĊĠĠĠĠĠĠĠ Ġcommands . add ( Sub doc GetRequest . Command ( Sub doc Command Type . EXISTS , Ġpath , Ġx attr , Ġorig Index )) ĊĠĠĠĠĠĠĠ Ġreturn Ġsub doc ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠtoString (): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġ" Lookup In Spec ( items =$ commands )" ĊĠĠĠ Ġ} Ċ } Ċ