diff --git a/engine/primitive/src/main/java/io/deephaven/engine/primitive/function/ToByteFunction.java b/engine/primitive/src/main/java/io/deephaven/engine/primitive/function/ToByteFunction.java new file mode 100644 index 00000000000..cba878dfe68 --- /dev/null +++ b/engine/primitive/src/main/java/io/deephaven/engine/primitive/function/ToByteFunction.java @@ -0,0 +1,24 @@ +// +// Copyright (c) 2016-2024 Deephaven Data Labs and Patent Pending +// +// ****** AUTO-GENERATED CLASS - DO NOT EDIT MANUALLY +// ****** Edit ToCharFunction and run "./gradlew replicatePrimitiveInterfaces" to regenerate +// +// @formatter:off +package io.deephaven.engine.primitive.function; + +/** + * Functional interface to apply an operation to an object and produce a {@code byte}. + * + * @param the object type that this function applies to + */ +@FunctionalInterface +public interface ToByteFunction { + /** + * Applies this function to the given argument of type {@link T}. + * + * @param value the argument to the function + * @return the byte result + */ + byte applyAsByte(T value); +} diff --git a/engine/primitive/src/main/java/io/deephaven/engine/primitive/function/ToCharFunction.java b/engine/primitive/src/main/java/io/deephaven/engine/primitive/function/ToCharFunction.java new file mode 100644 index 00000000000..2327dfd4817 --- /dev/null +++ b/engine/primitive/src/main/java/io/deephaven/engine/primitive/function/ToCharFunction.java @@ -0,0 +1,20 @@ +// +// Copyright (c) 2016-2024 Deephaven Data Labs and Patent Pending +// +package io.deephaven.engine.primitive.function; + +/** + * Functional interface to apply an operation to an object and produce a {@code char}. + * + * @param the object type that this function applies to + */ +@FunctionalInterface +public interface ToCharFunction { + /** + * Applies this function to the given argument of type {@link T}. + * + * @param value the argument to the function + * @return the char result + */ + char applyAsChar(T value); +} diff --git a/engine/primitive/src/main/java/io/deephaven/engine/primitive/function/ToFloatFunction.java b/engine/primitive/src/main/java/io/deephaven/engine/primitive/function/ToFloatFunction.java new file mode 100644 index 00000000000..7cddd91499a --- /dev/null +++ b/engine/primitive/src/main/java/io/deephaven/engine/primitive/function/ToFloatFunction.java @@ -0,0 +1,24 @@ +// +// Copyright (c) 2016-2024 Deephaven Data Labs and Patent Pending +// +// ****** AUTO-GENERATED CLASS - DO NOT EDIT MANUALLY +// ****** Edit ToCharFunction and run "./gradlew replicatePrimitiveInterfaces" to regenerate +// +// @formatter:off +package io.deephaven.engine.primitive.function; + +/** + * Functional interface to apply an operation to an object and produce a {@code float}. + * + * @param the object type that this function applies to + */ +@FunctionalInterface +public interface ToFloatFunction { + /** + * Applies this function to the given argument of type {@link T}. + * + * @param value the argument to the function + * @return the float result + */ + float applyAsFloat(T value); +} diff --git a/engine/primitive/src/main/java/io/deephaven/engine/primitive/function/ToShortFunction.java b/engine/primitive/src/main/java/io/deephaven/engine/primitive/function/ToShortFunction.java new file mode 100644 index 00000000000..cb0adec9cae --- /dev/null +++ b/engine/primitive/src/main/java/io/deephaven/engine/primitive/function/ToShortFunction.java @@ -0,0 +1,24 @@ +// +// Copyright (c) 2016-2024 Deephaven Data Labs and Patent Pending +// +// ****** AUTO-GENERATED CLASS - DO NOT EDIT MANUALLY +// ****** Edit ToCharFunction and run "./gradlew replicatePrimitiveInterfaces" to regenerate +// +// @formatter:off +package io.deephaven.engine.primitive.function; + +/** + * Functional interface to apply an operation to an object and produce a {@code short}. + * + * @param the object type that this function applies to + */ +@FunctionalInterface +public interface ToShortFunction { + /** + * Applies this function to the given argument of type {@link T}. + * + * @param value the argument to the function + * @return the short result + */ + short applyAsShort(T value); +} diff --git a/extensions/barrage/src/main/java/io/deephaven/extensions/barrage/chunk/ByteChunkInputStreamGenerator.java b/extensions/barrage/src/main/java/io/deephaven/extensions/barrage/chunk/ByteChunkInputStreamGenerator.java index e74ea427b94..59efe7bfb33 100644 --- a/extensions/barrage/src/main/java/io/deephaven/extensions/barrage/chunk/ByteChunkInputStreamGenerator.java +++ b/extensions/barrage/src/main/java/io/deephaven/extensions/barrage/chunk/ByteChunkInputStreamGenerator.java @@ -13,11 +13,11 @@ import io.deephaven.chunk.WritableObjectChunk; import io.deephaven.chunk.attributes.Values; import io.deephaven.chunk.util.pools.PoolableChunk; +import io.deephaven.engine.primitive.function.ToByteFunction; import io.deephaven.engine.rowset.RowSet; import com.google.common.io.LittleEndianDataOutputStream; import io.deephaven.UncheckedDeephavenException; import io.deephaven.extensions.barrage.util.StreamReaderOptions; -import io.deephaven.function.ToByteFunction; import io.deephaven.util.datastructures.LongSizedDataStructure; import io.deephaven.chunk.ByteChunk; import io.deephaven.chunk.WritableByteChunk; diff --git a/extensions/barrage/src/main/java/io/deephaven/extensions/barrage/chunk/CharChunkInputStreamGenerator.java b/extensions/barrage/src/main/java/io/deephaven/extensions/barrage/chunk/CharChunkInputStreamGenerator.java index 1ad33382d63..212ef4c33bd 100644 --- a/extensions/barrage/src/main/java/io/deephaven/extensions/barrage/chunk/CharChunkInputStreamGenerator.java +++ b/extensions/barrage/src/main/java/io/deephaven/extensions/barrage/chunk/CharChunkInputStreamGenerator.java @@ -9,11 +9,11 @@ import io.deephaven.chunk.WritableObjectChunk; import io.deephaven.chunk.attributes.Values; import io.deephaven.chunk.util.pools.PoolableChunk; +import io.deephaven.engine.primitive.function.ToCharFunction; import io.deephaven.engine.rowset.RowSet; import com.google.common.io.LittleEndianDataOutputStream; import io.deephaven.UncheckedDeephavenException; import io.deephaven.extensions.barrage.util.StreamReaderOptions; -import io.deephaven.function.ToCharFunction; import io.deephaven.util.datastructures.LongSizedDataStructure; import io.deephaven.chunk.CharChunk; import io.deephaven.chunk.WritableCharChunk; diff --git a/extensions/barrage/src/main/java/io/deephaven/extensions/barrage/chunk/DoubleChunkInputStreamGenerator.java b/extensions/barrage/src/main/java/io/deephaven/extensions/barrage/chunk/DoubleChunkInputStreamGenerator.java index 619afe68ce3..e99ee922cac 100644 --- a/extensions/barrage/src/main/java/io/deephaven/extensions/barrage/chunk/DoubleChunkInputStreamGenerator.java +++ b/extensions/barrage/src/main/java/io/deephaven/extensions/barrage/chunk/DoubleChunkInputStreamGenerator.java @@ -7,6 +7,8 @@ // @formatter:off package io.deephaven.extensions.barrage.chunk; +import java.util.function.ToDoubleFunction; + import io.deephaven.base.verify.Assert; import io.deephaven.chunk.ObjectChunk; import io.deephaven.chunk.WritableChunk; @@ -17,7 +19,6 @@ import com.google.common.io.LittleEndianDataOutputStream; import io.deephaven.UncheckedDeephavenException; import io.deephaven.extensions.barrage.util.StreamReaderOptions; -import io.deephaven.function.ToDoubleFunction; import io.deephaven.util.datastructures.LongSizedDataStructure; import io.deephaven.chunk.DoubleChunk; import io.deephaven.chunk.WritableDoubleChunk; diff --git a/extensions/barrage/src/main/java/io/deephaven/extensions/barrage/chunk/FloatChunkInputStreamGenerator.java b/extensions/barrage/src/main/java/io/deephaven/extensions/barrage/chunk/FloatChunkInputStreamGenerator.java index dfb50d77660..0daee6eb829 100644 --- a/extensions/barrage/src/main/java/io/deephaven/extensions/barrage/chunk/FloatChunkInputStreamGenerator.java +++ b/extensions/barrage/src/main/java/io/deephaven/extensions/barrage/chunk/FloatChunkInputStreamGenerator.java @@ -13,11 +13,11 @@ import io.deephaven.chunk.WritableObjectChunk; import io.deephaven.chunk.attributes.Values; import io.deephaven.chunk.util.pools.PoolableChunk; +import io.deephaven.engine.primitive.function.ToFloatFunction; import io.deephaven.engine.rowset.RowSet; import com.google.common.io.LittleEndianDataOutputStream; import io.deephaven.UncheckedDeephavenException; import io.deephaven.extensions.barrage.util.StreamReaderOptions; -import io.deephaven.function.ToFloatFunction; import io.deephaven.util.datastructures.LongSizedDataStructure; import io.deephaven.chunk.FloatChunk; import io.deephaven.chunk.WritableFloatChunk; diff --git a/extensions/barrage/src/main/java/io/deephaven/extensions/barrage/chunk/IntChunkInputStreamGenerator.java b/extensions/barrage/src/main/java/io/deephaven/extensions/barrage/chunk/IntChunkInputStreamGenerator.java index c6201928c17..667c1921c76 100644 --- a/extensions/barrage/src/main/java/io/deephaven/extensions/barrage/chunk/IntChunkInputStreamGenerator.java +++ b/extensions/barrage/src/main/java/io/deephaven/extensions/barrage/chunk/IntChunkInputStreamGenerator.java @@ -7,6 +7,8 @@ // @formatter:off package io.deephaven.extensions.barrage.chunk; +import java.util.function.ToIntFunction; + import io.deephaven.base.verify.Assert; import io.deephaven.chunk.ObjectChunk; import io.deephaven.chunk.WritableChunk; @@ -17,7 +19,6 @@ import com.google.common.io.LittleEndianDataOutputStream; import io.deephaven.UncheckedDeephavenException; import io.deephaven.extensions.barrage.util.StreamReaderOptions; -import io.deephaven.function.ToIntFunction; import io.deephaven.util.datastructures.LongSizedDataStructure; import io.deephaven.chunk.IntChunk; import io.deephaven.chunk.WritableIntChunk; diff --git a/extensions/barrage/src/main/java/io/deephaven/extensions/barrage/chunk/LongChunkInputStreamGenerator.java b/extensions/barrage/src/main/java/io/deephaven/extensions/barrage/chunk/LongChunkInputStreamGenerator.java index c86ca81166d..d8da1b1807d 100644 --- a/extensions/barrage/src/main/java/io/deephaven/extensions/barrage/chunk/LongChunkInputStreamGenerator.java +++ b/extensions/barrage/src/main/java/io/deephaven/extensions/barrage/chunk/LongChunkInputStreamGenerator.java @@ -7,6 +7,8 @@ // @formatter:off package io.deephaven.extensions.barrage.chunk; +import java.util.function.ToLongFunction; + import io.deephaven.base.verify.Assert; import io.deephaven.chunk.ObjectChunk; import io.deephaven.chunk.WritableChunk; @@ -17,7 +19,6 @@ import com.google.common.io.LittleEndianDataOutputStream; import io.deephaven.UncheckedDeephavenException; import io.deephaven.extensions.barrage.util.StreamReaderOptions; -import io.deephaven.function.ToLongFunction; import io.deephaven.util.datastructures.LongSizedDataStructure; import io.deephaven.chunk.LongChunk; import io.deephaven.chunk.WritableLongChunk; diff --git a/extensions/barrage/src/main/java/io/deephaven/extensions/barrage/chunk/ShortChunkInputStreamGenerator.java b/extensions/barrage/src/main/java/io/deephaven/extensions/barrage/chunk/ShortChunkInputStreamGenerator.java index 4f440df9a7f..4bd912e646b 100644 --- a/extensions/barrage/src/main/java/io/deephaven/extensions/barrage/chunk/ShortChunkInputStreamGenerator.java +++ b/extensions/barrage/src/main/java/io/deephaven/extensions/barrage/chunk/ShortChunkInputStreamGenerator.java @@ -13,11 +13,11 @@ import io.deephaven.chunk.WritableObjectChunk; import io.deephaven.chunk.attributes.Values; import io.deephaven.chunk.util.pools.PoolableChunk; +import io.deephaven.engine.primitive.function.ToShortFunction; import io.deephaven.engine.rowset.RowSet; import com.google.common.io.LittleEndianDataOutputStream; import io.deephaven.UncheckedDeephavenException; import io.deephaven.extensions.barrage.util.StreamReaderOptions; -import io.deephaven.function.ToShortFunction; import io.deephaven.util.datastructures.LongSizedDataStructure; import io.deephaven.chunk.ShortChunk; import io.deephaven.chunk.WritableShortChunk; diff --git a/replication/static/src/main/java/io/deephaven/replicators/ReplicateBarrageUtils.java b/replication/static/src/main/java/io/deephaven/replicators/ReplicateBarrageUtils.java index cf0baf87e1b..63670ad93d7 100644 --- a/replication/static/src/main/java/io/deephaven/replicators/ReplicateBarrageUtils.java +++ b/replication/static/src/main/java/io/deephaven/replicators/ReplicateBarrageUtils.java @@ -21,6 +21,10 @@ public class ReplicateBarrageUtils { public static void main(final String[] args) throws IOException { ReplicatePrimitiveCode.charToAllButBoolean("replicateBarrageUtils", CHUNK_PACKAGE + "/CharChunkInputStreamGenerator.java"); + fixupChunkInputStreamGen(CHUNK_PACKAGE + "/IntChunkInputStreamGenerator.java", "Int"); + fixupChunkInputStreamGen(CHUNK_PACKAGE + "/LongChunkInputStreamGenerator.java", "Long"); + fixupChunkInputStreamGen(CHUNK_PACKAGE + "/DoubleChunkInputStreamGenerator.java", "Double"); + ReplicatePrimitiveCode.charToAllButBoolean("replicateBarrageUtils", CHUNK_PACKAGE + "/array/CharArrayExpansionKernel.java"); @@ -39,4 +43,13 @@ private static void fixupVectorExpansionKernel(final @NotNull String path, final lines = addImport(lines, "import java.util.function." + type + "Consumer;"); FileUtils.writeLines(file, lines); } + + private static void fixupChunkInputStreamGen(final @NotNull String path, final @NotNull String type) + throws IOException { + final File file = new File(path); + List lines = FileUtils.readLines(file, Charset.defaultCharset()); + lines = removeImport(lines, "import io.deephaven.engine.primitive.function.To" + type + "Function;"); + lines = addImport(lines, "import java.util.function.To" + type + "Function;"); + FileUtils.writeLines(file, lines); + } } diff --git a/replication/static/src/main/java/io/deephaven/replicators/ReplicatePrimitiveInterfaces.java b/replication/static/src/main/java/io/deephaven/replicators/ReplicatePrimitiveInterfaces.java index a4735f6ff34..6534a11f8b9 100644 --- a/replication/static/src/main/java/io/deephaven/replicators/ReplicatePrimitiveInterfaces.java +++ b/replication/static/src/main/java/io/deephaven/replicators/ReplicatePrimitiveInterfaces.java @@ -23,11 +23,18 @@ public class ReplicatePrimitiveInterfaces { private static final String INT_ITERATOR_PATH = "engine/primitive/src/main/java/io/deephaven/engine/primitive/iterator/CloseablePrimitiveIteratorOfInt.java"; + private static final String TO_CHAR_PATH = + "engine/primitive/src/main/java/io/deephaven/engine/primitive/function/ToCharFunction.java"; + public static void main(String[] args) throws IOException { { charToShortAndByte(TASK, CHAR_CONSUMER_PATH); charToFloat(TASK, CHAR_CONSUMER_PATH, null); } + { + charToShortAndByte(TASK, TO_CHAR_PATH); + charToFloat(TASK, TO_CHAR_PATH, null); + } { charToShortAndByte(TASK, CHAR_TO_INT_PATH); final String floatToIntPath = charToFloat(TASK, CHAR_TO_INT_PATH, null);