package Ġb z . st ew art . br ack en . db . bill . index Ċ Ċ import Ġb z . st ew art . br ack en . db . bill . data . Bill Ċ import Ġb z . st ew art . br ack en . db . bill . data . Sp onsor Ċ import Ġb z . st ew art . br ack en . db . bill . data . Summary Ċ import Ġb z . st ew art . br ack en . db . database . index . Abstract Indexed Collection Ċ import Ġb z . st ew art . br ack en . db . database . index . Index FieldBuilder Ċ import Ġb z . st ew art . br ack en . db . database . index . Index Sort Types Ċ import Ġb z . st ew art . br ack en . db . database . index . Indexed Field Ċ import Ġcom . mongodb . client . Mongo Collection Ċ Ċ class ĠBill Index Definition ( collection : ĠMongo Collection < Bill >) Ġ: ĠAbstract Indexed Collection < Bill >( collection ) Ġ{ ĊĠĠĠ Ġoverride Ġval Ġindic ies : ĠSet < Indexed Field < Bill >> ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġindexes Ġ= Ġmutable Set Of < Indexed Field < Bill >>() ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠDate Ġindex ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġval Ġintroduced Index Ġ= ĠIndex FieldBuilder . create ( Bill :: intro duced _ at , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠBill :: class , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠIndex Sort Types . DESC ENDING ) ĊĠĠĠĠĠĠĠ Ġindexes . add ( intro duced Index ) ĊĊĠĠĠĠĠĠĠ Ġval Ġstatus AtIndex Ġ= ĠIndex FieldBuilder . create ( Bill :: status _ at , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠBill :: class , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠIndex Sort Types . DESC ENDING ) ĊĠĠĠĠĠĠĠ Ġindexes . add ( status AtIndex ) ĊĊĠĠĠĠĠĠĠ Ġval Ġupdated AtIndex Ġ= ĠIndex FieldBuilder . create ( Bill :: updated _ at , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠBill :: class , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠIndex Sort Types . DESC ENDING ) ĊĠĠĠĠĠĠĠ Ġindexes . add ( updated AtIndex ) ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠRegular Ġstring Ġindex ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġval Ġbill Id Index Ġ= ĠIndex FieldBuilder . create ( Bill :: bill _ id , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠBill :: class , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠIndex Sort Types . ASC ENDING ) ĊĠĠĠĠĠĠĠ Ġindexes . add ( bill Id Index ) ĊĊĠĠĠĠĠĠĠ Ġval Ġbill Type Index Ġ= ĠIndex FieldBuilder . create ( Bill :: bill _ type , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠBill :: class , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠIndex Sort Types . ASC ENDING ) ĊĠĠĠĠĠĠĠ Ġindexes . add ( bill Type Index ) ĊĊĠĠĠĠĠĠĠ Ġval Ġstatus Index Ġ= ĠIndex FieldBuilder . create ( Bill :: current Status , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠBill :: class , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠIndex Sort Types . ASC ENDING ) ĊĠĠĠĠĠĠĠ Ġindexes . add ( status Index ) ĊĊĠĠĠĠĠĠĠ Ġval Ġsummary As Index Ġ= ĠIndex FieldBuilder . create Nullable ( Bill :: bill Summary , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠBill :: class , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSummary :: as Value , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSummary :: class , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠIndex Sort Types . ASC ENDING ) ĊĠĠĠĠĠĠĠ Ġindexes . add ( summary As Index ) ĊĊĠĠĠĠĠĠĠ Ġval Ġsp onsor Index Ġ= ĠIndex FieldBuilder . create ( Bill :: bill Sp onsor , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠBill :: class , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSp onsor :: name , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSp onsor :: class , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠIndex Sort Types . ASC ENDING ) ĊĠĠĠĠĠĠĠ Ġindexes . add ( sponsor Index ) ĊĊĠĠĠĠĠĠĠ Ġval Ġsp onsor State Index Ġ= ĠIndex FieldBuilder . create ( Bill :: bill Sp onsor , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠBill :: class , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSp onsor :: state , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSp onsor :: class , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠIndex Sort Types . ASC ENDING ) ĊĠĠĠĠĠĠĠ Ġindexes . add ( sponsor State Index ) ĊĊĠĠĠĠĠĠĠ Ġval Ġsp onsor Id Index Ġ= ĠIndex FieldBuilder . create ( Bill :: bill Sp onsor , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠBill :: class , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSp onsor :: bio guide _ id , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSp onsor :: class , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠIndex Sort Types . ASC ENDING ) ĊĠĠĠĠĠĠĠ Ġindexes . add ( sponsor Id Index ) ĊĊĠĠĠĠĠĠĠ Ġval Ġco sponsor Index Ġ= ĠIndex FieldBuilder . create Arr ( Bill :: co sp onsors Arr , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠBill :: class , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSp onsor :: name , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSp onsor :: class , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠIndex Sort Types . ASC ENDING ) ĊĠĠĠĠĠĠĠ Ġindexes . add ( co sponsor Index ) ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠText Ġindex , Ġlimit Ġto Ġone ! ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġval Ġall Text Index Ġ= ĠIndex FieldBuilder . createText ( Bill :: den ormal ized All Text , ĠBill :: class ) ĊĠĠĠĠĠĠĠ Ġindexes . add ( all Text Index ) ĊĊĠĠĠĠĠĠĠ Ġindic ies Ġ= Ġindexes ĊĠĠĠ Ġ} Ċ }