|
|
|
@ -35,8 +35,8 @@ class Calculator { |
|
|
|
var stats: List<Stat> = listOf(), |
|
|
|
var stats: List<Stat> = listOf(), |
|
|
|
var criterias: List<Criteria> = listOf(), |
|
|
|
var criterias: List<Criteria> = listOf(), |
|
|
|
query: Query = Query(), |
|
|
|
query: Query = Query(), |
|
|
|
filter: Filter? = null, |
|
|
|
var filter: Filter? = null, |
|
|
|
var aggregationType: AggregationType? = null, |
|
|
|
private var aggregationType: AggregationType? = null, |
|
|
|
var userGenerated: Boolean = false, |
|
|
|
var userGenerated: Boolean = false, |
|
|
|
var reportSetupId: String? = null |
|
|
|
var reportSetupId: String? = null |
|
|
|
) { |
|
|
|
) { |
|
|
|
@ -50,12 +50,18 @@ class Calculator { |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
private var _query: Query = query |
|
|
|
private var _query: Query = query |
|
|
|
var filter: Filter? = filter |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
init { |
|
|
|
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") |
|
|
|
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 |
|
|
|
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 |
|
|
|
* Returns some default name |
|
|
|
*/ |
|
|
|
*/ |
|
|
|
@ -237,7 +227,7 @@ class Calculator { |
|
|
|
|
|
|
|
|
|
|
|
val report = Report(options) |
|
|
|
val report = Report(options) |
|
|
|
groups.forEach { group -> |
|
|
|
groups.forEach { group -> |
|
|
|
val s = Date() |
|
|
|
// val s = Date() |
|
|
|
|
|
|
|
|
|
|
|
// Clean existing computables / sessionSets if group is reused |
|
|
|
// Clean existing computables / sessionSets if group is reused |
|
|
|
group.cleanup() |
|
|
|
group.cleanup() |
|
|
|
@ -260,8 +250,8 @@ class Calculator { |
|
|
|
results.finalize() // later treatment, such as evolution numericValues sorting |
|
|
|
results.finalize() // later treatment, such as evolution numericValues sorting |
|
|
|
report.addResults(results) |
|
|
|
report.addResults(results) |
|
|
|
|
|
|
|
|
|
|
|
val e = Date() |
|
|
|
// val e = Date() |
|
|
|
val duration = (e.time - s.time) / 1000.0 |
|
|
|
// val duration = (e.time - s.time) / 1000.0 |
|
|
|
// Timber.d(">>> group ${group.name} in $duration seconds") |
|
|
|
// Timber.d(">>> group ${group.name} in $duration seconds") |
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
|