/* Ċ Ġ* ĠCopyright Ġ 2 0 2 0 ĠZ UP ĠIT ĠSER V IC OS ĠEM ĠT EC NO LOG IA ĠE ĠIN OV AC AO ĠSA Ċ Ġ* Ċ Ġ* Ġ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 Ġio . char le sc d . m oo ve . metrics . domain Ċ Ċ data Ġclass ĠSearch Metric ( val Ġname : ĠString ) Ġ{ ĊĊĠĠĠ Ġvar Ġfilters : ĠList < Search Metric Filter >? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġprivate Ġset ĊĠĠĠ Ġvar Ġgroup By : ĠList < String >? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġprivate Ġset ĊĠĠĠ Ġvar Ġperiod : ĠPeriod ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġprivate Ġset ĊĊĠĠĠ Ġfun Ġfiltering By ( filters : ĠList < Search Metric Filter >) Ġ= Ġapply Ġ{ Ġthis . filters Ġ= Ġfilters Ġ} ĊĊĠĠĠ Ġfun Ġgrouping By ( groupBy : ĠList < String >) Ġ= Ġapply Ġ{ Ġthis . groupBy Ġ= Ġgroup By Ġ} ĊĊĠĠĠ Ġfun Ġfor Period ( period : ĠPeriod ) Ġ= Ġapply Ġ{ Ġthis . period Ġ= Ġperiod Ġ} Ċ } Ċ Ċ data Ġclass ĠSearch Metric Filter ( val Ġattribute : ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġvalues : ĠList < String >, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġkind : ĠFilter Kind ) Ċ Ċ enum Ġclass ĠFilter Kind ( val Ġsymbol : ĠString ) Ġ{ ĊĠĠĠ ĠEQUAL (" =" ), ĠNOT _ EQUAL (" ! =" ), ĠREG EX _ MATCH (" = ~ "), ĠREG EX _ NOT _ MATCH (" ! ~ ") Ċ } Ċ Ċ data Ġclass ĠPeriod ( val Ġvalue : ĠInt , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġunit : ĠPeriod Unit , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġslice Value : ĠInt , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġslice Unit : ĠPeriod Unit ) Ċ Ċ enum Ġclass ĠPeriod Unit ( val Ġunit Value : ĠString ) Ġ{ ĊĠĠĠ ĠSE CON DS (" s "), ĠMIN UTES (" m "), ĠHO UR S (" h ") Ċ } Ċ