Skip to content

Commit 273c095

Browse files
Automated commit of generated code
1 parent 510680c commit 273c095

File tree

4 files changed

+298
-0
lines changed

4 files changed

+298
-0
lines changed

core/generated-sources/src/main/kotlin/org/jetbrains/kotlinx/dataframe/impl/api/convert.kt

Lines changed: 142 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ import kotlinx.datetime.toJavaLocalTime
1515
import kotlinx.datetime.toKotlinInstant
1616
import kotlinx.datetime.toKotlinLocalDate
1717
import kotlinx.datetime.toKotlinLocalDateTime
18+
import kotlinx.datetime.toKotlinLocalTime
1819
import kotlinx.datetime.toLocalDateTime
1920
import org.jetbrains.kotlinx.dataframe.AnyCol
2021
import org.jetbrains.kotlinx.dataframe.DataColumn
@@ -40,6 +41,7 @@ import org.jetbrains.kotlinx.dataframe.impl.createStarProjectedType
4041
import org.jetbrains.kotlinx.dataframe.path
4142
import org.jetbrains.kotlinx.dataframe.type
4243
import java.math.BigDecimal
44+
import java.math.BigInteger
4345
import java.net.URL
4446
import java.util.Locale
4547
import kotlin.math.roundToInt
@@ -332,6 +334,8 @@ internal fun createConverter(from: KType, to: KType, options: ParserOptions? = n
332334

333335
BigDecimal::class -> convert<Boolean> { if (it) BigDecimal.ONE else BigDecimal.ZERO }
334336

337+
BigInteger::class -> convert<Boolean> { if (it) BigInteger.ONE else BigInteger.ZERO }
338+
335339
else -> null
336340
}
337341

@@ -343,10 +347,19 @@ internal fun createConverter(from: KType, to: KType, options: ParserOptions? = n
343347
Short::class -> convert<Number> { it.toShort() }
344348
Long::class -> convert<Number> { it.toLong() }
345349
Boolean::class -> convert<Number> { it.toDouble() != 0.0 }
350+
BigDecimal::class -> convert<Number> { it.toBigDecimal() }
351+
BigInteger::class -> convert<Number> { it.toBigInteger() }
352+
else -> null
353+
}
354+
355+
Char::class -> when (toClass) {
356+
Int::class -> convert<Char> { it.code }
346357
else -> null
347358
}
348359

349360
Int::class -> when (toClass) {
361+
Char::class -> convert<Int> { it.toChar() }
362+
350363
Double::class -> convert<Int> { it.toDouble() }
351364

352365
Float::class -> convert<Int> { it.toFloat() }
@@ -359,6 +372,8 @@ internal fun createConverter(from: KType, to: KType, options: ParserOptions? = n
359372

360373
BigDecimal::class -> convert<Int> { it.toBigDecimal() }
361374

375+
BigInteger::class -> convert<Int> { it.toBigInteger() }
376+
362377
Boolean::class -> convert<Int> { it != 0 }
363378

364379
LocalDateTime::class -> convert<Int> { it.toLong().toLocalDateTime(defaultTimeZone) }
@@ -382,12 +397,90 @@ internal fun createConverter(from: KType, to: KType, options: ParserOptions? = n
382397
else -> null
383398
}
384399

400+
Byte::class -> when (toClass) {
401+
Double::class -> convert<Byte> { it.toDouble() }
402+
403+
Float::class -> convert<Byte> { it.toFloat() }
404+
405+
Int::class -> convert<Byte> { it.toInt() }
406+
407+
Short::class -> convert<Byte> { it.toShort() }
408+
409+
Long::class -> convert<Byte> { it.toLong() }
410+
411+
BigDecimal::class -> convert<Byte> { it.toBigDecimal() }
412+
413+
BigInteger::class -> convert<Byte> { it.toBigInteger() }
414+
415+
Boolean::class -> convert<Byte> { it != 0.toByte() }
416+
417+
LocalDateTime::class -> convert<Byte> { it.toLong().toLocalDateTime(defaultTimeZone) }
418+
419+
LocalDate::class -> convert<Byte> { it.toLong().toLocalDate(defaultTimeZone) }
420+
421+
LocalTime::class -> convert<Byte> { it.toLong().toLocalTime(defaultTimeZone) }
422+
423+
Instant::class -> convert<Byte> { Instant.fromEpochMilliseconds(it.toLong()) }
424+
425+
JavaLocalDateTime::class -> convert<Byte> {
426+
it.toLong().toLocalDateTime(defaultTimeZone).toJavaLocalDateTime()
427+
}
428+
429+
JavaLocalDate::class -> convert<Byte> { it.toLong().toLocalDate(defaultTimeZone).toJavaLocalDate() }
430+
431+
JavaLocalTime::class -> convert<Byte> { it.toLong().toLocalTime(defaultTimeZone).toJavaLocalTime() }
432+
433+
JavaInstant::class -> convert<Byte> { JavaInstant.ofEpochMilli(it.toLong()) }
434+
435+
else -> null
436+
}
437+
438+
Short::class -> when (toClass) {
439+
Double::class -> convert<Short> { it.toDouble() }
440+
441+
Float::class -> convert<Short> { it.toFloat() }
442+
443+
Int::class -> convert<Short> { it.toInt() }
444+
445+
Byte::class -> convert<Short> { it.toByte() }
446+
447+
Long::class -> convert<Short> { it.toLong() }
448+
449+
BigDecimal::class -> convert<Short> { it.toBigDecimal() }
450+
451+
BigInteger::class -> convert<Short> { it.toBigInteger() }
452+
453+
Boolean::class -> convert<Short> { it != 0.toShort() }
454+
455+
LocalDateTime::class -> convert<Short> { it.toLong().toLocalDateTime(defaultTimeZone) }
456+
457+
LocalDate::class -> convert<Short> { it.toLong().toLocalDate(defaultTimeZone) }
458+
459+
LocalTime::class -> convert<Short> { it.toLong().toLocalTime(defaultTimeZone) }
460+
461+
Instant::class -> convert<Short> { Instant.fromEpochMilliseconds(it.toLong()) }
462+
463+
JavaLocalDateTime::class -> convert<Short> {
464+
it.toLong().toLocalDateTime(defaultTimeZone).toJavaLocalDateTime()
465+
}
466+
467+
JavaLocalDate::class -> convert<Short> { it.toLong().toLocalDate(defaultTimeZone).toJavaLocalDate() }
468+
469+
JavaLocalTime::class -> convert<Short> { it.toLong().toLocalTime(defaultTimeZone).toJavaLocalTime() }
470+
471+
JavaInstant::class -> convert<Short> { JavaInstant.ofEpochMilli(it.toLong()) }
472+
473+
else -> null
474+
}
475+
385476
Double::class -> when (toClass) {
386477
Int::class -> convert<Double> { it.roundToInt() }
387478
Float::class -> convert<Double> { it.toFloat() }
388479
Long::class -> convert<Double> { it.roundToLong() }
389480
Short::class -> convert<Double> { it.roundToInt().toShort() }
481+
Byte::class -> convert<Double> { it.roundToInt().toByte() }
390482
BigDecimal::class -> convert<Double> { it.toBigDecimal() }
483+
BigInteger::class -> convert<Double> { it.toBigInteger() }
391484
Boolean::class -> convert<Double> { it != 0.0 }
392485
else -> null
393486
}
@@ -405,12 +498,16 @@ internal fun createConverter(from: KType, to: KType, options: ParserOptions? = n
405498

406499
BigDecimal::class -> convert<Long> { it.toBigDecimal() }
407500

501+
BigInteger::class -> convert<Long> { it.toBigInteger() }
502+
408503
Boolean::class -> convert<Long> { it != 0L }
409504

410505
LocalDateTime::class -> convert<Long> { it.toLocalDateTime(defaultTimeZone) }
411506

412507
LocalDate::class -> convert<Long> { it.toLocalDate(defaultTimeZone) }
413508

509+
LocalTime::class -> convert<Long> { it.toLocalTime(defaultTimeZone) }
510+
414511
Instant::class -> convert<Long> { Instant.fromEpochMilliseconds(it) }
415512

416513
JavaLocalDateTime::class -> convert<Long> {
@@ -480,21 +577,38 @@ internal fun createConverter(from: KType, to: KType, options: ParserOptions? = n
480577
Double::class -> convert<Float> { it.toDouble() }
481578
Long::class -> convert<Float> { it.roundToLong() }
482579
Int::class -> convert<Float> { it.roundToInt() }
580+
Byte::class -> convert<Float> { it.roundToInt().toByte() }
483581
Short::class -> convert<Float> { it.roundToInt().toShort() }
484582
BigDecimal::class -> convert<Float> { it.toBigDecimal() }
583+
BigInteger::class -> convert<Float> { it.toBigInteger() }
485584
Boolean::class -> convert<Float> { it != 0.0F }
486585
else -> null
487586
}
488587

489588
BigDecimal::class -> when (toClass) {
490589
Double::class -> convert<BigDecimal> { it.toDouble() }
491590
Int::class -> convert<BigDecimal> { it.toInt() }
591+
Byte::class -> convert<BigDecimal> { it.toByte() }
592+
Short::class -> convert<BigDecimal> { it.toShort() }
492593
Float::class -> convert<BigDecimal> { it.toFloat() }
493594
Long::class -> convert<BigDecimal> { it.toLong() }
595+
BigInteger::class -> convert<BigDecimal> { it.toBigInteger() }
494596
Boolean::class -> convert<BigDecimal> { it != BigDecimal.ZERO }
495597
else -> null
496598
}
497599

600+
BigInteger::class -> when (toClass) {
601+
Double::class -> convert<BigInteger> { it.toDouble() }
602+
Int::class -> convert<BigInteger> { it.toInt() }
603+
Byte::class -> convert<BigInteger> { it.toByte() }
604+
Short::class -> convert<BigInteger> { it.toShort() }
605+
Float::class -> convert<BigInteger> { it.toFloat() }
606+
Long::class -> convert<BigInteger> { it.toLong() }
607+
BigDecimal::class -> convert<BigInteger> { it.toBigDecimal() }
608+
Boolean::class -> convert<BigInteger> { it != BigInteger.ZERO }
609+
else -> null
610+
}
611+
498612
LocalDateTime::class -> when (toClass) {
499613
LocalDate::class -> convert<LocalDateTime> { it.date }
500614
LocalTime::class -> convert<LocalDateTime> { it.time }
@@ -565,6 +679,16 @@ internal fun createConverter(from: KType, to: KType, options: ParserOptions? = n
565679
else -> null
566680
}
567681

682+
LocalTime::class -> when (toClass) {
683+
JavaLocalTime::class -> convert<LocalTime> { it.toJavaLocalTime() }
684+
else -> null
685+
}
686+
687+
JavaLocalTime::class -> when (toClass) {
688+
LocalTime::class -> convert<JavaLocalTime> { it.toKotlinLocalTime() }
689+
else -> null
690+
}
691+
568692
URL::class -> when (toClass) {
569693
IMG::class -> convert<URL> { IMG(it.toString()) }
570694
IFRAME::class -> convert<URL> { IFRAME(it.toString()) }
@@ -588,3 +712,21 @@ internal fun Instant.toLocalDate(zone: TimeZone = defaultTimeZone) = toLocalDate
588712
internal fun Instant.toLocalTime(zone: TimeZone = defaultTimeZone) = toLocalDateTime(zone).time
589713

590714
internal val defaultTimeZone = TimeZone.currentSystemDefault()
715+
716+
internal fun Number.toBigDecimal(): BigDecimal =
717+
when (this) {
718+
is BigDecimal -> this
719+
is BigInteger -> BigDecimal(this)
720+
is Double -> BigDecimal.valueOf(this)
721+
is Int -> BigDecimal(this)
722+
is Long -> BigDecimal.valueOf(this)
723+
else -> BigDecimal.valueOf(this.toDouble())
724+
}
725+
726+
internal fun Number.toBigInteger(): BigInteger =
727+
when (this) {
728+
is BigInteger -> this
729+
is BigDecimal -> this.toBigInteger()
730+
is Long -> BigInteger.valueOf(this)
731+
else -> BigInteger.valueOf(this.toLong())
732+
}

0 commit comments

Comments
 (0)