|
|
|
|
@ -7,6 +7,7 @@ import net.pokeranalytics.android.model.TournamentType |
|
|
|
|
import net.pokeranalytics.android.model.realm.CustomField |
|
|
|
|
import net.pokeranalytics.android.model.realm.Session |
|
|
|
|
import org.apache.commons.csv.CSVRecord |
|
|
|
|
import timber.log.Timber |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* A SessionCSVDescriptor is a CSVDescriptor specialized in parsing Session objects |
|
|
|
|
@ -20,14 +21,14 @@ class SessionCSVDescriptor(source: DataSource, isTournament: Boolean?, vararg el |
|
|
|
|
realm.where(CustomField::class.java).findAll().sort("name").forEach { customField -> |
|
|
|
|
val header = customField.name + CustomFieldCSVField.separator + customField.type |
|
|
|
|
val f = when (customField.type) { |
|
|
|
|
CustomField.Type.LIST.ordinal -> { |
|
|
|
|
SessionField.NumberCustomField(header, customField) |
|
|
|
|
CustomField.Type.LIST.uniqueIdentifier -> { |
|
|
|
|
SessionField.ListCustomField(header, customField) |
|
|
|
|
} |
|
|
|
|
else -> { |
|
|
|
|
SessionField.ListCustomField(header, customField) |
|
|
|
|
SessionField.NumberCustomField(header, customField) |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
this.staticFields.add(f) |
|
|
|
|
this.fields.add(f) |
|
|
|
|
} |
|
|
|
|
realm.close() |
|
|
|
|
|
|
|
|
|
@ -75,10 +76,13 @@ class SessionCSVDescriptor(source: DataSource, isTournament: Boolean?, vararg el |
|
|
|
|
is SessionField.TournamentPosition -> field.format(data.result?.tournamentFinalPosition) |
|
|
|
|
is SessionField.Comment -> data.comment |
|
|
|
|
is SessionField.NumberCustomField -> { |
|
|
|
|
val entry = data.customFieldEntries.first { it.customField == field.customField } |
|
|
|
|
field.format(entry.numericValue) |
|
|
|
|
val entry = data.customFieldEntries.find { it.customField?.id == field.customField.id } |
|
|
|
|
field.format(entry?.numericValue) |
|
|
|
|
} |
|
|
|
|
is SessionField.ListCustomField -> { |
|
|
|
|
val entry = data.customFieldEntries.find { it.customField?.id == field.customField.id } |
|
|
|
|
entry?.value |
|
|
|
|
} |
|
|
|
|
is SessionField.ListCustomField -> data.customFieldEntries.first { it.customField == field.customField }.value |
|
|
|
|
else -> null |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@ -103,11 +107,11 @@ class SessionCSVDescriptor(source: DataSource, isTournament: Boolean?, vararg el |
|
|
|
|
val customField = CustomField.getOrCreate(realm, name, type) |
|
|
|
|
|
|
|
|
|
val field = when (customField.type) { |
|
|
|
|
CustomField.Type.LIST.ordinal -> { |
|
|
|
|
SessionField.NumberCustomField(header, customField) |
|
|
|
|
CustomField.Type.LIST.uniqueIdentifier -> { |
|
|
|
|
SessionField.ListCustomField(header, customField) |
|
|
|
|
} |
|
|
|
|
else -> { |
|
|
|
|
SessionField.ListCustomField(header, customField) |
|
|
|
|
SessionField.NumberCustomField(header, customField) |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@ -115,7 +119,7 @@ class SessionCSVDescriptor(source: DataSource, isTournament: Boolean?, vararg el |
|
|
|
|
if (index >= 0) { |
|
|
|
|
this.fieldMapping[field] = index |
|
|
|
|
} |
|
|
|
|
this.staticFields.add(field) |
|
|
|
|
this.fields.add(field) |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|