1 /*********************************************************************** 2 * Copyright (c) 2013-2024 Commonwealth Computer Research, Inc. 3 * All rights reserved. This program and the accompanying materials 4 * are made available under the terms of the Apache License, Version 2.0 5 * which accompanies this distribution and is available at 6 * http://www.opensource.org/licenses/apache2.0.php. 7 ***********************************************************************/ 8 9 package org.locationtech.geomesa.index 10 11 import org.geotools.api.feature.simple.{SimpleFeature, SimpleFeatureType} 12 import org.geotools.api.filter.Filter 13 import org.geotools.util.factory.Hints 14 import org.locationtech.geomesa.curve.TimePeriod.TimePeriod 15 import org.locationtech.geomesa.index.stats.GeoMesaStats.{GeoMesaStatWriter, StatUpdater} 16 import org.locationtech.geomesa.utils.stats._ 17 18 package object stats { 19 20 /** 21 * Marker trait for classes with stats 22 */ 23 trait HasGeoMesaStats { 24 def stats: GeoMesaStats 25 } 26 27 /** 28 * Stats implementation that will always return None 29 */ 30 object NoopStats extends GeoMesaStats { 31 32 override val writer: GeoMesaStatWriter = NoopStatWriter 33 34 override def getCount(sft: SimpleFeatureType, filter: Filter, exact: Boolean, queryHints: Hints): Option[Long] = None 35 36 override def getMinMax[T]( 37 sft: SimpleFeatureType, 38 attribute: String, 39 filter: Filter, 40 exact: Boolean): Option[MinMax[T]] = None 41 42 override def getEnumeration[T]( 43 sft: SimpleFeatureType, 44 attribute: String, 45 filter: Filter, 46 exact: Boolean): Option[EnumerationStat[T]] = None 47 48 override def getFrequency[T]( 49 sft: SimpleFeatureType, 50 attribute: String, 51 precision: Int, 52 filter: Filter, 53 exact: Boolean): Option[Frequency[T]] = None 54 55 override def getTopK[T]( 56 sft: SimpleFeatureType, 57 attribute: String, 58 filter: Filter, 59 exact: Boolean): Option[TopK[T]] = None 60 61 override def getHistogram[T]( 62 sft: SimpleFeatureType, 63 attribute: String, 64 bins: Int, 65 min: T, 66 max: T, 67 filter: Filter, 68 exact: Boolean): Option[Histogram[T]] = None 69 70 override def getZ3Histogram( 71 sft: SimpleFeatureType, 72 geom: String, 73 dtg: String, 74 period: TimePeriod, 75 bins: Int, 76 filter: Filter, 77 exact: Boolean): Option[Z3Histogram] = None 78 79 override def getStat[T <: Stat]( 80 sft: SimpleFeatureType, 81 query: String, 82 filter: Filter, 83 exact: Boolean): Option[T] = None 84 85 override def close(): Unit = {} 86 } 87 88 object NoopStatWriter extends GeoMesaStatWriter { 89 override def analyze(sft: SimpleFeatureType): Seq[Stat] = Seq.empty 90 override def updater(sft: SimpleFeatureType): StatUpdater = NoopStatUpdater 91 override def clear(sft: SimpleFeatureType): Unit = {} 92 override def rename(sft: SimpleFeatureType, previous: SimpleFeatureType): Unit = {} 93 } 94 95 object NoopStatUpdater extends StatUpdater { 96 override def add(sf: SimpleFeature): Unit = {} 97 override def remove(sf: SimpleFeature): Unit = {} 98 override def flush(): Unit = {} 99 override def close(): Unit = {} 100 } 101 }
| Line | Stmt Id | Pos | Tree | Symbol | Tests | Code |
|---|---|---|---|---|---|---|
| 32 | 43530 | 1148 - 1162 | Select | org.locationtech.geomesa.index.stats.NoopStatWriter | `package`.this.NoopStatWriter | |
| 34 | 43531 | 1281 - 1285 | Select | scala.None | scala.None | |
| 40 | 43532 | 1446 - 1450 | Select | scala.None | scala.None | |
| 46 | 43533 | 1625 - 1629 | Select | scala.None | scala.None | |
| 53 | 43534 | 1820 - 1824 | Select | scala.None | scala.None | |
| 59 | 43535 | 1981 - 1985 | Select | scala.None | scala.None | |
| 68 | 43536 | 2203 - 2207 | Select | scala.None | scala.None | |
| 77 | 43537 | 2435 - 2439 | Select | scala.None | scala.None | |
| 83 | 43538 | 2594 - 2598 | Select | scala.None | scala.None | |
| 85 | 43539 | 2633 - 2635 | Literal | <nosymbol> | () | |
| 89 | 43540 | 2755 - 2764 | TypeApply | scala.collection.generic.GenericCompanion.empty | scala.collection.Seq.empty[Nothing] | |
| 90 | 43541 | 2829 - 2844 | Select | org.locationtech.geomesa.index.stats.NoopStatUpdater | `package`.this.NoopStatUpdater | |
| 91 | 43542 | 2900 - 2902 | Literal | <nosymbol> | () | |
| 92 | 43543 | 2988 - 2990 | Literal | <nosymbol> | () | |
| 96 | 43544 | 3091 - 3093 | Literal | <nosymbol> | () | |
| 97 | 43545 | 3145 - 3147 | Literal | <nosymbol> | () | |
| 98 | 43546 | 3181 - 3183 | Literal | <nosymbol> | () | |
| 99 | 43547 | 3217 - 3219 | Literal | <nosymbol> | () |