Added method to compute a Report with Comparators and conditions

feature/top10
Laurent 7 years ago
parent 5a890c497a
commit da3fe957c5
  1. 22
      app/src/main/java/net/pokeranalytics/android/calculus/Calculator.kt
  2. 3
      app/src/main/java/net/pokeranalytics/android/model/filter/QueryCondition.kt

@ -2,6 +2,10 @@ package net.pokeranalytics.android.calculus
import io.realm.Realm
import net.pokeranalytics.android.calculus.Stat.*
import net.pokeranalytics.android.model.comparison.Comparator
import net.pokeranalytics.android.model.comparison.combined
import net.pokeranalytics.android.model.filter.QueryCondition
import net.pokeranalytics.android.model.filter.name
import net.pokeranalytics.android.model.realm.ComputableResult
import net.pokeranalytics.android.model.realm.Filter
import net.pokeranalytics.android.model.realm.SessionSet
@ -60,9 +64,25 @@ class Calculator {
companion object {
fun computeStatsWithComparators(realm: Realm, comparators: List<Comparator> = listOf(), conditions: List<QueryCondition> = listOf(), options: Options): Report {
val computableGroups: MutableList<ComputableGroup> = mutableListOf()
comparators.combined().forEach { comparatorConditions ->
val allConditions = mutableListOf<QueryCondition>()
allConditions.addAll(conditions)
allConditions.addAll(comparatorConditions)
val group = ComputableGroup(allConditions.name(), conditions)
computableGroups.add(group)
}
return Calculator.computeGroups(realm, computableGroups, options)
}
fun computeStatsWithFilters(realm: Realm, filters: List<Filter>, options: Options): Report {
var computableGroups: MutableList<ComputableGroup> = mutableListOf()
val computableGroups: MutableList<ComputableGroup> = mutableListOf()
filters.forEach { filter ->
val group = ComputableGroup(filter.name, filter.filterConditions.map { it.queryCondition })

@ -8,6 +8,9 @@ import net.pokeranalytics.android.util.extensions.endOfDay
import net.pokeranalytics.android.util.extensions.startOfDay
import java.util.*
fun List<QueryCondition>.name() : String {
return this.map { it.name }.joinToString(" / ")
}
/**
* Enum describing the way a query should be handled

Loading…
Cancel
Save