diff --git a/std-bits/table/src/main/java/org/enso/table/data/column/operation/cast/ToBigDecimalConverter.java b/std-bits/table/src/main/java/org/enso/table/data/column/operation/cast/ToBigDecimalConverter.java index dc078cc6e3ad..d31c9e25c60f 100644 --- a/std-bits/table/src/main/java/org/enso/table/data/column/operation/cast/ToBigDecimalConverter.java +++ b/std-bits/table/src/main/java/org/enso/table/data/column/operation/cast/ToBigDecimalConverter.java @@ -4,6 +4,9 @@ import java.math.BigInteger; import org.enso.table.data.column.builder.Builder; import org.enso.table.data.column.storage.BoolStorage; +import org.enso.table.data.column.storage.ColumnDoubleStorage; +import org.enso.table.data.column.storage.ColumnLongStorage; +import org.enso.table.data.column.storage.ColumnStorage; import org.enso.table.data.column.storage.Storage; import org.enso.table.data.column.storage.numeric.AbstractLongStorage; import org.enso.table.data.column.storage.numeric.BigDecimalStorage; @@ -33,23 +36,23 @@ public Storage cast(Storage storage, CastProblemAggregator proble } private Storage convertDoubleStorage( - DoubleStorage doubleStorage, CastProblemAggregator problemAggregator) { + ColumnDoubleStorage doubleStorage, CastProblemAggregator problemAggregator) { return StorageConverter.innerLoop( - Builder.getForBigDecimal(doubleStorage.size()), + Builder.getForBigDecimal(doubleStorage.getSize()), doubleStorage, (i) -> { - double x = doubleStorage.getItemAsDouble(i); + double x = doubleStorage.get(i); return BigDecimal.valueOf(x); }); } private Storage convertLongStorage( - AbstractLongStorage longStorage, CastProblemAggregator problemAggregator) { + ColumnLongStorage longStorage, CastProblemAggregator problemAggregator) { return StorageConverter.innerLoop( - Builder.getForBigDecimal(longStorage.size()), + Builder.getForBigDecimal(longStorage.getSize()), longStorage, (i) -> { - long x = longStorage.getItem(i); + long x = longStorage.get(i); return BigDecimal.valueOf(x); }); } @@ -77,12 +80,12 @@ private Storage convertBigIntegerStorage( } private Storage castFromMixed( - Storage storage, CastProblemAggregator problemAggregator) { + ColumnStorage storage, CastProblemAggregator problemAggregator) { return StorageConverter.innerLoop( - Builder.getForBigDecimal(storage.size()), + Builder.getForBigDecimal(storage.getSize()), storage, (i) -> { - Object o = storage.getItemBoxed(i); + Object o = storage.getItemAsObject(i); return switch (o) { case Boolean b -> booleanAsBigDecimal(b); case Long l -> BigDecimal.valueOf(l); diff --git a/std-bits/table/src/main/java/org/enso/table/data/column/operation/cast/ToBigIntegerConverter.java b/std-bits/table/src/main/java/org/enso/table/data/column/operation/cast/ToBigIntegerConverter.java index 3b20376235de..1a756e2638d6 100644 --- a/std-bits/table/src/main/java/org/enso/table/data/column/operation/cast/ToBigIntegerConverter.java +++ b/std-bits/table/src/main/java/org/enso/table/data/column/operation/cast/ToBigIntegerConverter.java @@ -4,6 +4,9 @@ import java.math.BigInteger; import org.enso.table.data.column.builder.Builder; import org.enso.table.data.column.storage.BoolStorage; +import org.enso.table.data.column.storage.ColumnDoubleStorage; +import org.enso.table.data.column.storage.ColumnLongStorage; +import org.enso.table.data.column.storage.ColumnStorage; import org.enso.table.data.column.storage.Storage; import org.enso.table.data.column.storage.numeric.AbstractLongStorage; import org.enso.table.data.column.storage.numeric.BigDecimalStorage; @@ -33,23 +36,23 @@ public Storage cast(Storage storage, CastProblemAggregator proble } private Storage convertDoubleStorage( - DoubleStorage doubleStorage, CastProblemAggregator problemAggregator) { + ColumnDoubleStorage doubleStorage, CastProblemAggregator problemAggregator) { return StorageConverter.innerLoop( - Builder.getForBigInteger(doubleStorage.size(), problemAggregator), + Builder.getForBigInteger(doubleStorage.getSize(), problemAggregator), doubleStorage, (i) -> { - double x = doubleStorage.getItemAsDouble(i); + double x = doubleStorage.get(i); return BigDecimal.valueOf(x).toBigInteger(); }); } private Storage convertLongStorage( - AbstractLongStorage longStorage, CastProblemAggregator problemAggregator) { + ColumnLongStorage longStorage, CastProblemAggregator problemAggregator) { return StorageConverter.innerLoop( - Builder.getForBigInteger(longStorage.size(), problemAggregator), + Builder.getForBigInteger(longStorage.getSize(), problemAggregator), longStorage, (i) -> { - long x = longStorage.getItem(i); + long x = longStorage.get(i); return BigInteger.valueOf(x); }); } @@ -60,7 +63,7 @@ private Storage convertBoolStorage( Builder.getForBigInteger(boolStorage.size(), problemAggregator), boolStorage, (i) -> { - boolean x = boolStorage.getItem(i); + boolean x = boolStorage.getItem((int) i); return booleanAsBigInteger(x); }); } @@ -71,18 +74,18 @@ private Storage convertBigDecimalStorage( Builder.getForBigInteger(bigDecimalStorage.size(), problemAggregator), bigDecimalStorage, (i) -> { - BigDecimal x = bigDecimalStorage.getItemBoxed(i); + BigDecimal x = bigDecimalStorage.getItemBoxed((int) i); return x.toBigInteger(); }); } private Storage castFromMixed( - Storage storage, CastProblemAggregator problemAggregator) { + ColumnStorage storage, CastProblemAggregator problemAggregator) { return StorageConverter.innerLoop( - Builder.getForBigInteger(storage.size(), problemAggregator), + Builder.getForBigInteger(storage.getSize(), problemAggregator), storage, (i) -> { - Object o = storage.getItemBoxed(i); + Object o = storage.getItemAsObject(i); return switch (o) { case Boolean b -> booleanAsBigInteger(b); case Long l -> BigInteger.valueOf(l); diff --git a/std-bits/table/src/main/java/org/enso/table/data/column/operation/cast/ToBooleanStorageConverter.java b/std-bits/table/src/main/java/org/enso/table/data/column/operation/cast/ToBooleanStorageConverter.java index a9d515d707b2..60485498e469 100644 --- a/std-bits/table/src/main/java/org/enso/table/data/column/operation/cast/ToBooleanStorageConverter.java +++ b/std-bits/table/src/main/java/org/enso/table/data/column/operation/cast/ToBooleanStorageConverter.java @@ -2,6 +2,7 @@ import org.enso.table.data.column.builder.Builder; import org.enso.table.data.column.storage.BoolStorage; +import org.enso.table.data.column.storage.ColumnStorage; import org.enso.table.data.column.storage.Storage; import org.enso.table.data.column.storage.type.AnyObjectType; @@ -19,13 +20,13 @@ public Storage cast(Storage storage, CastProblemAggregator problemAg } private Storage castFromMixed( - Storage mixedStorage, CastProblemAggregator problemAggregator) { + ColumnStorage mixedStorage, CastProblemAggregator problemAggregator) { // As mixed storage is already boxed, use the standard inner loop. return StorageConverter.innerLoop( - Builder.getForBoolean(mixedStorage.size()), + Builder.getForBoolean(mixedStorage.getSize()), mixedStorage, (i) -> { - Object o = mixedStorage.getItemBoxed(i); + Object o = mixedStorage.getItemAsObject(i); if (o instanceof Boolean b) { return b; } else { diff --git a/std-bits/table/src/main/java/org/enso/table/data/column/operation/cast/ToDateStorageConverter.java b/std-bits/table/src/main/java/org/enso/table/data/column/operation/cast/ToDateStorageConverter.java index 4dd83c8e0c7f..124a6d8013d3 100644 --- a/std-bits/table/src/main/java/org/enso/table/data/column/operation/cast/ToDateStorageConverter.java +++ b/std-bits/table/src/main/java/org/enso/table/data/column/operation/cast/ToDateStorageConverter.java @@ -3,6 +3,7 @@ import java.time.LocalDate; import java.time.ZonedDateTime; import org.enso.table.data.column.builder.Builder; +import org.enso.table.data.column.storage.ColumnStorage; import org.enso.table.data.column.storage.Storage; import org.enso.table.data.column.storage.datetime.DateStorage; import org.enso.table.data.column.storage.datetime.DateTimeStorage; @@ -24,12 +25,12 @@ public Storage cast(Storage storage, CastProblemAggregator problem } private Storage castFromMixed( - Storage mixedStorage, CastProblemAggregator problemAggregator) { + ColumnStorage mixedStorage, CastProblemAggregator problemAggregator) { return StorageConverter.innerLoop( - Builder.getForDate(mixedStorage.size()), + Builder.getForDate(mixedStorage.getSize()), mixedStorage, (i) -> { - Object o = mixedStorage.getItemBoxed(i); + Object o = mixedStorage.getItemAsObject(i); return switch (o) { case LocalDate d -> d; case ZonedDateTime d -> d.toLocalDate(); diff --git a/std-bits/table/src/main/java/org/enso/table/data/column/operation/cast/ToDateTimeStorageConverter.java b/std-bits/table/src/main/java/org/enso/table/data/column/operation/cast/ToDateTimeStorageConverter.java index 8bea6031bcea..921918cfb7bc 100644 --- a/std-bits/table/src/main/java/org/enso/table/data/column/operation/cast/ToDateTimeStorageConverter.java +++ b/std-bits/table/src/main/java/org/enso/table/data/column/operation/cast/ToDateTimeStorageConverter.java @@ -4,6 +4,7 @@ import java.time.ZoneId; import java.time.ZonedDateTime; import org.enso.table.data.column.builder.Builder; +import org.enso.table.data.column.storage.ColumnStorage; import org.enso.table.data.column.storage.Storage; import org.enso.table.data.column.storage.datetime.DateStorage; import org.enso.table.data.column.storage.datetime.DateTimeStorage; @@ -25,12 +26,12 @@ public Storage cast(Storage storage, CastProblemAggregator pro } public Storage castFromMixed( - Storage mixedStorage, CastProblemAggregator problemAggregator) { + ColumnStorage mixedStorage, CastProblemAggregator problemAggregator) { return StorageConverter.innerLoop( - Builder.getForDateTime(mixedStorage.size()), + Builder.getForDateTime(mixedStorage.getSize()), mixedStorage, (i) -> { - Object o = mixedStorage.getItemBoxed(i); + Object o = mixedStorage.getItemAsObject(i); return switch (o) { case ZonedDateTime d -> d; case LocalDate d -> convertDate(d); diff --git a/std-bits/table/src/main/java/org/enso/table/data/column/operation/cast/ToTextStorageConverter.java b/std-bits/table/src/main/java/org/enso/table/data/column/operation/cast/ToTextStorageConverter.java index eba69f5cffcf..98fb35586a8b 100644 --- a/std-bits/table/src/main/java/org/enso/table/data/column/operation/cast/ToTextStorageConverter.java +++ b/std-bits/table/src/main/java/org/enso/table/data/column/operation/cast/ToTextStorageConverter.java @@ -7,9 +7,7 @@ import java.util.function.Function; import org.enso.polyglot.common_utils.Core_Date_Utils; import org.enso.table.data.column.builder.Builder; -import org.enso.table.data.column.storage.BoolStorage; -import org.enso.table.data.column.storage.Storage; -import org.enso.table.data.column.storage.StringStorage; +import org.enso.table.data.column.storage.*; import org.enso.table.data.column.storage.datetime.DateStorage; import org.enso.table.data.column.storage.datetime.DateTimeStorage; import org.enso.table.data.column.storage.datetime.TimeOfDayStorage; @@ -55,12 +53,12 @@ public Storage cast(Storage storage, CastProblemAggregator problemAgg } private Storage castFromMixed( - Storage mixedStorage, CastProblemAggregator problemAggregator) { + ColumnStorage mixedStorage, CastProblemAggregator problemAggregator) { return StorageConverter.innerLoop( - Builder.getForText(mixedStorage.size(), targetType), + Builder.getForText(mixedStorage.getSize(), targetType), mixedStorage, (i) -> { - Object o = mixedStorage.getItemBoxed(i); + Object o = mixedStorage.getItemAsObject(i); return switch (o) { case LocalTime d -> adapt(convertTime(d), problemAggregator); case LocalDate d -> adapt(convertDate(d), problemAggregator); @@ -72,34 +70,34 @@ private Storage castFromMixed( } private Storage castLongStorage( - AbstractLongStorage longStorage, CastProblemAggregator problemAggregator) { + ColumnLongStorage longStorage, CastProblemAggregator problemAggregator) { return StorageConverter.innerLoop( - Builder.getForText(longStorage.size(), targetType), + Builder.getForText(longStorage.getSize(), targetType), longStorage, (i) -> { - long value = longStorage.getItem(i); + long value = longStorage.get(i); return adapt(Long.toString(value), problemAggregator); }); } private Storage castBoolStorage( - BoolStorage boolStorage, CastProblemAggregator problemAggregator) { + ColumnBooleanStorage boolStorage, CastProblemAggregator problemAggregator) { return StorageConverter.innerLoop( - Builder.getForText(boolStorage.size(), targetType), + Builder.getForText(boolStorage.getSize(), targetType), boolStorage, (i) -> { - boolean value = boolStorage.getItem(i); + boolean value = boolStorage.get(i); return adapt(convertBoolean(value), problemAggregator); }); } private Storage castDoubleStorage( - DoubleStorage doubleStorage, CastProblemAggregator problemAggregator) { + ColumnDoubleStorage doubleStorage, CastProblemAggregator problemAggregator) { return StorageConverter.innerLoop( - Builder.getForText(doubleStorage.size(), targetType), + Builder.getForText(doubleStorage.getSize(), targetType), doubleStorage, (i) -> { - double value = doubleStorage.getItem(i); + double value = doubleStorage.get(i); return adapt(Double.toString(value), problemAggregator); }); } @@ -110,7 +108,7 @@ private Storage castTemporalStorage( Builder.getForText(storage.size(), targetType), storage, (i) -> { - var value = storage.getItemBoxed(i); + var value = storage.getItemBoxed((int) i); return adapt(converter.apply(value), problemAggregator); }); } diff --git a/std-bits/table/src/main/java/org/enso/table/data/column/operation/cast/ToTimeOfDayStorageConverter.java b/std-bits/table/src/main/java/org/enso/table/data/column/operation/cast/ToTimeOfDayStorageConverter.java index abc3001332d6..0c14a83a6522 100644 --- a/std-bits/table/src/main/java/org/enso/table/data/column/operation/cast/ToTimeOfDayStorageConverter.java +++ b/std-bits/table/src/main/java/org/enso/table/data/column/operation/cast/ToTimeOfDayStorageConverter.java @@ -3,6 +3,7 @@ import java.time.LocalTime; import java.time.ZonedDateTime; import org.enso.table.data.column.builder.Builder; +import org.enso.table.data.column.storage.ColumnStorage; import org.enso.table.data.column.storage.Storage; import org.enso.table.data.column.storage.datetime.DateTimeStorage; import org.enso.table.data.column.storage.datetime.TimeOfDayStorage; @@ -24,12 +25,12 @@ public Storage cast(Storage storage, CastProblemAggregator problem } private Storage castFromMixed( - Storage mixedStorage, CastProblemAggregator problemAggregator) { + ColumnStorage mixedStorage, CastProblemAggregator problemAggregator) { return StorageConverter.innerLoop( - Builder.getForTime(mixedStorage.size()), + Builder.getForTime(mixedStorage.getSize()), mixedStorage, (i) -> { - Object o = mixedStorage.getItemBoxed(i); + Object o = mixedStorage.getItemAsObject(i); return switch (o) { case LocalTime d -> d; case ZonedDateTime d -> convertDateTime(d);