This is an automated email from the ASF dual-hosted git repository. amashenkov pushed a commit to branch ignite-15783 in repository https://gitbox.apache.org/repos/asf/ignite-3.git
commit 344b2a4c0a7794ef8bb4c10d256607f73010535c Author: Andrew Mashenkov <[email protected]> AuthorDate: Wed Oct 27 14:06:26 2021 +0300 Minor. --- .../schema/marshaller/SerializerFactory.java | 6 ++-- .../ignite/internal/table/KeyValueViewImpl.java | 35 ++++++++++++++++------ 2 files changed, 29 insertions(+), 12 deletions(-) diff --git a/modules/schema/src/main/java/org/apache/ignite/internal/schema/marshaller/SerializerFactory.java b/modules/schema/src/main/java/org/apache/ignite/internal/schema/marshaller/SerializerFactory.java index bbc173c..ca601d5 100644 --- a/modules/schema/src/main/java/org/apache/ignite/internal/schema/marshaller/SerializerFactory.java +++ b/modules/schema/src/main/java/org/apache/ignite/internal/schema/marshaller/SerializerFactory.java @@ -29,14 +29,14 @@ public interface SerializerFactory { /** * @return Serializer factory back by code generator. */ - public static SerializerFactory createGeneratedSerializerFactory() { + static SerializerFactory createGeneratedSerializerFactory() { return new AsmSerializerGenerator(); } /** * @return Reflection-based serializer factory. */ - public static SerializerFactory createJavaSerializerFactory() { + static SerializerFactory createJavaSerializerFactory() { return new JavaSerializerFactory(); } @@ -48,5 +48,5 @@ public interface SerializerFactory { * @param valClass Value class. * @return Serializer. */ - public Serializer create(SchemaDescriptor schema, Class<?> keyClass, Class<?> valClass); + Serializer create(SchemaDescriptor schema, Class<?> keyClass, Class<?> valClass); } diff --git a/modules/table/src/main/java/org/apache/ignite/internal/table/KeyValueViewImpl.java b/modules/table/src/main/java/org/apache/ignite/internal/table/KeyValueViewImpl.java index 3e5615f..91bd329 100644 --- a/modules/table/src/main/java/org/apache/ignite/internal/table/KeyValueViewImpl.java +++ b/modules/table/src/main/java/org/apache/ignite/internal/table/KeyValueViewImpl.java @@ -237,8 +237,7 @@ public class KeyValueViewImpl<K, V> extends AbstractTableView implements KeyValu } /** {@inheritDoc} */ - @Override - public <R extends Serializable> R invoke(@NotNull K key, InvokeProcessor<K, V, R> proc, Serializable... args) { + @Override public <R extends Serializable> R invoke(@NotNull K key, InvokeProcessor<K, V, R> proc, Serializable... args) { throw new UnsupportedOperationException("Not implemented yet."); } @@ -281,7 +280,7 @@ public class KeyValueViewImpl<K, V> extends AbstractTableView implements KeyValu if (marsh.schemaVersion == schemaVersion) return marsh; - // TODO: Cache marshaller for schema or upgrade row? + // TODO: Cache marshaller for schema version or upgrade row? marsh = new KVMarshallerImpl<>( schemaVersion, marshallerFactory.create( @@ -304,36 +303,54 @@ public class KeyValueViewImpl<K, V> extends AbstractTableView implements KeyValu return marsh.marshal(key, o); } + /** + * Marshaller wrapper for KV view. + * Note: Serializer must be re-created if schema changed. + * + * @param <K> Key type. + * @param <V> Value type. + */ private static class KVMarshallerImpl<K, V> implements KVMarshaller<K, V> { + /** Schema version. */ private final int schemaVersion; - private Serializer delegate; + /** Serializer. */ + private Serializer serializer; - public KVMarshallerImpl(int schemaVersion, Serializer delegate) { + /** + * Creates KV marshaller. + * + * @param schemaVersion Schema version. + * @param serializer Serializer. + */ + public KVMarshallerImpl(int schemaVersion, Serializer serializer) { this.schemaVersion = schemaVersion; - this.delegate = delegate; + this.serializer = serializer; } + /** {@inheritDoc} */ @Override public BinaryRow marshal(@NotNull K key, V val) { try { - return new ByteBufferRow(ByteBuffer.wrap(delegate.serialize(key, val)).order(ByteOrder.LITTLE_ENDIAN)); + return new ByteBufferRow(ByteBuffer.wrap(serializer.serialize(key, val)).order(ByteOrder.LITTLE_ENDIAN)); } catch (SerializationException e) { throw new IgniteException(e); } } + /** {@inheritDoc} */ @NotNull @Override public K unmarshalKey(@NotNull BinaryRow row) { try { - return delegate.deserializeKey(row.bytes()); + return serializer.deserializeKey(row.bytes()); } catch (SerializationException e) { throw new IgniteException(e); } } + /** {@inheritDoc} */ @Nullable @Override public V unmarshalValue(@NotNull BinaryRow row) { try { - return delegate.deserializeValue(row.bytes()); + return serializer.deserializeValue(row.bytes()); } catch (SerializationException e) { throw new IgniteException(e); }
