From b6b00548b0a1b6fe5565c1645e591d0ac2c63d71 Mon Sep 17 00:00:00 2001 From: Liang Zhang Date: Wed, 23 Oct 2024 19:08:39 +0800 Subject: [PATCH] Refactor InventoryColumnValueReaderEngine (#33375) --- .../column/InventoryColumnValueReaderEngine.java | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/ingest/dumper/inventory/column/InventoryColumnValueReaderEngine.java b/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/ingest/dumper/inventory/column/InventoryColumnValueReaderEngine.java index e7e5efd1e2a6d..338ffb9450f31 100644 --- a/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/ingest/dumper/inventory/column/InventoryColumnValueReaderEngine.java +++ b/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/ingest/dumper/inventory/column/InventoryColumnValueReaderEngine.java @@ -17,6 +17,7 @@ package org.apache.shardingsphere.data.pipeline.core.ingest.dumper.inventory.column; +import lombok.RequiredArgsConstructor; import org.apache.shardingsphere.infra.database.core.spi.DatabaseTypedSPILoader; import org.apache.shardingsphere.infra.database.core.type.DatabaseType; @@ -32,13 +33,10 @@ /** * Inventory column value reader engine. */ +@RequiredArgsConstructor public final class InventoryColumnValueReaderEngine { - private final DialectInventoryColumnValueReader columnReader; - - public InventoryColumnValueReaderEngine(final DatabaseType databaseType) { - columnReader = DatabaseTypedSPILoader.findService(DialectInventoryColumnValueReader.class, databaseType).orElse(null); - } + private final DatabaseType databaseType; /** * Read column value. @@ -56,10 +54,11 @@ public Object read(final ResultSet resultSet, final ResultSetMetaData metaData, } private Optional readDialectValue(final ResultSet resultSet, final ResultSetMetaData metaData, final int columnIndex) throws SQLException { - return null == columnReader ? Optional.empty() : columnReader.read(resultSet, metaData, columnIndex); + Optional dialectColumnReader = DatabaseTypedSPILoader.findService(DialectInventoryColumnValueReader.class, databaseType); + return dialectColumnReader.isPresent() ? dialectColumnReader.get().read(resultSet, metaData, columnIndex) : Optional.empty(); } - private static Object readStandardValue(final ResultSet resultSet, final ResultSetMetaData metaData, final int columnIndex) throws SQLException { + private Object readStandardValue(final ResultSet resultSet, final ResultSetMetaData metaData, final int columnIndex) throws SQLException { int columnType = metaData.getColumnType(columnIndex); switch (columnType) { case Types.BOOLEAN: @@ -129,7 +128,7 @@ private static Object readStandardValue(final ResultSet resultSet, final ResultS } } - private static boolean isSigned(final ResultSetMetaData metaData, final int columnIndex) throws SQLException { + private boolean isSigned(final ResultSetMetaData metaData, final int columnIndex) throws SQLException { return metaData.isSigned(columnIndex); } }