Adding an optional system for CSV fields

csv
Laurent 6 years ago
parent 9a4833635a
commit 5df5569e86
  1. 6
      app/src/main/java/net/pokeranalytics/android/util/csv/CSVDescriptor.kt
  2. 4
      app/src/main/java/net/pokeranalytics/android/util/csv/CSVField.kt
  3. 2
      app/src/main/java/net/pokeranalytics/android/util/csv/ProductCSVDescriptors.kt
  4. 2
      app/src/main/java/net/pokeranalytics/android/util/csv/SessionField.kt

@ -130,14 +130,14 @@ abstract class CSVDescriptor(var source: DataSource, vararg elements: CSVField)
this.fields.forEach { field ->
val index = headers.indexOf(field.header)
this.fieldMapping[field] = index
if (index >= 0) {
this.fieldMapping[field] = index
count++
}
}
val mandatoryfields = this.fields.filter { it.optional == false }
Timber.d("source= ${this.source.name} > total fields = ${this.fields.size}, identified = $count")
return count == this.fields.size
return count >= mandatoryfields.size
}
}

@ -89,4 +89,8 @@ interface TypedCSVField<T> : CSVField {
interface CSVField {
val header: String
val optional: Boolean
get() {
return false
}
}

@ -37,7 +37,7 @@ class ProductCSVDescriptors {
SessionField.Game("game"),
SessionField.Bankroll("currency"), // same as currency code
SessionField.Location("type"),
// SessionField.Comment("sessionnote"),
SessionField.Comment("comment", true),
SessionField.Tips("expensesfromstack"),
SessionField.SmallBlind("smallblind"),
SessionField.BigBlind("bigblind"),

@ -114,7 +114,7 @@ sealed class SessionField {
data class LocationType(override var header: String) : CSVField
data class Bankroll(override var header: String) : CSVField
data class LimitType(override var header: String) : CSVField
data class Comment(override var header: String) : CSVField
data class Comment(override var header: String, override val optional: Boolean = false) : CSVField
data class SessionType(override var header: String) : CSVField
data class TableSize(override var header: String) : CSVField
data class CurrencyCode(override var header: String) : CSVField

Loading…
Cancel
Save