diff --git a/app/src/main/java/net/pokeranalytics/android/calculus/Calculator.kt b/app/src/main/java/net/pokeranalytics/android/calculus/Calculator.kt index 4801aed6..31094164 100644 --- a/app/src/main/java/net/pokeranalytics/android/calculus/Calculator.kt +++ b/app/src/main/java/net/pokeranalytics/android/calculus/Calculator.kt @@ -35,8 +35,8 @@ class Calculator { var stats: List = listOf(), var criterias: List = listOf(), query: Query = Query(), - filter: Filter? = null, - var aggregationType: AggregationType? = null, + var filter: Filter? = null, + private var aggregationType: AggregationType? = null, var userGenerated: Boolean = false, var reportSetupId: String? = null ) { @@ -50,12 +50,18 @@ class Calculator { } private var _query: Query = query - var filter: Filter? = filter init { - if (!this._query.conditions.isEmpty() && this.filter != null) { + if (this._query.conditions.isNotEmpty() && this.filter != null) { throw IllegalStateException("Can't specify a query with conditions AND a filter") } + + when (this.aggregationType) { + AggregationType.MONTH -> this.criterias = listOf(Criteria.AllMonthsUpToNow) + AggregationType.YEAR -> this.criterias = listOf(Criteria.Years) + else -> {} + } + } val query: Query @@ -150,22 +156,6 @@ class Calculator { } } -// fun reportSetup(name: String): ReportSetup { -// -// val rs = ReportSetup() -// rs.name = name -// rs.display = this.display.ordinal -// this.stats.forEach { -// rs.statIds.add(it.uniqueIdentifier) -// } -// this.criterias.forEach { -// rs.criteriaIds.add(it.uniqueIdentifier) -// } -// rs.filter = this.filter -// -// return rs -// } - /** * Returns some default name */ @@ -237,7 +227,7 @@ class Calculator { val report = Report(options) groups.forEach { group -> - val s = Date() +// val s = Date() // Clean existing computables / sessionSets if group is reused group.cleanup() @@ -260,8 +250,8 @@ class Calculator { results.finalize() // later treatment, such as evolution numericValues sorting report.addResults(results) - val e = Date() - val duration = (e.time - s.time) / 1000.0 +// val e = Date() +// val duration = (e.time - s.time) / 1000.0 // Timber.d(">>> group ${group.name} in $duration seconds") }