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