|
|
|
|
@ -34,13 +34,23 @@ class Calculator { |
|
|
|
|
progressValues: ProgressValues = ProgressValues.NONE, |
|
|
|
|
var stats: List<Stat> = listOf(), |
|
|
|
|
var criterias: List<Criteria> = listOf(), |
|
|
|
|
query: Query = Query(), |
|
|
|
|
var filter: Filter? = null, |
|
|
|
|
var query: Query = Query(), |
|
|
|
|
var filterId: String? = null, |
|
|
|
|
private var aggregationType: AggregationType? = null, |
|
|
|
|
var userGenerated: Boolean = false, |
|
|
|
|
var reportSetupId: String? = null |
|
|
|
|
) { |
|
|
|
|
|
|
|
|
|
constructor(display: Display = Display.TABLE, |
|
|
|
|
progressValues: ProgressValues = ProgressValues.NONE, |
|
|
|
|
stats: List<Stat> = listOf(), |
|
|
|
|
criterias: List<Criteria> = listOf(), |
|
|
|
|
filter: Filter? = null, |
|
|
|
|
aggregationType: AggregationType? = null, |
|
|
|
|
userGenerated: Boolean = false, |
|
|
|
|
reportSetupId: String? = null) : |
|
|
|
|
this(display, progressValues, stats, criterias, filter?.query ?: Query(), filter?.id, aggregationType, userGenerated, reportSetupId) |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* Specifies whether progress values should be added and their kind |
|
|
|
|
*/ |
|
|
|
|
@ -52,32 +62,12 @@ class Calculator { |
|
|
|
|
return field |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* The query used to filter data |
|
|
|
|
*/ |
|
|
|
|
private var _query: Query = query |
|
|
|
|
|
|
|
|
|
init { |
|
|
|
|
if (this._query.conditions.isNotEmpty() && this.filter != null) { |
|
|
|
|
throw IllegalStateException("Can't specify a query with conditions AND a filter") |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
this.aggregationType?.let { |
|
|
|
|
this.criterias = it.criterias |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* The query used, either filter query or the provided query |
|
|
|
|
*/ |
|
|
|
|
val query: Query |
|
|
|
|
get() { |
|
|
|
|
this.filter?.let { |
|
|
|
|
return it.query |
|
|
|
|
} |
|
|
|
|
return this._query |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* The way the computed stats are going to be displayed |
|
|
|
|
*/ |
|
|
|
|
|