parent
1f04eb5d82
commit
7598c9391e
@ -1,49 +0,0 @@ |
||||
package net.pokeranalytics.android.util.csv |
||||
|
||||
import java.text.DateFormat |
||||
import java.text.NumberFormat |
||||
import java.util.* |
||||
|
||||
|
||||
interface AmountField: NumberField { |
||||
|
||||
override fun parse(value: String) : Double? { |
||||
val formatter = NumberFormat.getCurrencyInstance() |
||||
return formatter.parse(value).toDouble() |
||||
} |
||||
|
||||
} |
||||
|
||||
interface NumberField: Field<Double> { |
||||
val numberFormat: String? |
||||
|
||||
override fun parse(value: String) : Double? { |
||||
val formatter = NumberFormat.getInstance() |
||||
return formatter.parse(value).toDouble() |
||||
} |
||||
} |
||||
|
||||
interface DateField : Field<Date> { |
||||
val dateFormat: String? |
||||
|
||||
override fun parse(value: String) : Date? { |
||||
val formatter = DateFormat.getDateInstance() |
||||
return formatter.parse(value) |
||||
} |
||||
|
||||
} |
||||
|
||||
interface BlindField : Field<Double> { |
||||
|
||||
override fun parse(value: String) : Double? { |
||||
return null |
||||
} |
||||
|
||||
} |
||||
|
||||
interface Field<T> { |
||||
val header: String |
||||
var callback: (() -> Unit)? |
||||
|
||||
fun parse(value: String) : T? |
||||
} |
||||
@ -0,0 +1,68 @@ |
||||
package net.pokeranalytics.android.util.csv |
||||
|
||||
import io.realm.Realm |
||||
import net.pokeranalytics.android.model.interfaces.NameManageable |
||||
import net.pokeranalytics.android.util.extensions.getOrCreate |
||||
import timber.log.Timber |
||||
import java.text.DateFormat |
||||
import java.text.NumberFormat |
||||
import java.text.ParseException |
||||
import java.text.SimpleDateFormat |
||||
import java.util.* |
||||
|
||||
|
||||
interface NumberField: TypedField<Double> { |
||||
val numberFormat: String? |
||||
|
||||
override fun parse(value: String) : Double? { |
||||
val formatter = NumberFormat.getInstance() |
||||
|
||||
return try { |
||||
formatter.parse(value).toDouble() |
||||
} catch (e: ParseException) { |
||||
Timber.d("Unparseable number: $value") |
||||
null |
||||
} |
||||
} |
||||
} |
||||
|
||||
interface DateField : TypedField<Date> { |
||||
val dateFormat: String? |
||||
|
||||
override fun parse(value: String) : Date? { |
||||
|
||||
val formatter = if (dateFormat != null) SimpleDateFormat(dateFormat) else SimpleDateFormat.getDateTimeInstance(DateFormat.SHORT, DateFormat.SHORT) |
||||
return try { |
||||
formatter.parse(value) |
||||
} catch (e: ParseException) { |
||||
Timber.d("Unparseable date: $value") |
||||
null |
||||
} |
||||
} |
||||
|
||||
} |
||||
|
||||
interface BlindField : TypedField<Double> { |
||||
|
||||
override fun parse(value: String) : Double? { |
||||
return null |
||||
} |
||||
|
||||
} |
||||
|
||||
interface TypedField<T> : Field { |
||||
fun parse(value: String) : T? |
||||
} |
||||
|
||||
interface NamedDataField : Field { |
||||
|
||||
fun <T : NameManageable> getOrCreate(realm: Realm, clazz: Class<T>, name: String) : T { |
||||
return realm.getOrCreate(clazz, name) |
||||
} |
||||
|
||||
} |
||||
|
||||
interface Field { |
||||
val header: String |
||||
var callback: (() -> Unit)? |
||||
} |
||||
Loading…
Reference in new issue