Added comments

dev_raz_wip
Laurent 7 years ago
parent fa5a5bad53
commit cc01dc960c
  1. 20
      app/src/main/java/net/pokeranalytics/android/calculus/Calculator.kt
  2. 9
      app/src/main/java/net/pokeranalytics/android/calculus/Stat.kt
  3. 6
      app/src/main/java/net/pokeranalytics/android/model/realm/Session.kt

@ -8,8 +8,14 @@ import net.pokeranalytics.android.model.realm.SessionSet
*/ */
class Calculator { class Calculator {
/**
* The options used for calculations or display
*/
class Options { class Options {
/**
* The way the stats are going to be displayed
*/
enum class Display { enum class Display {
TABLE, TABLE,
EVOLUTION, EVOLUTION,
@ -18,6 +24,9 @@ class Calculator {
POLYNOMIAL POLYNOMIAL
} }
/**
* The type of evolution values
*/
enum class EvolutionValues { enum class EvolutionValues {
NONE, NONE,
STANDARD, STANDARD,
@ -28,6 +37,9 @@ class Calculator {
var evolutionValues: EvolutionValues = EvolutionValues.NONE var evolutionValues: EvolutionValues = EvolutionValues.NONE
var displayedStats: List<Stat> = listOf() var displayedStats: List<Stat> = listOf()
/**
* This function determines whether the standard deviation should be computed
*/
fun shouldComputeStandardDeviation() : Boolean { fun shouldComputeStandardDeviation() : Boolean {
this.displayedStats.forEach { stat -> this.displayedStats.forEach { stat ->
return when (stat) { return when (stat) {
@ -47,7 +59,9 @@ class Calculator {
return listOf() return listOf()
} }
// Computes all stats for list of Session sessionGroup /**
* Computes all stats for list of Session sessionGroup
*/
fun computeGroups(groups: List<SessionGroup>, options: Options): List<ComputedGroup> { fun computeGroups(groups: List<SessionGroup>, options: Options): List<ComputedGroup> {
var computedGroups: MutableList<ComputedGroup> = mutableListOf() var computedGroups: MutableList<ComputedGroup> = mutableListOf()
@ -71,7 +85,9 @@ class Calculator {
return computedGroups return computedGroups
} }
// Computes stats for a SessionSet /**
* Computes stats for a SessionSet
*/
fun compute(sessionGroup: SessionGroup, options: Options) : ComputedResults { fun compute(sessionGroup: SessionGroup, options: Options) : ComputedResults {
val sessions: List<SessionInterface> = sessionGroup.sessions val sessions: List<SessionInterface> = sessionGroup.sessions

@ -27,12 +27,9 @@ enum class Stat : RowRepresentable {
STANDARD_DEVIATION_BB_PER_100_HANDS, STANDARD_DEVIATION_BB_PER_100_HANDS,
HANDS_PLAYED; HANDS_PLAYED;
fun label() : String = when (this) { /**
NETRESULT -> "" * Returns whether the stat evolution values requires a distribution sorting
HOURLY_RATE -> "" */
else -> throw IllegalArgumentException("Label not defined")
}
fun hasDistributionSorting() : Boolean { fun hasDistributionSorting() : Boolean {
when (this) { when (this) {
STANDARD_DEVIATION, STANDARD_DEVIATION_HOURLY, STANDARD_DEVIATION_BB_PER_100_HANDS -> return true STANDARD_DEVIATION, STANDARD_DEVIATION_HOURLY, STANDARD_DEVIATION_BB_PER_100_HANDS -> return true

@ -133,16 +133,22 @@ open class Session : RealmObject(), SessionInterface, RowRepresentableDataSource
return 0.0 return 0.0
} }
/**
* This method is called whenever a session is about to be deleted
*/
fun cleanup() { fun cleanup() {
this.sessionSet?.let { set -> this.sessionSet?.let { set ->
// get all sessions part of the deleted session set
val sessionsFromSet = set.sessions val sessionsFromSet = set.sessions
// cleanup unecessary related objects
set.deleteFromRealm() set.deleteFromRealm()
this.timeFrame?.deleteFromRealm() this.timeFrame?.deleteFromRealm()
this.result?.deleteFromRealm() this.result?.deleteFromRealm()
// make sessions recreate/find their session set
sessionsFromSet?.let { sessions -> sessionsFromSet?.let { sessions ->
sessions.forEach { session -> sessions.forEach { session ->
session.timeFrame?.notifySessionDateChange() session.timeFrame?.notifySessionDateChange()

Loading…
Cancel
Save