package Ġru . y oom oney . tech . grafana . dsl . metrics Ċ Ċ /** Ċ Ġ* ĠGenerates Ġmetric Ġid Ċ Ġ* Ċ Ġ* ĠCurrent Ġimplementation Ġgenerates Ġonly Ġ' A ' .. ' Z ' Ġsequence . Ċ Ġ* ĠIt Ġshould Ġbe Ġenough Ġfor Ġmost Ġgraphs . Ċ Ġ* Ċ Ġ* Ġ@ author ĠAlex ander ĠEs ip ov Ċ Ġ* Ġ@ since Ġ 0 3 . 1 2 . 2 0 1 9 Ċ Ġ*/ Ċ internal Ġclass ĠMetric Id Generator Ġ{ ĊĠĠĠ Ġprivate Ġvar Ġlast Id : ĠChar ? Ġ= Ġnull ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠReturn Ġnext Ġmetric Ġid ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ throws ĠIllegalStateException Ġif Ġlast Ġgenerated Ġid Ġwas Ġ' Z ' ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġnext Metric Id (): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġnext Id Ġ= Ġlast Id ?. plus ( 1 ) Ġ?: Ġ' A ' ĊĠĠĠĠĠĠĠ Ġif Ġ( next Id Ġ> Ġ' Z ') Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠIllegalStateException (" Current Ġimplementation Ġsupports Ġonly Ġ' A ' .. ' Z ' Ġauto Ġgenerated Ġmetric Ġids ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġlast Id Ġ= Ġnext Id ĊĠĠĠĠĠĠĠ Ġreturn Ġnext Id . toString () ĊĠĠĠ Ġ} Ċ } Ċ