* * Get concrete dimension name by dimension name or dimension index. * If input a dimension name, do not validate whether the dimension name exits. * * @caution * @param dim Must make sure the dimension is `SeriesDimensionLoose`. * Because only those dimensions will ha
(dim: SeriesDimensionLoose)
| 367 | * @return Concrete dim name. |
| 368 | */ |
| 369 | getDimension(dim: SeriesDimensionLoose): DimensionName { |
| 370 | let dimIdx = this._recognizeDimIndex(dim); |
| 371 | if (dimIdx == null) { |
| 372 | return dim as DimensionName; |
| 373 | } |
| 374 | dimIdx = dim as DimensionIndex; |
| 375 | |
| 376 | if (!this._dimOmitted) { |
| 377 | return this.dimensions[dimIdx]; |
| 378 | } |
| 379 | |
| 380 | // Retrieve from series dimension definition because it probably contains |
| 381 | // generated dimension name (like 'x', 'y'). |
| 382 | const dimName = this._dimIdxToName.get(dimIdx); |
| 383 | if (dimName != null) { |
| 384 | return dimName; |
| 385 | } |
| 386 | |
| 387 | const sourceDimDef = this._schema.getSourceDimension(dimIdx); |
| 388 | if (sourceDimDef) { |
| 389 | return sourceDimDef.name; |
| 390 | } |
| 391 | } |
| 392 | |
| 393 | /** |
| 394 | * Get dimension index in data store. Return -1 if not found. |
no test coverage detected