This is an automated email from the ASF dual-hosted git repository.
hansva pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/hop.git
The following commit(s) were added to refs/heads/main by this push:
new 80a9573a9c Sonar: Replace if-else chains with switch expressions for
better readability (#7007)
80a9573a9c is described below
commit 80a9573a9c0565db61f8d015e676e0f336713b02
Author: Lance <[email protected]>
AuthorDate: Fri Apr 17 20:39:39 2026 +0800
Sonar: Replace if-else chains with switch expressions for better
readability (#7007)
* Refactor: Replace if-else chains with switch expressions for better
readability
Signed-off-by: lance <[email protected]>
* Refactor: Replace if-else chains with switch expressions for better
readability
Signed-off-by: lance <[email protected]>
---------
Signed-off-by: lance <[email protected]>
---
core/src/main/java/org/apache/hop/core/Const.java | 2 +-
.../org/apache/hop/core/row/ValueDataUtil.java | 37 ++++---
.../test/java/org/apache/hop/core/CounterTest.java | 6 +-
.../java/org/apache/hop/core/CountersTest.java | 2 +-
.../org/apache/hop/core/row/RowDataUtilTest.java | 10 +-
.../multi/MultiMetadataProviderTest.java | 12 +--
.../multi/MultiMetadataSerializerTest.java | 8 +-
.../hop/core/auth/kerberos/KerberosUtil.java | 14 ++-
.../java/org/apache/hop/core/gui/BasePainter.java | 19 ++--
.../caching/BaseCachingExecutionInfoLocation.java | 7 +-
.../java/org/apache/hop/history/AuditState.java | 12 +--
.../java/org/apache/hop/www/AddExportServlet.java | 2 +-
.../apache/hop/www/DeleteExecutionInfoServlet.java | 2 +-
.../hop/www/RegisterExecutionInfoServlet.java | 2 +-
.../hop/www/StartExecutionPipelineServlet.java | 2 +-
.../org/apache/hop/www/StartPipelineServlet.java | 2 +-
.../org/apache/hop/www/StartWorkflowServlet.java | 2 +-
.../hop/core/auth/kerberos/KerberosUtilTests.java | 108 +++++++++++++++++++
.../pipeline/transform/DynamicWaitTimesTest.java | 4 +-
.../actions/dostounix/ActionDosToUnix.java | 14 +--
.../hop/databases/as400/AS400DatabaseMeta.java | 43 ++++----
.../hop/databases/cache/CacheDatabaseMeta.java | 44 ++++----
.../clickhouse/ClickhouseDatabaseMeta.java | 42 +++-----
.../hop/databases/cratedb/CrateDBDatabaseMeta.java | 10 +-
.../apache/hop/databases/db2/DB2DatabaseMeta.java | 44 ++++----
.../hop/databases/derby/DerbyDatabaseMeta.java | 48 ++++-----
.../hop/databases/doris/DorisDatabaseMeta.java | 45 ++++----
.../hop/databases/duckdb/DuckDBDatabaseMeta.java | 47 ++++----
.../hop/databases/exasol4/Exasol4DatabaseMeta.java | 34 +++---
.../databases/firebird/FirebirdDatabaseMeta.java | 38 +++----
.../hop/databases/generic/GenericDatabaseMeta.java | 46 ++++----
.../googlebigquery/GoogleBigQueryDatabaseMeta.java | 23 ++--
.../apache/hop/databases/h2/H2DatabaseMeta.java | 45 ++++----
.../hop/databases/hive/HiveDatabaseMeta.java | 53 ++++-----
.../hypersonic/HypersonicDatabaseMeta.java | 45 ++++----
.../databases/informix/InformixDatabaseMeta.java | 48 ++++-----
.../hop/databases/ingres/IngresDatabaseMeta.java | 52 ++++-----
.../apache/hop/vfs/s3/metadata/S3MetaEditor.java | 71 +++++++------
.../salesforce/SalesforceConnectionEditor.java | 18 ++--
.../pipeline/transforms/coalesce/CoalesceMeta.java | 48 ++++-----
.../transforms/denormaliser/Denormaliser.java | 30 +++---
.../FastSimpleGenericEdifactDirectXMLParser.java | 2 +-
.../mongo/wrapper/field/MongoArrayExpansion.java | 15 ++-
.../apache/hop/mongo/wrapper/field/MongoField.java | 50 ++++-----
.../field/MongodbInputDiscoverFieldsImpl.java | 118 ++++++++++-----------
.../transforms/repeatfields/RepeatFields.java | 12 +--
.../vertica/bulkloader/VerticaBulkLoader.java | 49 ++++-----
.../transforms/webservices/WebService.java | 55 +++++-----
.../transforms/webservices/wsdl/WsdlUtils.java | 25 +++--
.../apache/hop/ui/core/dialog/EnterTextDialog.java | 10 +-
.../ui/hopgui/terminal/HopGuiTerminalPanel.java | 2 +-
.../hop/ui/hopgui/terminal/JediTerminalWidget.java | 69 ++++++------
52 files changed, 763 insertions(+), 785 deletions(-)
diff --git a/core/src/main/java/org/apache/hop/core/Const.java
b/core/src/main/java/org/apache/hop/core/Const.java
index 32c2ba8e38..77c7fe9c22 100644
--- a/core/src/main/java/org/apache/hop/core/Const.java
+++ b/core/src/main/java/org/apache/hop/core/Const.java
@@ -50,10 +50,10 @@ import java.util.TimeZone;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import org.apache.commons.lang3.ArrayUtils;
-import org.apache.commons.lang3.StringEscapeUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.exception.ExceptionUtils;
import org.apache.commons.lang3.text.StrBuilder;
+import org.apache.commons.text.StringEscapeUtils;
import org.apache.hop.core.exception.HopException;
import org.apache.hop.core.row.IValueMeta;
import org.apache.hop.core.util.EnvUtil;
diff --git a/core/src/main/java/org/apache/hop/core/row/ValueDataUtil.java
b/core/src/main/java/org/apache/hop/core/row/ValueDataUtil.java
index d1f04f9f56..ea504bc42d 100644
--- a/core/src/main/java/org/apache/hop/core/row/ValueDataUtil.java
+++ b/core/src/main/java/org/apache/hop/core/row/ValueDataUtil.java
@@ -1643,7 +1643,7 @@ public class ValueDataUtil {
* always in the range 0-65535.
*
* @return A hex-to-char decoded String
- * @throws HopValueException
+ * @throws HopValueException ex
*/
public static String hexToCharDecode(IValueMeta meta, Object data) throws
HopValueException {
if (meta.isNull(data)) {
@@ -1679,21 +1679,26 @@ public class ValueDataUtil {
throw new HopValueException("invalid hex digit '" + c + "'.");
}
- if (charNr == 4) {
- nextChar = (nibble << 12);
- charNr--;
- } else if (charNr == 3) {
- nextChar += (nibble << 8);
- charNr--;
- } else if (charNr == 2) {
- nextChar += (nibble << 4);
- charNr--;
- } else {
- // charNr == 1
- nextChar += nibble;
- chArray[j] = (char) nextChar;
- charNr = 4;
- j++;
+ switch (charNr) {
+ case 4 -> {
+ nextChar = (nibble << 12);
+ charNr--;
+ }
+ case 3 -> {
+ nextChar += (nibble << 8);
+ charNr--;
+ }
+ case 2 -> {
+ nextChar += (nibble << 4);
+ charNr--;
+ }
+ default -> {
+ // charNr == 1
+ nextChar += nibble;
+ chArray[j] = (char) nextChar;
+ charNr = 4;
+ j++;
+ }
}
}
diff --git a/core/src/test/java/org/apache/hop/core/CounterTest.java
b/core/src/test/java/org/apache/hop/core/CounterTest.java
index 909d9fc0e1..c95ac8471d 100644
--- a/core/src/test/java/org/apache/hop/core/CounterTest.java
+++ b/core/src/test/java/org/apache/hop/core/CounterTest.java
@@ -27,7 +27,7 @@ import org.junit.jupiter.api.Test;
class CounterTest {
/** Constructor test 1. */
@Test
- public void testConstructor1() {
+ void testConstructor1() {
Counter cnt1 = new Counter();
assertEquals(1L, cnt1.getCounter());
assertEquals(1L, cnt1.getIncrement());
@@ -59,7 +59,7 @@ class CounterTest {
/** Test the setting of stuff. */
@Test
- public void testSets() {
+ void testSets() {
Counter cnt1 = new Counter();
cnt1.setCounter(5L);
assertEquals(5L, cnt1.getCounter());
@@ -76,7 +76,7 @@ class CounterTest {
/** Test next(). */
@Test
- public void testNext() {
+ void testNext() {
Counter cnt1 = new Counter();
cnt1.setCounter(2L);
assertEquals(2L, cnt1.getAndNext());
diff --git a/core/src/test/java/org/apache/hop/core/CountersTest.java
b/core/src/test/java/org/apache/hop/core/CountersTest.java
index 6c171df14b..6891c49506 100644
--- a/core/src/test/java/org/apache/hop/core/CountersTest.java
+++ b/core/src/test/java/org/apache/hop/core/CountersTest.java
@@ -27,7 +27,7 @@ import org.junit.jupiter.api.Test;
class CountersTest {
/** Test about all. Class is not too big. */
@Test
- public void testGeneralFunctionality() {
+ void testGeneralFunctionality() {
Counters cntrs = Counters.getInstance();
assertNull(cntrs.getCounter("counter1"));
cntrs.setCounter("counter1", new Counter());
diff --git a/core/src/test/java/org/apache/hop/core/row/RowDataUtilTest.java
b/core/src/test/java/org/apache/hop/core/row/RowDataUtilTest.java
index 14b78230cd..b5599df6cf 100644
--- a/core/src/test/java/org/apache/hop/core/row/RowDataUtilTest.java
+++ b/core/src/test/java/org/apache/hop/core/row/RowDataUtilTest.java
@@ -42,7 +42,7 @@ class RowDataUtilTest {
}
@Test
- public void testResizeArray() {
+ void testResizeArray() {
Object[] arr1 = new Object[] {"test", Boolean.TRUE, 100L, 101L, new
String("test1")};
Object[] nullArr =
new Object[] {
@@ -72,7 +72,7 @@ class RowDataUtilTest {
}
@Test
- public void testRemoveItem() {
+ void testRemoveItem() {
Object[] arr = new Object[] {1L, 2L, 3L, 4L, 5L};
// Remove the first item
@@ -106,7 +106,7 @@ class RowDataUtilTest {
}
@Test
- public void testAddRowData() {
+ void testAddRowData() {
Object[] arr = new Object[] {1L, 2L, 3L};
// Do all different combinations of adding rows to
@@ -129,7 +129,7 @@ class RowDataUtilTest {
}
@Test
- public void testAddValueData() {
+ void testAddValueData() {
Object[] arr1 = new Object[] {1L};
Object[] arr2 = new Object[] {1L, 2L};
@@ -143,7 +143,7 @@ class RowDataUtilTest {
}
@Test
- public void testRemoveItems() {
+ void testRemoveItems() {
Object[] arr1 = new Object[] {1L, 2L, 3L, 4L, 5L};
Object[] comp1 = new Object[] {2L, 4L};
diff --git
a/core/src/test/java/org/apache/hop/metadata/serializer/multi/MultiMetadataProviderTest.java
b/core/src/test/java/org/apache/hop/metadata/serializer/multi/MultiMetadataProviderTest.java
index 9c8cf4af54..a681158c58 100644
---
a/core/src/test/java/org/apache/hop/metadata/serializer/multi/MultiMetadataProviderTest.java
+++
b/core/src/test/java/org/apache/hop/metadata/serializer/multi/MultiMetadataProviderTest.java
@@ -34,7 +34,7 @@ import org.junit.jupiter.api.Test;
class MultiMetadataProviderTest extends MetadataTestBase {
@Test
- public void testGetDescription() {
+ void testGetDescription() {
String description = multiMetadataProvider.getDescription();
assertNotNull(description);
assertEquals(
@@ -42,7 +42,7 @@ class MultiMetadataProviderTest extends MetadataTestBase {
}
@Test
- public void testGetMetadataClasses() {
+ void testGetMetadataClasses() {
List<Class<IHopMetadata>> list =
multiMetadataProvider.getMetadataClasses();
assertEquals(2, list.size());
assertTrue(list.contains(MetadataType1.class));
@@ -50,13 +50,13 @@ class MultiMetadataProviderTest extends MetadataTestBase {
}
@Test
- public void testGetMetadataClassForKey() throws HopException {
+ void testGetMetadataClassForKey() throws HopException {
assertEquals(MetadataType1.class,
multiMetadataProvider.getMetadataClassForKey("type-1"));
assertEquals(MetadataType2.class,
multiMetadataProvider.getMetadataClassForKey("type-2"));
}
@Test
- public void testFindProvider() {
+ void testFindProvider() {
IHopMetadataProvider look1 =
multiMetadataProvider.findProvider("Provider1");
assertNotNull(look1);
assertEquals(provider1, look1);
@@ -69,13 +69,13 @@ class MultiMetadataProviderTest extends MetadataTestBase {
}
@Test
- public void testGetProviders() {
+ void testGetProviders() {
List<IHopMetadataProvider> list = multiMetadataProvider.getProviders();
assertEquals(3, list.size());
}
@Test
- public void testSetProviders() {
+ void testSetProviders() {
List<IHopMetadataProvider> list = multiMetadataProvider.getProviders();
MemoryMetadataProvider provider4 =
new MemoryMetadataProvider(
diff --git
a/core/src/test/java/org/apache/hop/metadata/serializer/multi/MultiMetadataSerializerTest.java
b/core/src/test/java/org/apache/hop/metadata/serializer/multi/MultiMetadataSerializerTest.java
index c8bf0e2ad8..15f9c17820 100644
---
a/core/src/test/java/org/apache/hop/metadata/serializer/multi/MultiMetadataSerializerTest.java
+++
b/core/src/test/java/org/apache/hop/metadata/serializer/multi/MultiMetadataSerializerTest.java
@@ -60,7 +60,7 @@ class MultiMetadataSerializerTest extends MetadataTestBase {
}
@Test
- public void testLoad() throws HopException {
+ void testLoad() throws HopException {
IHopMetadataSerializer<MetadataType1> s1 =
multiMetadataProvider.getSerializer(MetadataType1.class);
IHopMetadataSerializer<MetadataType2> s2 =
@@ -90,7 +90,7 @@ class MultiMetadataSerializerTest extends MetadataTestBase {
}
@Test
- public void testSave() throws HopException {
+ void testSave() throws HopException {
MetadataType1 m6 = new MetadataType1("t1o6", "d6", "v6");
multiMetadataProvider.getSerializer(MetadataType1.class).save(m6);
@@ -122,7 +122,7 @@ class MultiMetadataSerializerTest extends MetadataTestBase {
}
@Test
- public void testListObjectNames() throws HopException {
+ void testListObjectNames() throws HopException {
IHopMetadataSerializer<MetadataType1> s1 =
multiMetadataProvider.getSerializer(MetadataType1.class);
IHopMetadataSerializer<MetadataType2> s2 =
@@ -139,7 +139,7 @@ class MultiMetadataSerializerTest extends MetadataTestBase {
}
@Test
- public void testExists() throws HopException {
+ void testExists() throws HopException {
IHopMetadataSerializer<MetadataType1> s1 =
multiMetadataProvider.getSerializer(MetadataType1.class);
IHopMetadataSerializer<MetadataType2> s2 =
diff --git
a/engine/src/main/java/org/apache/hop/core/auth/kerberos/KerberosUtil.java
b/engine/src/main/java/org/apache/hop/core/auth/kerberos/KerberosUtil.java
index 96a4c7a05b..204e5c1f75 100644
--- a/engine/src/main/java/org/apache/hop/core/auth/kerberos/KerberosUtil.java
+++ b/engine/src/main/java/org/apache/hop/core/auth/kerberos/KerberosUtil.java
@@ -62,7 +62,7 @@ public class KerberosUtil {
public static final String PENTAHO_JAAS_DEBUG = "PENTAHO_JAAS_DEBUG";
/** Base properties to be inherited by all other LOGIN_CONFIG* configuration
maps. */
- public static final Map<String, String> LOGIN_CONFIG_BASE =
createLoginConfigBaseMap();
+ protected static final Map<String, String> LOGIN_CONFIG_BASE =
createLoginConfigBaseMap();
/** Login Configuration options for KERBEROS_USER mode. */
private static final Map<String, String> LOGIN_CONFIG_OPTS_KERBEROS_USER =
@@ -99,7 +99,7 @@ public class KerberosUtil {
}
/** Login Configuration options for KERBEROS_KEYTAB mode. */
- public static final Map<String, String> LOGIN_CONFIG_OPTS_KERBEROS_KEYTAB =
+ protected static final Map<String, String> LOGIN_CONFIG_OPTS_KERBEROS_KEYTAB
=
createLoginConfigOptsKerberosKeytabMap();
private static Map<String, String> createLoginConfigOptsKerberosKeytabMap() {
@@ -145,12 +145,10 @@ public class KerberosUtil {
new Subject(),
callbacks -> {
for (Callback callback : callbacks) {
- if (callback instanceof NameCallback nameCallback) {
- nameCallback.setName(principal);
- } else if (callback instanceof PasswordCallback passwordCallback) {
- passwordCallback.setPassword(password.toCharArray());
- } else {
- throw new UnsupportedCallbackException(callback);
+ switch (callback) {
+ case NameCallback nc -> nc.setName(principal);
+ case PasswordCallback pc ->
pc.setPassword(password.toCharArray());
+ default -> throw new UnsupportedCallbackException(callback);
}
}
},
diff --git a/engine/src/main/java/org/apache/hop/core/gui/BasePainter.java
b/engine/src/main/java/org/apache/hop/core/gui/BasePainter.java
index b7c88214c4..13abdf3dd1 100644
--- a/engine/src/main/java/org/apache/hop/core/gui/BasePainter.java
+++ b/engine/src/main/java/org/apache/hop/core/gui/BasePainter.java
@@ -38,7 +38,7 @@ import org.apache.hop.pipeline.transform.stream.StreamIcon;
@Getter
@Setter
-public abstract class BasePainter<Hop extends BaseHopMeta<?>, Part extends
IBaseMeta> {
+public abstract class BasePainter<H extends BaseHopMeta<?>, P extends
IBaseMeta> {
private static final Class<?> PKG = BasePainter.class;
@@ -72,7 +72,7 @@ public abstract class BasePainter<Hop extends BaseHopMeta<?>,
Part extends IBase
private int noteFontHeight;
- protected Hop candidate;
+ protected H candidate;
protected Point maximum;
protected boolean showingNavigationView;
@@ -445,7 +445,7 @@ public abstract class BasePainter<Hop extends
BaseHopMeta<?>, Part extends IBase
return 19 + (lineWidth - 1) * 5; // arrowhead length
}
- protected int[] getLine(Part fs, Part ts) {
+ protected int[] getLine(P fs, P ts) {
if (fs == null || ts == null) {
return null;
}
@@ -462,7 +462,7 @@ public abstract class BasePainter<Hop extends
BaseHopMeta<?>, Part extends IBase
return new int[] {x1, y1, x2, y2};
}
- protected void drawArrow(EImage arrow, int[] line, Hop hop, Object
startObject, Object endObject)
+ protected void drawArrow(EImage arrow, int[] line, H hop, Object
startObject, Object endObject)
throws HopException {
Point screenFrom = real2screen(line[0], line[1]);
Point screenTo = real2screen(line[2], line[3]);
@@ -490,7 +490,7 @@ public abstract class BasePainter<Hop extends
BaseHopMeta<?>, Part extends IBase
double theta,
int size,
double factor,
- Hop jobHop,
+ H jobHop,
Object startObject,
Object endObject)
throws HopException;
@@ -536,9 +536,8 @@ public abstract class BasePainter<Hop extends
BaseHopMeta<?>, Part extends IBase
// 3) Fixed width; height follows content aspect ratio (capped) so the
minimap fits the graph.
//
int viewportHeight =
- Math.min(
- VIEWPORT_HEIGHT_MAX,
- Math.max(20, (int) Math.round(VIEWPORT_WIDTH * graphRangeY /
graphRangeX)));
+ Math.clamp(
+ (int) Math.round(VIEWPORT_WIDTH * graphRangeY / graphRangeX), 20,
VIEWPORT_HEIGHT_MAX);
double scale = Math.min(VIEWPORT_WIDTH / graphRangeX, viewportHeight /
graphRangeY);
double contentWidth = graphRangeX * scale;
double contentHeight = graphRangeY * scale;
@@ -566,8 +565,8 @@ public abstract class BasePainter<Hop extends
BaseHopMeta<?>, Part extends IBase
double viewHeight = visibleHeightGraph * scale;
// Clamp overlay to the drawn content area (avoid drawing outside the
light blue)
- viewX = Math.max(contentLeft, Math.min(contentLeft + contentWidth - 1,
viewX));
- viewY = Math.max(contentTop, Math.min(contentTop + contentHeight - 1,
viewY));
+ viewX = Math.clamp(viewX, contentLeft, contentLeft + contentWidth - 1);
+ viewY = Math.clamp(viewY, contentTop, contentTop + contentHeight - 1);
viewWidth = Math.min(viewWidth, contentLeft + contentWidth - viewX);
viewHeight = Math.min(viewHeight, contentTop + contentHeight - viewY);
viewWidth = Math.max(0, viewWidth);
diff --git
a/engine/src/main/java/org/apache/hop/execution/caching/BaseCachingExecutionInfoLocation.java
b/engine/src/main/java/org/apache/hop/execution/caching/BaseCachingExecutionInfoLocation.java
index 3895f00f1a..03edced4ec 100644
---
a/engine/src/main/java/org/apache/hop/execution/caching/BaseCachingExecutionInfoLocation.java
+++
b/engine/src/main/java/org/apache/hop/execution/caching/BaseCachingExecutionInfoLocation.java
@@ -234,8 +234,7 @@ public abstract class BaseCachingExecutionInfoLocation
implements IExecutionInfo
// Reverse sort the IDs by date
//
List<DatedId> datedIds = new ArrayList<>(ids);
- datedIds.sort(Comparator.comparing(DatedId::getDate));
- Collections.reverse(datedIds); // Newest first
+ datedIds.sort(Comparator.comparing(DatedId::getDate).reversed());
// Take only the first from the list
//
@@ -277,8 +276,8 @@ public abstract class BaseCachingExecutionInfoLocation
implements IExecutionInfo
// Reverse sort the IDs by date
//
List<DatedId> datedIds = new ArrayList<>(dateIds);
- datedIds.sort(Comparator.comparing(DatedId::getDate));
- Collections.reverse(datedIds); // Newest first
+ // Newest first
+ datedIds.sort(Comparator.comparing(DatedId::getDate).reversed());
// Take only the first from the list
//
diff --git a/engine/src/main/java/org/apache/hop/history/AuditState.java
b/engine/src/main/java/org/apache/hop/history/AuditState.java
index 5dec386ac7..1ad0e7fba7 100644
--- a/engine/src/main/java/org/apache/hop/history/AuditState.java
+++ b/engine/src/main/java/org/apache/hop/history/AuditState.java
@@ -61,24 +61,24 @@ public class AuditState {
public boolean extractBoolean(String key, boolean defaultValue) {
Object only = getStateMap().get(key);
- if (only instanceof Boolean) {
- return (Boolean) only;
+ if (only instanceof Boolean b) {
+ return b;
}
return defaultValue;
}
public String extractString(String key, String defaultValue) {
Object object = getStateMap().get(key);
- if (object instanceof String) {
- return (String) object;
+ if (object instanceof String s) {
+ return s;
}
return defaultValue;
}
public int extractInteger(String key, int defaultValue) {
Object object = getStateMap().get(key);
- if (object instanceof Integer) {
- return (Integer) object;
+ if (object instanceof Integer i) {
+ return i;
}
return defaultValue;
}
diff --git a/engine/src/main/java/org/apache/hop/www/AddExportServlet.java
b/engine/src/main/java/org/apache/hop/www/AddExportServlet.java
index b03e242c06..f1fb64a4a7 100644
--- a/engine/src/main/java/org/apache/hop/www/AddExportServlet.java
+++ b/engine/src/main/java/org/apache/hop/www/AddExportServlet.java
@@ -26,7 +26,7 @@ import java.io.OutputStream;
import java.io.PrintWriter;
import java.io.Serial;
import java.util.UUID;
-import org.apache.commons.lang3.StringEscapeUtils;
+import org.apache.commons.text.StringEscapeUtils;
import org.apache.commons.vfs2.FileObject;
import org.apache.hop.core.annotations.HopServerServlet;
import org.apache.hop.core.logging.LoggingObjectType;
diff --git
a/engine/src/main/java/org/apache/hop/www/DeleteExecutionInfoServlet.java
b/engine/src/main/java/org/apache/hop/www/DeleteExecutionInfoServlet.java
index 914fa1930b..6f5c884f0c 100644
--- a/engine/src/main/java/org/apache/hop/www/DeleteExecutionInfoServlet.java
+++ b/engine/src/main/java/org/apache/hop/www/DeleteExecutionInfoServlet.java
@@ -24,8 +24,8 @@ import java.io.BufferedReader;
import java.io.IOException;
import java.io.PrintWriter;
import java.io.Serial;
-import org.apache.commons.lang3.StringEscapeUtils;
import org.apache.commons.lang3.StringUtils;
+import org.apache.commons.text.StringEscapeUtils;
import org.apache.hop.core.Const;
import org.apache.hop.core.annotations.HopServerServlet;
import org.apache.hop.core.exception.HopException;
diff --git
a/engine/src/main/java/org/apache/hop/www/RegisterExecutionInfoServlet.java
b/engine/src/main/java/org/apache/hop/www/RegisterExecutionInfoServlet.java
index c534e2aae4..4b8860648c 100644
--- a/engine/src/main/java/org/apache/hop/www/RegisterExecutionInfoServlet.java
+++ b/engine/src/main/java/org/apache/hop/www/RegisterExecutionInfoServlet.java
@@ -24,8 +24,8 @@ import java.io.BufferedReader;
import java.io.IOException;
import java.io.PrintWriter;
import java.io.Serial;
-import org.apache.commons.lang3.StringEscapeUtils;
import org.apache.commons.lang3.StringUtils;
+import org.apache.commons.text.StringEscapeUtils;
import org.apache.hop.core.Const;
import org.apache.hop.core.annotations.HopServerServlet;
import org.apache.hop.core.exception.HopException;
diff --git
a/engine/src/main/java/org/apache/hop/www/StartExecutionPipelineServlet.java
b/engine/src/main/java/org/apache/hop/www/StartExecutionPipelineServlet.java
index 2973bb5cad..96120bf68b 100644
--- a/engine/src/main/java/org/apache/hop/www/StartExecutionPipelineServlet.java
+++ b/engine/src/main/java/org/apache/hop/www/StartExecutionPipelineServlet.java
@@ -26,7 +26,7 @@ import java.io.IOException;
import java.io.PrintWriter;
import java.io.Serial;
import java.net.URLEncoder;
-import org.apache.commons.lang3.StringEscapeUtils;
+import org.apache.commons.text.StringEscapeUtils;
import org.apache.hop.core.Const;
import org.apache.hop.core.annotations.HopServerServlet;
import org.apache.hop.core.exception.HopException;
diff --git a/engine/src/main/java/org/apache/hop/www/StartPipelineServlet.java
b/engine/src/main/java/org/apache/hop/www/StartPipelineServlet.java
index a418691684..d308d67074 100644
--- a/engine/src/main/java/org/apache/hop/www/StartPipelineServlet.java
+++ b/engine/src/main/java/org/apache/hop/www/StartPipelineServlet.java
@@ -27,8 +27,8 @@ import java.io.PrintWriter;
import java.io.Serial;
import java.net.URLEncoder;
import java.util.UUID;
-import org.apache.commons.lang3.StringEscapeUtils;
import org.apache.commons.lang3.StringUtils;
+import org.apache.commons.text.StringEscapeUtils;
import org.apache.hop.core.Const;
import org.apache.hop.core.annotations.HopServerServlet;
import org.apache.hop.core.exception.HopException;
diff --git a/engine/src/main/java/org/apache/hop/www/StartWorkflowServlet.java
b/engine/src/main/java/org/apache/hop/www/StartWorkflowServlet.java
index 3b752f5f32..814b8cfbb3 100644
--- a/engine/src/main/java/org/apache/hop/www/StartWorkflowServlet.java
+++ b/engine/src/main/java/org/apache/hop/www/StartWorkflowServlet.java
@@ -27,7 +27,7 @@ import java.io.PrintWriter;
import java.io.Serial;
import java.net.URLEncoder;
import java.util.UUID;
-import org.apache.commons.lang3.StringEscapeUtils;
+import org.apache.commons.text.StringEscapeUtils;
import org.apache.hop.core.Const;
import org.apache.hop.core.annotations.HopServerServlet;
import org.apache.hop.core.logging.HopLogStore;
diff --git
a/engine/src/test/java/org/apache/hop/core/auth/kerberos/KerberosUtilTests.java
b/engine/src/test/java/org/apache/hop/core/auth/kerberos/KerberosUtilTests.java
new file mode 100644
index 0000000000..2ee40b0bfa
--- /dev/null
+++
b/engine/src/test/java/org/apache/hop/core/auth/kerberos/KerberosUtilTests.java
@@ -0,0 +1,108 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.hop.core.auth.kerberos;
+
+import static org.junit.jupiter.api.Assertions.assertArrayEquals;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
+import static org.junit.jupiter.api.Assertions.assertThrows;
+import static org.junit.jupiter.api.Assertions.fail;
+
+import javax.security.auth.callback.Callback;
+import javax.security.auth.callback.CallbackHandler;
+import javax.security.auth.callback.NameCallback;
+import javax.security.auth.callback.PasswordCallback;
+import javax.security.auth.callback.TextOutputCallback;
+import javax.security.auth.callback.UnsupportedCallbackException;
+import javax.security.auth.login.LoginContext;
+import org.junit.jupiter.api.Test;
+
+/** Unit test for {@link KerberosUtil} */
+class KerberosUtilTests {
+ private final KerberosUtil kerberos = new KerberosUtil();
+
+ @Test
+ void testGetLoginContextFromKeytab() throws Exception {
+ String principal = "[email protected]";
+ String keytab = "/tmp/test.keytab";
+
+ LoginContext context = kerberos.getLoginContextFromKeytab(principal,
keytab);
+ assertNotNull(context);
+ }
+
+ @Test
+ void testGetLoginContextFromUsernamePassword_callback() throws Exception {
+ String principal = "[email protected]";
+ String password = "123456";
+
+ LoginContext context =
kerberos.getLoginContextFromUsernamePassword(principal, password);
+ assertNotNull(context);
+
+ // JAAS callback
+ CallbackHandler handler =
+ callbacks -> {
+ for (Callback callback : callbacks) {
+ switch (callback) {
+ case NameCallback nc ->
+ assertEquals(
+ principal, nc.getDefaultName() == null ? principal :
nc.getDefaultName());
+ case PasswordCallback pc -> {
+ pc.setPassword(password.toCharArray());
+ assertArrayEquals(password.toCharArray(), pc.getPassword());
+ }
+ default -> fail("Unexpected callback: " + callback.getClass());
+ }
+ }
+ };
+
+ handler.handle(
+ new Callback[] {new NameCallback("username"), new
PasswordCallback("password", false)});
+ }
+
+ @Test
+ void testGetLoginContextFromKerberosCache() throws Exception {
+ String principal = "[email protected]";
+
+ LoginContext context =
kerberos.getLoginContextFromKerberosCache(principal);
+ assertNotNull(context);
+ }
+
+ @Test
+ void testUnsupportedCallback() {
+ String principal = "[email protected]";
+ String password = "123456";
+
+ assertThrows(
+ UnsupportedCallbackException.class,
+ () -> {
+ CallbackHandler handler =
+ callbacks -> {
+ for (Callback callback : callbacks) {
+ switch (callback) {
+ case NameCallback nc -> nc.setName(principal);
+ case PasswordCallback pc ->
pc.setPassword(password.toCharArray());
+ default -> throw new
UnsupportedCallbackException(callback);
+ }
+ }
+ };
+
+ handler.handle(
+ new Callback[] {new
TextOutputCallback(TextOutputCallback.INFORMATION, "test")});
+ });
+ }
+}
diff --git
a/engine/src/test/java/org/apache/hop/pipeline/transform/DynamicWaitTimesTest.java
b/engine/src/test/java/org/apache/hop/pipeline/transform/DynamicWaitTimesTest.java
index 15fb608b91..7d0cd36cef 100644
---
a/engine/src/test/java/org/apache/hop/pipeline/transform/DynamicWaitTimesTest.java
+++
b/engine/src/test/java/org/apache/hop/pipeline/transform/DynamicWaitTimesTest.java
@@ -36,7 +36,7 @@ class DynamicWaitTimesTest {
AtomicInteger activeStreamIndex = new AtomicInteger();
@Test
- public void testSingleStreamStatus() {
+ void testSingleStreamStatus() {
IRowSet rowSet = new BlockingRowSet(3);
status = DynamicWaitTimes.build(Collections.singletonList(rowSet), () ->
0, 20);
assertEquals(1, status.get());
@@ -49,7 +49,7 @@ class DynamicWaitTimesTest {
}
@Test
- public void testMultiStreamStatus() {
+ void testMultiStreamStatus() {
List<IRowSet> rowSetList =
new ArrayList<>(
Arrays.asList(new BlockingRowSet(1), new BlockingRowSet(2), new
BlockingRowSet(7)));
diff --git
a/plugins/actions/dostounix/src/main/java/org/apache/hop/workflow/actions/dostounix/ActionDosToUnix.java
b/plugins/actions/dostounix/src/main/java/org/apache/hop/workflow/actions/dostounix/ActionDosToUnix.java
index d108861641..4990261213 100644
---
a/plugins/actions/dostounix/src/main/java/org/apache/hop/workflow/actions/dostounix/ActionDosToUnix.java
+++
b/plugins/actions/dostounix/src/main/java/org/apache/hop/workflow/actions/dostounix/ActionDosToUnix.java
@@ -746,13 +746,13 @@ public class ActionDosToUnix extends ActionBase {
int b = input[index++];
switch (state) {
case 0:
- if (b == CR) {
- state = 1;
- } else if (b == LF) {
- os.write(CR);
- os.write(LF);
- } else {
- os.write(b);
+ switch (b) {
+ case CR -> state = 1;
+ case LF -> {
+ os.write(CR);
+ os.write(LF);
+ }
+ default -> os.write(b);
}
break;
case 1:
diff --git
a/plugins/databases/as400/src/main/java/org/apache/hop/databases/as400/AS400DatabaseMeta.java
b/plugins/databases/as400/src/main/java/org/apache/hop/databases/as400/AS400DatabaseMeta.java
index ad6ab926a4..bd2b7d2c8a 100644
---
a/plugins/databases/as400/src/main/java/org/apache/hop/databases/as400/AS400DatabaseMeta.java
+++
b/plugins/databases/as400/src/main/java/org/apache/hop/databases/as400/AS400DatabaseMeta.java
@@ -132,29 +132,30 @@ public class AS400DatabaseMeta extends BaseDatabaseMeta
implements IDatabase {
retval += "CHAR(1)";
break;
case IValueMeta.TYPE_NUMBER, IValueMeta.TYPE_INTEGER,
IValueMeta.TYPE_BIGNUMBER:
- if (type == IValueMeta.TYPE_INTEGER) {
- // Integer values...
- if (length < 10) {
- retval += "INT";
- } else {
- retval += "DECIMAL(" + length + ")";
- }
- } else if (type == IValueMeta.TYPE_BIGNUMBER) {
- // Fixed point value...
- if (length
- < 1) { // user configured no value for length. Use 16 digits,
which is comparable to
- // mantissa 2^53 of IEEE 754 binary64 "double".
- length = 16;
+ switch (type) {
+ case IValueMeta.TYPE_INTEGER -> {
+ // Integer values...
+ if (length < 10) {
+ retval += "INT";
+ } else {
+ retval += "DECIMAL(" + length + ")";
+ }
}
- if (precision
- < 1) { // user configured no value for precision. Use 16 digits,
which is comparable
- // to IEEE 754 binary64 "double".
- precision = 16;
+ case IValueMeta.TYPE_BIGNUMBER -> {
+ // user configured no value for length. Use 16 digits, which is
comparable to mantissa
+ // 2^53 of IEEE 754 binary64 "double".
+ if (length < 1) {
+ length = 16;
+ }
+ // user configured no value for precision. Use 16 digits, which is
comparable to IEEE
+ // 754 binary64 "double".
+ if (precision < 1) {
+ precision = 16;
+ }
+ retval += "DECIMAL(" + length + "," + precision + ")";
}
- retval += "DECIMAL(" + length + "," + precision + ")";
- } else {
- // Floating point value with double precision...
- retval += "DOUBLE";
+ // Floating point value with double precision...
+ default -> retval += "DOUBLE";
}
break;
case IValueMeta.TYPE_STRING:
diff --git
a/plugins/databases/cache/src/main/java/org/apache/hop/databases/cache/CacheDatabaseMeta.java
b/plugins/databases/cache/src/main/java/org/apache/hop/databases/cache/CacheDatabaseMeta.java
index d08a0cc714..341547ab90 100644
---
a/plugins/databases/cache/src/main/java/org/apache/hop/databases/cache/CacheDatabaseMeta.java
+++
b/plugins/databases/cache/src/main/java/org/apache/hop/databases/cache/CacheDatabaseMeta.java
@@ -157,37 +157,35 @@ public class CacheDatabaseMeta extends BaseDatabaseMeta
implements IDatabase {
retval += "CHAR(1)";
break;
case IValueMeta.TYPE_NUMBER, IValueMeta.TYPE_INTEGER,
IValueMeta.TYPE_BIGNUMBER:
- if (fieldname.equalsIgnoreCase(tk)) { // Technical & primary key : see
at bottom
+ // Technical & primary key : see at bottom
+ if (fieldname.equalsIgnoreCase(tk)) {
retval += "DECIMAL";
} else {
- if (type == IValueMeta.TYPE_INTEGER) {
- // Integer values...
- if (length > 9) {
- retval += "DECIMAL(" + length + ")";
- } else {
- retval += "INT";
+ switch (type) {
+ case IValueMeta.TYPE_INTEGER -> {
+ // Integer values...
+ if (length > 9) {
+ retval += "DECIMAL(" + length + ")";
+ } else {
+ retval += "INT";
+ }
}
- } else if (type == IValueMeta.TYPE_BIGNUMBER) {
- // Fixed point value...
- if (length
- < 1) { // user configured no value for length. Use 16 digits,
which is comparable to
+ case IValueMeta.TYPE_BIGNUMBER -> {
+ // user configured no value for length. Use 16 digits, which is
comparable to
// mantissa 2^53 of IEEE 754 binary64 "double".
- length = 16;
+ int len = (length < 1) ? 16 : length;
+ // user configured no value for precision. Use 16 digits, which
is comparable to IEEE
+ // 754 binary64 "double".
+ int p = (precision < 1) ? 16 : precision;
+ retval += "DECIMAL(" + len + "," + p + ")";
}
- if (precision
- < 1) { // user configured no value for precision. Use 16
digits, which is comparable
- // to IEEE 754 binary64 "double".
- precision = 16;
- }
- retval += "DECIMAL(" + length + "," + precision + ")";
- } else {
- // Floating point value with double precision...
- retval += "DOUBLE";
+ // Floating point value with double precision...
+ default -> retval += "DOUBLE";
}
}
break;
- case IValueMeta
- .TYPE_STRING: // CLOBs are just VARCHAR in the Cache database: can
be very large!
+ // CLOBs are just VARCHAR in the Cache database: can be very large!
+ case IValueMeta.TYPE_STRING:
retval += "VARCHAR";
if (length > 0) {
retval += "(" + length + ")";
diff --git
a/plugins/databases/clickhouse/src/main/java/org/apache/hop/databases/clickhouse/ClickhouseDatabaseMeta.java
b/plugins/databases/clickhouse/src/main/java/org/apache/hop/databases/clickhouse/ClickhouseDatabaseMeta.java
index d6c4e781c1..482f179724 100644
---
a/plugins/databases/clickhouse/src/main/java/org/apache/hop/databases/clickhouse/ClickhouseDatabaseMeta.java
+++
b/plugins/databases/clickhouse/src/main/java/org/apache/hop/databases/clickhouse/ClickhouseDatabaseMeta.java
@@ -42,8 +42,9 @@ import org.apache.hop.core.util.Utils;
public class ClickhouseDatabaseMeta extends BaseDatabaseMeta implements
IDatabase {
public static final String CONST_ALTER_TABLE = "ALTER TABLE ";
+ private static final String UUID_N_NIL_PRI_KEY = "UUID NOT NULL PRIMARY KEY";
- // TODO: Manage all attributes in plugin when HOP-67 is fixed
+ // Manage all attributes in plugin when HOP-67 is fixed
@Override
public int[] getAccessTypeList() {
return new int[] {DatabaseMeta.TYPE_ACCESS_NATIVE};
@@ -178,31 +179,22 @@ public class ClickhouseDatabaseMeta extends
BaseDatabaseMeta implements IDatabas
retval += "UINT8";
break;
case IValueMeta.TYPE_NUMBER, IValueMeta.TYPE_INTEGER,
IValueMeta.TYPE_BIGNUMBER:
- if (type == IValueMeta.TYPE_INTEGER) {
- // Integer values...
- if (length > 18) {
- retval += "INT128";
- } else if (length > 9) {
- retval += "INT64";
- } else {
- retval += "INT32";
+ switch (type) {
+ case IValueMeta.TYPE_INTEGER -> {
+ if (length > 18) {
+ retval += "INT128";
+ } else if (length > 9) {
+ retval += "INT64";
+ } else {
+ retval += "INT32";
+ }
}
- } else if (type == IValueMeta.TYPE_BIGNUMBER) {
- // Fixed point value...
- if (length < 1) {
- // user configured no value for length. Use 16 digits, which is
comparable to
- // mantissa 2^53 of IEEE 754 binary64 "double".
- length = 16;
+ case IValueMeta.TYPE_BIGNUMBER -> {
+ int len = (length < 1) ? 16 : length;
+ int p = (precision < 1) ? 16 : precision;
+ retval += "DECIMAL(" + len + "," + p + ")";
}
- if (precision < 1) {
- // user configured no value for precision. Use 16 digits, which is
comparable
- // to IEEE 754 binary64 "double".
- precision = 16;
- }
- retval += "DECIMAL(" + length + "," + precision + ")";
- } else {
- // Floating point value with double precision...
- retval += "FLOAT64";
+ default -> retval += "FLOAT64";
}
break;
case IValueMeta.TYPE_STRING:
@@ -219,7 +211,7 @@ public class ClickhouseDatabaseMeta extends
BaseDatabaseMeta implements IDatabas
}
private String ddlForPrimaryKey() {
- return "UUID NOT NULL PRIMARY KEY";
+ return UUID_N_NIL_PRI_KEY;
}
@Override
diff --git
a/plugins/databases/cratedb/src/main/java/org/apache/hop/databases/cratedb/CrateDBDatabaseMeta.java
b/plugins/databases/cratedb/src/main/java/org/apache/hop/databases/cratedb/CrateDBDatabaseMeta.java
index 80f2be459c..3ecdf449c5 100644
---
a/plugins/databases/cratedb/src/main/java/org/apache/hop/databases/cratedb/CrateDBDatabaseMeta.java
+++
b/plugins/databases/cratedb/src/main/java/org/apache/hop/databases/cratedb/CrateDBDatabaseMeta.java
@@ -219,9 +219,8 @@ public class CrateDBDatabaseMeta extends
PostgreSqlDatabaseMeta {
retval += fieldname + " ";
}
if (fieldname.equalsIgnoreCase(tk)
- || // Technical key
- fieldname.equalsIgnoreCase(pk) // Primary key
- ) {
+ || // Technical key, Primary key
+ fieldname.equalsIgnoreCase(pk)) {
retval += "BIGSERIAL";
} else {
if (type == IValueMeta.TYPE_INTEGER) {
@@ -233,11 +232,6 @@ public class CrateDBDatabaseMeta extends
PostgreSqlDatabaseMeta {
} else {
retval += "SMALLINT";
}
- } else if (type == IValueMeta.TYPE_BIGNUMBER) {
- // Fixed point value...
- // CrateDB doesn't support NUMERIC type for columns (only in
expressions...)
- // as a work-around we use a double, which can be cast to NUMERIC
via SQL by the user
- retval += "DOUBLE PRECISION";
} else {
// Floating point value with double precision...
retval += "DOUBLE PRECISION";
diff --git
a/plugins/databases/db2/src/main/java/org/apache/hop/databases/db2/DB2DatabaseMeta.java
b/plugins/databases/db2/src/main/java/org/apache/hop/databases/db2/DB2DatabaseMeta.java
index 6e3fac3cff..6d25423bfb 100644
---
a/plugins/databases/db2/src/main/java/org/apache/hop/databases/db2/DB2DatabaseMeta.java
+++
b/plugins/databases/db2/src/main/java/org/apache/hop/databases/db2/DB2DatabaseMeta.java
@@ -164,37 +164,29 @@ public class DB2DatabaseMeta extends BaseDatabaseMeta
implements IDatabase {
retval += "CHARACTER(1)";
break;
case IValueMeta.TYPE_NUMBER, IValueMeta.TYPE_INTEGER,
IValueMeta.TYPE_BIGNUMBER:
- if (fieldname.equalsIgnoreCase(tk) && useAutoinc) { // Technical key:
auto increment field!
+ // Technical key: auto increment field!
+ if (fieldname.equalsIgnoreCase(tk) && useAutoinc) {
retval +=
"BIGINT NOT NULL GENERATED ALWAYS AS IDENTITY (START WITH 0,
INCREMENT BY 1, NOCACHE)";
} else {
- if (type == IValueMeta.TYPE_INTEGER) {
- // Integer values...
- if (length > 18) {
- retval += "DECIMAL(" + length + ")";
- } else if (length > 9) {
- retval += "BIGINT";
- } else if (length > 4) {
- retval += "INTEGER";
- } else {
- retval += "SMALLINT";
+ switch (type) {
+ case IValueMeta.TYPE_INTEGER -> {
+ if (length > 18) {
+ retval += "DECIMAL(" + length + ")";
+ } else if (length > 9) {
+ retval += "BIGINT";
+ } else if (length > 4) {
+ retval += "INTEGER";
+ } else {
+ retval += "SMALLINT";
+ }
}
- } else if (type == IValueMeta.TYPE_BIGNUMBER) {
- // Fixed point value...
- if (length
- < 1) { // user configured no value for length. Use 16 digits,
which is comparable to
- // mantissa 2^53 of IEEE 754 binary64 "double".
- length = 16;
+ case IValueMeta.TYPE_BIGNUMBER -> {
+ int len = (length < 1) ? 16 : length;
+ int p = (precision < 1) ? 16 : precision;
+ retval += "DECIMAL(" + len + "," + p + ")";
}
- if (precision
- < 1) { // user configured no value for precision. Use 16
digits, which is comparable
- // to IEEE 754 binary64 "double".
- precision = 16;
- }
- retval += "DECIMAL(" + length + "," + precision + ")";
- } else {
- // Floating point value with double precision...
- retval += "DOUBLE";
+ default -> retval += "DOUBLE";
}
}
break;
diff --git
a/plugins/databases/derby/src/main/java/org/apache/hop/databases/derby/DerbyDatabaseMeta.java
b/plugins/databases/derby/src/main/java/org/apache/hop/databases/derby/DerbyDatabaseMeta.java
index 00215ca76f..cee958b76a 100644
---
a/plugins/databases/derby/src/main/java/org/apache/hop/databases/derby/DerbyDatabaseMeta.java
+++
b/plugins/databases/derby/src/main/java/org/apache/hop/databases/derby/DerbyDatabaseMeta.java
@@ -172,35 +172,26 @@ public class DerbyDatabaseMeta extends BaseDatabaseMeta
implements IDatabase {
retval += "BIGINT NOT NULL PRIMARY KEY";
}
} else {
- if (type == IValueMeta.TYPE_INTEGER) {
- // Integer values...
- if (length < 3) {
- retval += "TINYINT";
- } else if (length < 5) {
- retval += "SMALLINT";
- } else if (length < 10) {
- retval += "INT";
- } else if (length < 20) {
- retval += "BIGINT";
- } else {
- retval += "DECIMAL(" + length + ")";
+ switch (type) {
+ case IValueMeta.TYPE_INTEGER -> {
+ if (length < 3) {
+ retval += "TINYINT";
+ } else if (length < 5) {
+ retval += "SMALLINT";
+ } else if (length < 10) {
+ retval += "INT";
+ } else if (length < 20) {
+ retval += "BIGINT";
+ } else {
+ retval += "DECIMAL(" + length + ")";
+ }
}
- } else if (type == IValueMeta.TYPE_BIGNUMBER) {
- // Fixed point value...
- if (length
- < 1) { // user configured no value for length. Use 16 digits,
which is comparable to
- // mantissa 2^53 of IEEE 754 binary64 "double".
- length = 16;
+ case IValueMeta.TYPE_BIGNUMBER -> {
+ int len = (length < 1) ? 16 : length;
+ int p = (precision < 1) ? 16 : precision;
+ retval += "DECIMAL(" + len + "," + p + ")";
}
- if (precision
- < 1) { // user configured no value for precision. Use 16
digits, which is comparable
- // to IEEE 754 binary64 "double".
- precision = 16;
- }
- retval += "DECIMAL(" + length + "," + precision + ")";
- } else {
- // Floating point value with double precision...
- retval += "DOUBLE";
+ default -> retval += "DOUBLE";
}
}
break;
@@ -212,7 +203,8 @@ public class DerbyDatabaseMeta extends BaseDatabaseMeta
implements IDatabase {
if (length > 0) {
retval += "(" + length;
} else {
- retval += "("; // Maybe use some default DB String length?
+ // Maybe use some default DB String length?
+ retval += "(";
}
retval += ")";
}
diff --git
a/plugins/databases/doris/src/main/java/org/apache/hop/databases/doris/DorisDatabaseMeta.java
b/plugins/databases/doris/src/main/java/org/apache/hop/databases/doris/DorisDatabaseMeta.java
index 5972998e1f..70697650fc 100644
---
a/plugins/databases/doris/src/main/java/org/apache/hop/databases/doris/DorisDatabaseMeta.java
+++
b/plugins/databases/doris/src/main/java/org/apache/hop/databases/doris/DorisDatabaseMeta.java
@@ -71,35 +71,26 @@ public class DorisDatabaseMeta extends MySqlDatabaseMeta {
retval += "BIGINT NOT NULL PRIMARY KEY";
}
} else {
- if (type == IValueMeta.TYPE_INTEGER) {
- // Integer values...
- if (length < 3) {
- retval += "TINYINT";
- } else if (length < 5) {
- retval += "SMALLINT";
- } else if (length < 10) {
- retval += "INT";
- } else if (length < 20) {
- retval += "BIGINT";
- } else {
- retval += "DECIMAL(" + length + ")";
+ switch (type) {
+ case IValueMeta.TYPE_INTEGER -> {
+ if (length < 3) {
+ retval += "TINYINT";
+ } else if (length < 5) {
+ retval += "SMALLINT";
+ } else if (length < 10) {
+ retval += "INT";
+ } else if (length < 20) {
+ retval += "BIGINT";
+ } else {
+ retval += "DECIMAL(" + length + ")";
+ }
}
- } else if (type == IValueMeta.TYPE_BIGNUMBER) {
- // Fixed point value...
- if (length
- < 1) { // user configured no value for length. Use 16 digits,
which is comparable to
- // mantissa 2^53 of IEEE 754 binary64 "double".
- length = 16;
+ case IValueMeta.TYPE_BIGNUMBER -> {
+ int len = (length < 1) ? 16 : length;
+ int p = (precision < 1) ? 16 : precision;
+ retval += "DECIMAL(" + len + "," + p + ")";
}
- if (precision
- < 1) { // user configured no value for precision. Use 16
digits, which is comparable
- // to IEEE 754 binary64 "double".
- precision = 16;
- }
- retval += "DECIMAL(" + length + "," + precision + ")";
- } else {
- // Floating point value with double precision...
- retval += "DOUBLE";
+ default -> retval += "DOUBLE";
}
}
break;
diff --git
a/plugins/databases/duckdb/src/main/java/org/apache/hop/databases/duckdb/DuckDBDatabaseMeta.java
b/plugins/databases/duckdb/src/main/java/org/apache/hop/databases/duckdb/DuckDBDatabaseMeta.java
index 686beeec0e..56b2455aa7 100644
---
a/plugins/databases/duckdb/src/main/java/org/apache/hop/databases/duckdb/DuckDBDatabaseMeta.java
+++
b/plugins/databases/duckdb/src/main/java/org/apache/hop/databases/duckdb/DuckDBDatabaseMeta.java
@@ -34,8 +34,6 @@ import org.apache.hop.core.row.IValueMeta;
@GuiPlugin(id = "GUI-DuckDBDatabaseMeta")
public class DuckDBDatabaseMeta extends BaseDatabaseMeta implements IDatabase {
- private static final Class<?> PKG = DuckDBDatabaseMeta.class;
-
@Override
public String getCreateTableStatement() {
return super.getCreateTableStatement();
@@ -81,35 +79,26 @@ public class DuckDBDatabaseMeta extends BaseDatabaseMeta
implements IDatabase {
) {
retval += "IDENTITY";
} else {
- if (type == IValueMeta.TYPE_INTEGER) {
- // Integer values...
- if (length < 3) {
- retval += "TINYINT";
- } else if (length < 5) {
- retval += "SMALLINT";
- } else if (length < 10) {
- retval += "INT";
- } else if (length < 20) {
- retval += "BIGINT";
- } else {
- retval += "DECIMAL(" + length + ")";
- }
- } else if (type == IValueMeta.TYPE_BIGNUMBER) {
- // Fixed point value...
- if (length
- < 1) { // user configured no value for length. Use 16 digits,
which is comparable to
- // mantissa 2^53 of IEEE 754 binary64 "double".
- length = 16;
+ switch (type) {
+ case IValueMeta.TYPE_INTEGER -> {
+ if (length < 3) {
+ retval += "TINYINT";
+ } else if (length < 5) {
+ retval += "SMALLINT";
+ } else if (length < 10) {
+ retval += "INT";
+ } else if (length < 20) {
+ retval += "BIGINT";
+ } else {
+ retval += "DECIMAL(" + length + ")";
+ }
}
- if (precision
- < 1) { // user configured no value for precision. Use 16
digits, which is comparable
- // to IEEE 754 binary64 "double".
- precision = 16;
+ case IValueMeta.TYPE_BIGNUMBER -> {
+ int p = (precision < 1) ? 16 : precision;
+ int len = (length < 1) ? 16 : length;
+ retval += "DECIMAL(" + len + "," + p + ")";
}
- retval += "DECIMAL(" + length + "," + precision + ")";
- } else {
- // Floating point value with double precision...
- retval += "DOUBLE";
+ default -> retval += "DOUBLE";
}
}
break;
diff --git
a/plugins/databases/exasol4/src/main/java/org/apache/hop/databases/exasol4/Exasol4DatabaseMeta.java
b/plugins/databases/exasol4/src/main/java/org/apache/hop/databases/exasol4/Exasol4DatabaseMeta.java
index b09f134590..74a5d86aa9 100644
---
a/plugins/databases/exasol4/src/main/java/org/apache/hop/databases/exasol4/Exasol4DatabaseMeta.java
+++
b/plugins/databases/exasol4/src/main/java/org/apache/hop/databases/exasol4/Exasol4DatabaseMeta.java
@@ -226,29 +226,21 @@ public class Exasol4DatabaseMeta extends BaseDatabaseMeta
implements IDatabase {
) {
retval.append("BIGINT NOT NULL PRIMARY KEY");
} else {
- if (type == IValueMeta.TYPE_INTEGER) {
- // Integer values...
- if (length > 0) {
- retval.append("DECIMAL(" + length + ")");
- } else {
- retval.append("INTEGER");
+ switch (type) {
+ case IValueMeta.TYPE_INTEGER -> {
+ if (length > 0) {
+ retval.append("DECIMAL(").append(length).append(")");
+ } else {
+ retval.append("INTEGER");
+ }
}
- } else if (type == IValueMeta.TYPE_BIGNUMBER) {
- // Fixed point value...
- if (length
- < 1) { // user configured no value for length. Use 16 digits,
which is comparable to
- // mantissa 2^53 of IEEE 754 binary64 "double".
- length = 16;
- }
- if (precision
- < 1) { // user configured no value for precision. Use 16
digits, which is comparable
- // to IEEE 754 binary64 "double".
- precision = 16;
+ case IValueMeta.TYPE_BIGNUMBER -> {
+ int len = (length < 1) ? 16 : length;
+ int p = (precision < 1) ? 16 : precision;
+
+
retval.append("DECIMAL(").append(len).append(",").append(p).append(")");
}
- retval.append("DECIMAL(" + length + "," + precision + ")");
- } else {
- // Floating point value with double precision...
- retval.append("DOUBLE");
+ default -> retval.append("DOUBLE");
}
}
diff --git
a/plugins/databases/firebird/src/main/java/org/apache/hop/databases/firebird/FirebirdDatabaseMeta.java
b/plugins/databases/firebird/src/main/java/org/apache/hop/databases/firebird/FirebirdDatabaseMeta.java
index 73cc0bdf65..74281e0815 100644
---
a/plugins/databases/firebird/src/main/java/org/apache/hop/databases/firebird/FirebirdDatabaseMeta.java
+++
b/plugins/databases/firebird/src/main/java/org/apache/hop/databases/firebird/FirebirdDatabaseMeta.java
@@ -176,31 +176,23 @@ public class FirebirdDatabaseMeta extends
BaseDatabaseMeta implements IDatabase
) {
retval += "BIGINT NOT NULL PRIMARY KEY";
} else {
- if (type == IValueMeta.TYPE_INTEGER) {
- // Integer values...
- if (length < 5) {
- retval += CONST_SMALLINT;
- } else if (length < 10) {
- retval += CONST_INTEGER;
- } else {
- retval += "BIGINT";
+ switch (type) {
+ case IValueMeta.TYPE_INTEGER -> {
+ if (length < 5) {
+ retval += CONST_SMALLINT;
+ } else if (length < 10) {
+ retval += CONST_INTEGER;
+ } else {
+ retval += "BIGINT";
+ }
}
- } else if (type == IValueMeta.TYPE_BIGNUMBER) {
- // Fixed point value...
- if (length < 1) {
- // user configured no value for length. Use 16 digits, which is
comparable to
- // mantissa 2^53 of IEEE 754 binary64 "double".
- length = 16;
- }
- if (precision < 1) {
- // user configured no value for precision. Use 16 digits, which
is comparable
- // to IEEE 754 binary64 "double".
- precision = 16;
+ case IValueMeta.TYPE_BIGNUMBER -> {
+ int len = (length < 1) ? 16 : length;
+ int p = (precision < 1) ? 16 : precision;
+
+ retval += "DECIMAL(" + len + "," + p + ")";
}
- retval += "DECIMAL(" + length + "," + precision + ")";
- } else {
- // Floating point value with double precision...
- retval += "DOUBLE";
+ default -> retval += "DOUBLE";
}
}
break;
diff --git
a/plugins/databases/generic/src/main/java/org/apache/hop/databases/generic/GenericDatabaseMeta.java
b/plugins/databases/generic/src/main/java/org/apache/hop/databases/generic/GenericDatabaseMeta.java
index 4adb098268..0d1330cc36 100644
---
a/plugins/databases/generic/src/main/java/org/apache/hop/databases/generic/GenericDatabaseMeta.java
+++
b/plugins/databases/generic/src/main/java/org/apache/hop/databases/generic/GenericDatabaseMeta.java
@@ -245,35 +245,27 @@ public class GenericDatabaseMeta extends BaseDatabaseMeta
implements IDatabase {
) {
retval += "BIGSERIAL";
} else {
- if (type == IValueMeta.TYPE_INTEGER) {
- // Integer values...
- if (length < 3) {
- retval += "TINYINT";
- } else if (length < 5) {
- retval += "SMALLINT";
- } else if (length < 10) {
- retval += "INT";
- } else if (length < 20) {
- retval += "BIGINT";
- } else {
- retval += "DECIMAL(" + length + ")";
+ switch (type) {
+ case IValueMeta.TYPE_INTEGER -> {
+ if (length < 3) {
+ retval += "TINYINT";
+ } else if (length < 5) {
+ retval += "SMALLINT";
+ } else if (length < 10) {
+ retval += "INT";
+ } else if (length < 20) {
+ retval += "BIGINT";
+ } else {
+ retval += "DECIMAL(" + length + ")";
+ }
}
- } else if (type == IValueMeta.TYPE_BIGNUMBER) {
- // Fixed point value...
- if (length
- < 1) { // user configured no value for length. Use 16 digits,
which is comparable to
- // mantissa 2^53 of IEEE 754 binary64 "double".
- length = 16;
- }
- if (precision
- < 1) { // user configured no value for precision. Use 16
digits, which is comparable
- // to IEEE 754 binary64 "double".
- precision = 16;
+ case IValueMeta.TYPE_BIGNUMBER -> {
+ int len = (length < 1) ? 16 : length;
+ int p = (precision < 1) ? 16 : precision;
+
+ retval += "DECIMAL(" + len + "," + p + ")";
}
- retval += "DECIMAL(" + length + "," + precision + ")";
- } else {
- // Floating point value with double precision...
- retval += "DOUBLE PRECISION";
+ default -> retval += "DOUBLE PRECISION";
}
}
break;
diff --git
a/plugins/databases/googlebigquery/src/main/java/org/apache/hop/databases/googlebigquery/GoogleBigQueryDatabaseMeta.java
b/plugins/databases/googlebigquery/src/main/java/org/apache/hop/databases/googlebigquery/GoogleBigQueryDatabaseMeta.java
index d1fd6bd536..0e89d166b2 100644
---
a/plugins/databases/googlebigquery/src/main/java/org/apache/hop/databases/googlebigquery/GoogleBigQueryDatabaseMeta.java
+++
b/plugins/databases/googlebigquery/src/main/java/org/apache/hop/databases/googlebigquery/GoogleBigQueryDatabaseMeta.java
@@ -69,8 +69,6 @@ public class GoogleBigQueryDatabaseMeta extends
BaseDatabaseMeta implements IDat
String retval = "";
String fieldname = v.getName();
- int precision = v.getPrecision();
-
if (addFieldName) {
retval += fieldname + " ";
}
@@ -90,19 +88,16 @@ public class GoogleBigQueryDatabaseMeta extends
BaseDatabaseMeta implements IDat
break;
case IValueMeta.TYPE_NUMBER, IValueMeta.TYPE_INTEGER,
IValueMeta.TYPE_BIGNUMBER:
- if (type == IValueMeta.TYPE_INTEGER) {
- // Integer values...
- retval += "INT64";
- } else if (type == IValueMeta.TYPE_BIGNUMBER) {
- // Fixed point value...
- if (v.getLength() < 39) {
- retval += "NUMERIC";
- } else {
- retval += "BIGNUMERIC";
+ switch (type) {
+ case IValueMeta.TYPE_INTEGER -> retval += "INT64";
+ case IValueMeta.TYPE_BIGNUMBER -> {
+ if (v.getLength() < 39) {
+ retval += "NUMERIC";
+ } else {
+ retval += "BIGNUMERIC";
+ }
}
- } else {
- // Floating point value with double precision...
- retval += "FLOAT64";
+ default -> retval += "FLOAT64";
}
break;
diff --git
a/plugins/databases/h2/src/main/java/org/apache/hop/databases/h2/H2DatabaseMeta.java
b/plugins/databases/h2/src/main/java/org/apache/hop/databases/h2/H2DatabaseMeta.java
index d151666e8e..c8a63fea11 100644
---
a/plugins/databases/h2/src/main/java/org/apache/hop/databases/h2/H2DatabaseMeta.java
+++
b/plugins/databases/h2/src/main/java/org/apache/hop/databases/h2/H2DatabaseMeta.java
@@ -179,35 +179,26 @@ public class H2DatabaseMeta extends BaseDatabaseMeta
implements IDatabase {
) {
retval += "IDENTITY";
} else {
- if (type == IValueMeta.TYPE_INTEGER) {
- // Integer values...
- if (length < 3) {
- retval += "TINYINT";
- } else if (length < 5) {
- retval += "SMALLINT";
- } else if (length < 10) {
- retval += "INT";
- } else if (length < 20) {
- retval += "BIGINT";
- } else {
- retval += "DECIMAL(" + length + ")";
+ switch (type) {
+ case IValueMeta.TYPE_INTEGER -> {
+ if (length < 3) {
+ retval += "TINYINT";
+ } else if (length < 5) {
+ retval += "SMALLINT";
+ } else if (length < 10) {
+ retval += "INT";
+ } else if (length < 20) {
+ retval += "BIGINT";
+ } else {
+ retval += "DECIMAL(" + length + ")";
+ }
}
- } else if (type == IValueMeta.TYPE_BIGNUMBER) {
- // Fixed point value...
- if (length
- < 1) { // user configured no value for length. Use 16 digits,
which is comparable to
- // mantissa 2^53 of IEEE 754 binary64 "double".
- length = 16;
+ case IValueMeta.TYPE_BIGNUMBER -> {
+ int len = (length < 1) ? 16 : length;
+ int p = (precision < 1) ? 16 : precision;
+ retval += "DECIMAL(" + len + "," + p + ")";
}
- if (precision
- < 1) { // user configured no value for precision. Use 16
digits, which is comparable
- // to IEEE 754 binary64 "double".
- precision = 16;
- }
- retval += "DECIMAL(" + length + "," + precision + ")";
- } else {
- // Floating point value with double precision...
- retval += "DOUBLE PRECISION";
+ default -> retval += "DOUBLE PRECISION";
}
}
break;
diff --git
a/plugins/databases/hive/src/main/java/org/apache/hop/databases/hive/HiveDatabaseMeta.java
b/plugins/databases/hive/src/main/java/org/apache/hop/databases/hive/HiveDatabaseMeta.java
index 889b977a5f..36c1db91f2 100644
---
a/plugins/databases/hive/src/main/java/org/apache/hop/databases/hive/HiveDatabaseMeta.java
+++
b/plugins/databases/hive/src/main/java/org/apache/hop/databases/hive/HiveDatabaseMeta.java
@@ -40,7 +40,6 @@ import org.apache.hop.metadata.api.HopMetadataProperty;
documentationUrl = "/database/databases/apache-hive.html")
@GuiPlugin(id = "GUI-HiveDatabaseMeta")
public class HiveDatabaseMeta extends BaseDatabaseMeta implements IDatabase {
- private static final Class<?> PKG = HiveDatabaseMeta.class;
@GuiWidgetElement(
id = "tablePartitions",
@@ -297,36 +296,28 @@ public class HiveDatabaseMeta extends BaseDatabaseMeta
implements IDatabase {
retval += "BIGINT NOT NULL PRIMARY KEY";
}
} else {
- if (type == IValueMeta.TYPE_INTEGER) {
- // Integer values...
- if (length < 3) {
- retval += "TINYINT";
- } else if (length < 5) {
- retval += "SMALLINT";
- } else if (length < 10) {
- retval += "INT";
- } else if (length < 20) {
- retval += "BIGINT";
- } else {
- retval += "DECIMAL(" + length + ")";
- }
- } else if (type == IValueMeta.TYPE_BIGNUMBER) {
- // Fixed point value...
- if (length
- < 1) { // user configured no value for length. Use 16 digits,
which is comparable to
- // mantissa 2^53 of IEEE 754 binary64 "double".
- length = 16;
- }
- if (precision
- < 1) { // user configured no value for precision. Use 16
digits, which is comparable
- // to IEEE 754 binary64 "double".
- precision = 16;
- }
- retval += "DECIMAL(" + length + "," + precision + ")";
- } else {
- // Floating point value with double precision...
- retval += "DOUBLE";
- }
+ retval +=
+ switch (type) {
+ case IValueMeta.TYPE_INTEGER -> {
+ if (length < 3) {
+ yield "TINYINT";
+ } else if (length < 5) {
+ yield "SMALLINT";
+ } else if (length < 10) {
+ yield "INT";
+ } else if (length < 20) {
+ yield "BIGINT";
+ } else {
+ yield "DECIMAL(" + length + ")";
+ }
+ }
+ case IValueMeta.TYPE_BIGNUMBER -> {
+ int p = (precision < 1) ? 16 : precision;
+ int len = (length < 1) ? 16 : length;
+ yield "DECIMAL(" + len + "," + p + ")";
+ }
+ default -> "DOUBLE";
+ };
}
break;
case IValueMeta.TYPE_STRING:
diff --git
a/plugins/databases/hypersonic/src/main/java/org/apache/hop/databases/hypersonic/HypersonicDatabaseMeta.java
b/plugins/databases/hypersonic/src/main/java/org/apache/hop/databases/hypersonic/HypersonicDatabaseMeta.java
index 5871ff6534..64f3ad7e72 100644
---
a/plugins/databases/hypersonic/src/main/java/org/apache/hop/databases/hypersonic/HypersonicDatabaseMeta.java
+++
b/plugins/databases/hypersonic/src/main/java/org/apache/hop/databases/hypersonic/HypersonicDatabaseMeta.java
@@ -143,35 +143,26 @@ public class HypersonicDatabaseMeta extends
BaseDatabaseMeta implements IDatabas
retval.append(
"BIGINT GENERATED BY DEFAULT AS IDENTITY(START WITH 0, INCREMENT
BY 1) PRIMARY KEY");
} else {
- if (type == IValueMeta.TYPE_INTEGER) {
- // Integer values...
- if (length < 3) {
- retval.append("TINYINT");
- } else if (length < 5) {
- retval.append("SMALLINT");
- } else if (length < 10) {
- retval.append("INT");
- } else if (length < 20) {
- retval.append("BIGINT");
- } else {
- retval.append("DECIMAL(").append(length).append(")");
+ switch (type) {
+ case IValueMeta.TYPE_INTEGER -> {
+ if (length < 3) {
+ retval.append("TINYINT");
+ } else if (length < 5) {
+ retval.append("SMALLINT");
+ } else if (length < 10) {
+ retval.append("INT");
+ } else if (length < 20) {
+ retval.append("BIGINT");
+ } else {
+ retval.append("DECIMAL(").append(length).append(")");
+ }
}
- } else if (type == IValueMeta.TYPE_BIGNUMBER) {
- // Fixed point value...
- if (length
- < 1) { // user configured no value for length. Use 16 digits,
which is comparable to
- // mantissa 2^53 of IEEE 754 binary64 "double".
- length = 16;
+ case IValueMeta.TYPE_BIGNUMBER -> {
+ int p = (precision < 1) ? 16 : precision;
+ int len = (length < 1) ? 16 : length;
+
retval.append("DECIMAL(").append(len).append(",").append(p).append(")");
}
- if (precision
- < 1) { // user configured no value for precision. Use 16
digits, which is comparable
- // to IEEE 754 binary64 "double".
- precision = 16;
- }
-
retval.append("DECIMAL(").append(length).append(",").append(precision).append(")");
- } else {
- // Floating point value with double precision...
- retval.append("DOUBLE PRECISION");
+ default -> retval.append("DOUBLE PRECISION");
}
}
break;
diff --git
a/plugins/databases/informix/src/main/java/org/apache/hop/databases/informix/InformixDatabaseMeta.java
b/plugins/databases/informix/src/main/java/org/apache/hop/databases/informix/InformixDatabaseMeta.java
index 773f74a137..43926d6e45 100644
---
a/plugins/databases/informix/src/main/java/org/apache/hop/databases/informix/InformixDatabaseMeta.java
+++
b/plugins/databases/informix/src/main/java/org/apache/hop/databases/informix/InformixDatabaseMeta.java
@@ -194,34 +194,26 @@ public class InformixDatabaseMeta extends
BaseDatabaseMeta implements IDatabase
retval += "INTEGER PRIMARY KEY";
}
} else {
- if (type == IValueMeta.TYPE_INTEGER) {
- // Integer values...
- if (length < 5) {
- retval += "SMALLINT";
- } else if (length < 10) {
- retval += "INT";
- } else if (length < 20) {
- retval += "BIGINT";
- } else {
- retval += "DECIMAL(" + length + ",0)";
- }
- } else if (type == IValueMeta.TYPE_BIGNUMBER) {
- // Fixed point value...
- if (length
- < 1) { // user configured no value for length. Use 16 digits,
which is comparable to
- // mantissa 2^53 of IEEE 754 binary64 "double".
- length = 16;
- }
- if (precision
- < 1) { // user configured no value for precision. Use 16
digits, which is comparable
- // to IEEE 754 binary64 "double".
- precision = 16;
- }
- retval += "DECIMAL(" + length + "," + precision + ")";
- } else {
- // Floating point value with double precision...
- retval += "FLOAT";
- }
+ retval +=
+ switch (type) {
+ case IValueMeta.TYPE_INTEGER -> {
+ if (length < 5) {
+ yield "SMALLINT";
+ } else if (length < 10) {
+ yield "INT";
+ } else if (length < 20) {
+ yield "BIGINT";
+ } else {
+ yield "DECIMAL(" + length + ",0)";
+ }
+ }
+ case IValueMeta.TYPE_BIGNUMBER -> {
+ int p = (precision < 1) ? 16 : precision;
+ int len = (length < 1) ? 16 : length;
+ yield "DECIMAL(" + len + "," + p + ")";
+ }
+ default -> "FLOAT";
+ };
}
break;
case IValueMeta.TYPE_STRING:
diff --git
a/plugins/databases/ingres/src/main/java/org/apache/hop/databases/ingres/IngresDatabaseMeta.java
b/plugins/databases/ingres/src/main/java/org/apache/hop/databases/ingres/IngresDatabaseMeta.java
index ab40c92648..ce2474d625 100644
---
a/plugins/databases/ingres/src/main/java/org/apache/hop/databases/ingres/IngresDatabaseMeta.java
+++
b/plugins/databases/ingres/src/main/java/org/apache/hop/databases/ingres/IngresDatabaseMeta.java
@@ -171,36 +171,28 @@ public class IngresDatabaseMeta extends BaseDatabaseMeta
implements IDatabase {
retval += "BIGINT PRIMARY KEY NOT NULL";
}
} else {
- if (type == IValueMeta.TYPE_INTEGER) {
- // Integer values...
- if (length < 3) {
- retval += "TINYINT";
- } else if (length < 5) {
- retval += "SMALLINT";
- } else if (length < 10) {
- retval += "INT";
- } else if (length < 20) {
- retval += "BIGINT";
- } else {
- retval += "DECIMAL(" + length + ")";
- }
- } else if (type == IValueMeta.TYPE_BIGNUMBER) {
- // Fixed point value...
- if (length
- < 1) { // user configured no value for length. Use 16 digits,
which is comparable to
- // mantissa 2^53 of IEEE 754 binary64 "double".
- length = 16;
- }
- if (precision
- < 1) { // user configured no value for precision. Use 16
digits, which is comparable
- // to IEEE 754 binary64 "double".
- precision = 16;
- }
- retval += "DECIMAL(" + length + "," + precision + ")";
- } else {
- // Floating point value with double precision...
- retval += "FLOAT8";
- }
+ retval +=
+ switch (type) {
+ case IValueMeta.TYPE_INTEGER -> {
+ if (length < 3) {
+ yield "TINYINT";
+ } else if (length < 5) {
+ yield "SMALLINT";
+ } else if (length < 10) {
+ yield "INT";
+ } else if (length < 20) {
+ yield "BIGINT";
+ } else {
+ yield "DECIMAL(" + length + ")";
+ }
+ }
+ case IValueMeta.TYPE_BIGNUMBER -> {
+ int p = (precision < 1) ? 16 : precision;
+ int len = (length < 1) ? 16 : length;
+ yield "DECIMAL(" + len + "," + p + ")";
+ }
+ default -> "FLOAT8";
+ };
}
break;
case IValueMeta.TYPE_STRING:
diff --git
a/plugins/tech/aws/src/main/java/org/apache/hop/vfs/s3/metadata/S3MetaEditor.java
b/plugins/tech/aws/src/main/java/org/apache/hop/vfs/s3/metadata/S3MetaEditor.java
index 06b5ba6ffc..b530a18a7e 100644
---
a/plugins/tech/aws/src/main/java/org/apache/hop/vfs/s3/metadata/S3MetaEditor.java
+++
b/plugins/tech/aws/src/main/java/org/apache/hop/vfs/s3/metadata/S3MetaEditor.java
@@ -213,12 +213,10 @@ public class S3MetaEditor extends MetadataEditor<S3Meta> {
wAuthType = new Combo(parent, SWT.BORDER | SWT.SINGLE | SWT.LEFT |
SWT.READ_ONLY);
PropsUi.setLook(wAuthType);
wAuthType.setItems(
- new String[] {
- BaseMessages.getString(PKG, "S3Meta.AuthType.Default"),
- BaseMessages.getString(PKG, "S3Meta.AuthType.AccessKeys"),
- BaseMessages.getString(PKG, "S3Meta.AuthType.CredentialsFile"),
- BaseMessages.getString(PKG, "S3Meta.AuthType.Anonymous"),
- });
+ BaseMessages.getString(PKG, "S3Meta.AuthType.Default"),
+ BaseMessages.getString(PKG, "S3Meta.AuthType.AccessKeys"),
+ BaseMessages.getString(PKG, "S3Meta.AuthType.CredentialsFile"),
+ BaseMessages.getString(PKG, "S3Meta.AuthType.Anonymous"));
FormData fdAuthType = new FormData();
fdAuthType.top = new FormAttachment(wlAuthType, 0, SWT.CENTER);
fdAuthType.left = new FormAttachment(middle, 0);
@@ -521,34 +519,39 @@ public class S3MetaEditor extends MetadataEditor<S3Meta> {
meta.setCacheTtlSeconds(wCacheTtl.getText());
int authIdx = wAuthType.getSelectionIndex();
- if (authIdx == 1) {
- meta.setAuthenticationType(S3AuthType.ACCESS_KEYS.name());
- meta.setAccessKey(wAccessKey.getText());
- meta.setSecretKey(wSecretKey.getText());
- meta.setSessionToken(wSessionToken.getText());
- meta.setCredentialsFile(null);
- meta.setProfileName(null);
- } else if (authIdx == 2) {
- meta.setAuthenticationType(S3AuthType.CREDENTIALS_FILE.name());
- meta.setAccessKey(null);
- meta.setSecretKey(null);
- meta.setSessionToken(null);
- meta.setCredentialsFile(wCredentialsFile.getText());
- meta.setProfileName(wProfileName.getText());
- } else if (authIdx == 3) {
- meta.setAuthenticationType(S3AuthType.ANONYMOUS.name());
- meta.setAccessKey(null);
- meta.setSecretKey(null);
- meta.setSessionToken(null);
- meta.setCredentialsFile(null);
- meta.setProfileName(null);
- } else {
- meta.setAuthenticationType(S3AuthType.DEFAULT.name());
- meta.setAccessKey(null);
- meta.setSecretKey(null);
- meta.setSessionToken(null);
- meta.setCredentialsFile(null);
- meta.setProfileName(wProfileName.getText());
+ switch (authIdx) {
+ case 1 -> {
+ meta.setAuthenticationType(S3AuthType.ACCESS_KEYS.name());
+ meta.setAccessKey(wAccessKey.getText());
+ meta.setSecretKey(wSecretKey.getText());
+ meta.setSessionToken(wSessionToken.getText());
+ meta.setCredentialsFile(null);
+ meta.setProfileName(null);
+ }
+ case 2 -> {
+ meta.setAuthenticationType(S3AuthType.CREDENTIALS_FILE.name());
+ meta.setAccessKey(null);
+ meta.setSecretKey(null);
+ meta.setSessionToken(null);
+ meta.setCredentialsFile(wCredentialsFile.getText());
+ meta.setProfileName(wProfileName.getText());
+ }
+ case 3 -> {
+ meta.setAuthenticationType(S3AuthType.ANONYMOUS.name());
+ meta.setAccessKey(null);
+ meta.setSecretKey(null);
+ meta.setSessionToken(null);
+ meta.setCredentialsFile(null);
+ meta.setProfileName(null);
+ }
+ default -> {
+ meta.setAuthenticationType(S3AuthType.DEFAULT.name());
+ meta.setAccessKey(null);
+ meta.setSecretKey(null);
+ meta.setSessionToken(null);
+ meta.setCredentialsFile(null);
+ meta.setProfileName(wProfileName.getText());
+ }
}
meta.setEndpoint(wEndpoint.getText());
meta.setPathStyleAccess(wPathStyle.getSelection());
diff --git
a/plugins/tech/salesforce/src/main/java/org/apache/hop/metadata/salesforce/SalesforceConnectionEditor.java
b/plugins/tech/salesforce/src/main/java/org/apache/hop/metadata/salesforce/SalesforceConnectionEditor.java
index 09c6f9fc81..d7a40f2657 100644
---
a/plugins/tech/salesforce/src/main/java/org/apache/hop/metadata/salesforce/SalesforceConnectionEditor.java
+++
b/plugins/tech/salesforce/src/main/java/org/apache/hop/metadata/salesforce/SalesforceConnectionEditor.java
@@ -1234,14 +1234,16 @@ public class SalesforceConnectionEditor extends
MetadataEditor<SalesforceConnect
connection.setName(wName.getText());
int selectedIndex = wAuthType.getSelectionIndex();
- if (selectedIndex == 1) {
- connection.setAuthenticationType("OAUTH");
- connection.setOauthApiVersion(wOAuthApiVersion.getText());
- } else if (selectedIndex == 2) {
- connection.setAuthenticationType("OAUTH_JWT");
- connection.setOauthApiVersion(wOAuthJwtApiVersion.getText());
- } else {
- connection.setAuthenticationType("USERNAME_PASSWORD");
+ switch (selectedIndex) {
+ case 1 -> {
+ connection.setAuthenticationType("OAUTH");
+ connection.setOauthApiVersion(wOAuthApiVersion.getText());
+ }
+ case 2 -> {
+ connection.setAuthenticationType("OAUTH_JWT");
+ connection.setOauthApiVersion(wOAuthJwtApiVersion.getText());
+ }
+ default -> connection.setAuthenticationType("USERNAME_PASSWORD");
}
// Username/Password fields
diff --git
a/plugins/transforms/coalesce/src/main/java/org/apache/hop/pipeline/transforms/coalesce/CoalesceMeta.java
b/plugins/transforms/coalesce/src/main/java/org/apache/hop/pipeline/transforms/coalesce/CoalesceMeta.java
index 945dca0751..02939ad58c 100644
---
a/plugins/transforms/coalesce/src/main/java/org/apache/hop/pipeline/transforms/coalesce/CoalesceMeta.java
+++
b/plugins/transforms/coalesce/src/main/java/org/apache/hop/pipeline/transforms/coalesce/CoalesceMeta.java
@@ -210,9 +210,11 @@ public class CoalesceMeta extends
BaseTransformMeta<CoalesceTransform, CoalesceD
List<String> duplicateFields = new ArrayList<>();
for (String fieldName : coalesce.getInputFieldNames()) {
-
- if (fields.contains(fieldName)) duplicateFields.add(fieldName);
- else fields.add(fieldName);
+ if (fields.contains(fieldName)) {
+ duplicateFields.add(fieldName);
+ } else {
+ fields.add(fieldName);
+ }
IValueMeta vmi = prev.searchValueMeta(fieldName);
if (vmi == null) {
@@ -292,22 +294,21 @@ public class CoalesceMeta extends
BaseTransformMeta<CoalesceTransform, CoalesceD
// keep TYPE_STRING
break;
case IValueMeta.TYPE_INTEGER:
- if (otherType == IValueMeta.TYPE_NUMBER) {
- type = IValueMeta.TYPE_NUMBER;
- } else if (otherType == IValueMeta.TYPE_BIGNUMBER) {
- type = IValueMeta.TYPE_BIGNUMBER;
- } else {
- type = IValueMeta.TYPE_STRING;
- }
+ type =
+ switch (otherType) {
+ case IValueMeta.TYPE_NUMBER -> IValueMeta.TYPE_NUMBER;
+ case IValueMeta.TYPE_BIGNUMBER ->
IValueMeta.TYPE_BIGNUMBER;
+ default -> IValueMeta.TYPE_STRING;
+ };
break;
+
case IValueMeta.TYPE_NUMBER:
- if (otherType == IValueMeta.TYPE_INTEGER) {
- // keep TYPE_NUMBER
- } else if (otherType == IValueMeta.TYPE_BIGNUMBER) {
- type = IValueMeta.TYPE_BIGNUMBER;
- } else {
- type = IValueMeta.TYPE_STRING;
- }
+ type =
+ switch (otherType) {
+ case IValueMeta.TYPE_INTEGER -> type;
+ case IValueMeta.TYPE_BIGNUMBER ->
IValueMeta.TYPE_BIGNUMBER;
+ default -> IValueMeta.TYPE_STRING;
+ };
break;
case IValueMeta.TYPE_DATE:
@@ -325,13 +326,12 @@ public class CoalesceMeta extends
BaseTransformMeta<CoalesceTransform, CoalesceD
}
break;
case IValueMeta.TYPE_BIGNUMBER:
- if (otherType == IValueMeta.TYPE_INTEGER) {
- // keep TYPE_BIGNUMBER
- } else if (otherType == IValueMeta.TYPE_NUMBER) {
- // keep TYPE_BIGNUMBER
- } else {
- type = IValueMeta.TYPE_STRING;
- }
+ type =
+ switch (otherType) {
+ // keep TYPE_BIGNUMBER
+ case IValueMeta.TYPE_INTEGER, IValueMeta.TYPE_NUMBER ->
type;
+ default -> IValueMeta.TYPE_STRING;
+ };
break;
case IValueMeta.TYPE_BOOLEAN,
IValueMeta.TYPE_INET,
diff --git
a/plugins/transforms/denormaliser/src/main/java/org/apache/hop/pipeline/transforms/denormaliser/Denormaliser.java
b/plugins/transforms/denormaliser/src/main/java/org/apache/hop/pipeline/transforms/denormaliser/Denormaliser.java
index dbc2429e72..a782dd38d6 100644
---
a/plugins/transforms/denormaliser/src/main/java/org/apache/hop/pipeline/transforms/denormaliser/Denormaliser.java
+++
b/plugins/transforms/denormaliser/src/main/java/org/apache/hop/pipeline/transforms/denormaliser/Denormaliser.java
@@ -243,15 +243,13 @@ public class Denormaliser extends
BaseTransform<DenormaliserMeta, DenormaliserDa
long count = data.counters[i];
Object sum = data.sum[i];
if (count > 0) {
- if (sum instanceof Long longValue) {
- resultValue = longValue / count;
- } else if (sum instanceof Double doubleValue) {
- resultValue = doubleValue / count;
- } else if (sum instanceof BigDecimal bigDecimalValue) {
- resultValue = bigDecimalValue.divide(new BigDecimal(count));
- } else {
- resultValue = null;
- }
+ resultValue =
+ switch (sum) {
+ case Long l -> l / count;
+ case Double d -> d / count;
+ case BigDecimal bd -> bd.divide(BigDecimal.valueOf(count));
+ default -> null;
+ };
}
break;
case TYPE_AGGR_COUNT_ALL:
@@ -448,12 +446,14 @@ public class Denormaliser extends
BaseTransform<DenormaliserMeta, DenormaliserDa
private IValueMeta getConversionMeta(String mask) {
IValueMeta meta = null;
if (!Utils.isEmpty(mask)) {
- meta = conversionMetaCache.get(mask);
- if (meta == null) {
- meta = new ValueMetaDate();
- meta.setConversionMask(mask);
- conversionMetaCache.put(mask, meta);
- }
+ meta =
+ conversionMetaCache.computeIfAbsent(
+ mask,
+ key -> {
+ ValueMetaDate m = new ValueMetaDate();
+ m.setConversionMask(key);
+ return m;
+ });
}
return meta;
}
diff --git
a/plugins/transforms/edi2xml/src/main/java/org/apache/hop/pipeline/transforms/edi2xml/grammar/FastSimpleGenericEdifactDirectXMLParser.java
b/plugins/transforms/edi2xml/src/main/java/org/apache/hop/pipeline/transforms/edi2xml/grammar/FastSimpleGenericEdifactDirectXMLParser.java
index 33ad1daaaf..8dde30c25d 100644
---
a/plugins/transforms/edi2xml/src/main/java/org/apache/hop/pipeline/transforms/edi2xml/grammar/FastSimpleGenericEdifactDirectXMLParser.java
+++
b/plugins/transforms/edi2xml/src/main/java/org/apache/hop/pipeline/transforms/edi2xml/grammar/FastSimpleGenericEdifactDirectXMLParser.java
@@ -39,7 +39,7 @@ import org.antlr.runtime.TokenStream;
import org.antlr.stringtemplate.StringTemplate;
import org.antlr.stringtemplate.StringTemplateGroup;
import org.antlr.stringtemplate.language.AngleBracketTemplateLexer;
-import org.apache.commons.lang3.StringEscapeUtils;
+import org.apache.commons.text.StringEscapeUtils;
@SuppressWarnings("java:S1104")
public class FastSimpleGenericEdifactDirectXMLParser extends Parser {
diff --git
a/plugins/transforms/mongodb/src/main/java/org/apache/hop/mongo/wrapper/field/MongoArrayExpansion.java
b/plugins/transforms/mongodb/src/main/java/org/apache/hop/mongo/wrapper/field/MongoArrayExpansion.java
index 74aa12a4c4..fa2f661bff 100644
---
a/plugins/transforms/mongodb/src/main/java/org/apache/hop/mongo/wrapper/field/MongoArrayExpansion.java
+++
b/plugins/transforms/mongodb/src/main/java/org/apache/hop/mongo/wrapper/field/MongoArrayExpansion.java
@@ -194,14 +194,13 @@ public class MongoArrayExpansion {
sf.reset(variables);
// what have we got?
- if (element instanceof Document doc) {
- result[i][sf.outputIndex] = sf.convertToHopValue(doc);
- } else if (element instanceof List list) {
- result[i][sf.outputIndex] = sf.convertToHopValue(list);
- } else {
- // assume a primitive
- result[i][sf.outputIndex] = sf.getHopValue(element);
- }
+ result[i][sf.outputIndex] =
+ switch (element) {
+ case Document doc -> sf.convertToHopValue(doc);
+ case List<?> list -> sf.convertToHopValue(list);
+ // assume a primitive
+ default -> sf.getHopValue(element);
+ };
}
}
diff --git
a/plugins/transforms/mongodb/src/main/java/org/apache/hop/mongo/wrapper/field/MongoField.java
b/plugins/transforms/mongodb/src/main/java/org/apache/hop/mongo/wrapper/field/MongoField.java
index 68621ded13..47db29132a 100644
---
a/plugins/transforms/mongodb/src/main/java/org/apache/hop/mongo/wrapper/field/MongoField.java
+++
b/plugins/transforms/mongodb/src/main/java/org/apache/hop/mongo/wrapper/field/MongoField.java
@@ -19,6 +19,7 @@ package org.apache.hop.mongo.wrapper.field;
import com.fasterxml.jackson.databind.JsonNode;
import java.math.BigDecimal;
+import java.nio.charset.StandardCharsets;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Date;
@@ -178,13 +179,12 @@ public class MongoField implements Comparable<MongoField>
{
return switch (tempValueMeta.getType()) {
case IValueMeta.TYPE_BIGNUMBER -> {
- if (fieldValue instanceof Number number) {
- fieldValue = BigDecimal.valueOf(number.doubleValue());
- } else if (fieldValue instanceof Date date) {
- fieldValue = new BigDecimal(date.getTime());
- } else {
- fieldValue = new BigDecimal(fieldValue.toString());
- }
+ fieldValue =
+ switch (fieldValue) {
+ case Number number -> BigDecimal.valueOf(number.doubleValue());
+ case Date date -> BigDecimal.valueOf(date.getTime());
+ default -> new BigDecimal(fieldValue.toString());
+ };
yield tempValueMeta.getBigNumber(fieldValue);
}
case IValueMeta.TYPE_BINARY -> {
@@ -221,27 +221,27 @@ public class MongoField implements Comparable<MongoField>
{
yield tempValueMeta.getDate(fieldValue);
}
case IValueMeta.TYPE_INTEGER -> {
- if (fieldValue instanceof Number number) {
- fieldValue = (long) number.intValue();
- } else if (fieldValue instanceof Binary binary) {
- byte[] b = binary.getData();
- String s = new String(b);
- fieldValue = Long.valueOf(s);
- } else {
- fieldValue = Long.valueOf(fieldValue.toString());
- }
+ fieldValue =
+ switch (fieldValue) {
+ case Number number -> number.longValue();
+ case Binary binary -> {
+ String s = new String(binary.getData(),
StandardCharsets.UTF_8);
+ yield Long.valueOf(s);
+ }
+ default -> Long.valueOf(fieldValue.toString());
+ };
yield tempValueMeta.getInteger(fieldValue);
}
case IValueMeta.TYPE_NUMBER -> {
- if (fieldValue instanceof Number number) {
- fieldValue = number.doubleValue();
- } else if (fieldValue instanceof Binary binary) {
- byte[] b = binary.getData();
- String s = new String(b);
- fieldValue = Double.valueOf(s);
- } else {
- fieldValue = Double.valueOf(fieldValue.toString());
- }
+ fieldValue =
+ switch (fieldValue) {
+ case Number number -> number.doubleValue();
+ case Binary binary -> {
+ String s = new String(binary.getData(),
StandardCharsets.UTF_8);
+ yield Double.valueOf(s);
+ }
+ default -> Double.valueOf(fieldValue.toString());
+ };
yield tempValueMeta.getNumber(fieldValue);
}
case IValueMeta.TYPE_STRING -> tempValueMeta.getString(fieldValue);
diff --git
a/plugins/transforms/mongodb/src/main/java/org/apache/hop/mongo/wrapper/field/MongodbInputDiscoverFieldsImpl.java
b/plugins/transforms/mongodb/src/main/java/org/apache/hop/mongo/wrapper/field/MongodbInputDiscoverFieldsImpl.java
index a84ab06e30..250ca54713 100644
---
a/plugins/transforms/mongodb/src/main/java/org/apache/hop/mongo/wrapper/field/MongodbInputDiscoverFieldsImpl.java
+++
b/plugins/transforms/mongodb/src/main/java/org/apache/hop/mongo/wrapper/field/MongodbInputDiscoverFieldsImpl.java
@@ -288,40 +288,35 @@ public class MongodbInputDiscoverFieldsImpl implements
MongoDbInputDiscoverField
for (String key : rec.keySet()) {
Object fieldValue = rec.get(key);
- if (fieldValue instanceof Document subDoc) {
- processRecord(subDoc, path + "." + key, name + "." + key, lookup);
- } else if (fieldValue instanceof List list) {
- processList(list, path + "." + key, name + "." + key, lookup);
- } else {
- // some sort of primitive
- String finalPath = path + "." + key;
- String finalName = name + "." + key;
- if (!lookup.containsKey(finalPath)) {
- MongoField newField = new MongoField();
- int hopType = mongoToHopType(fieldValue);
- // Following suit of mongoToHopType by interpreting null as String
type
- newField.mongoType = String.class;
- if (fieldValue != null) {
- newField.mongoType = fieldValue.getClass();
- }
- newField.fieldName = finalName;
- newField.fieldPath = finalPath;
- newField.hopType = IValueMeta.getTypeDescription(hopType);
- newField.percentageOfSample = 1;
+ switch (fieldValue) {
+ case Document subDoc -> processRecord(subDoc, path + "." + key, name +
"." + key, lookup);
+ case List<?> list -> processList(list, path + "." + key, name + "." +
key, lookup);
+ default -> {
+ String finalPath = path + "." + key;
+ String finalName = name + "." + key;
- lookup.put(finalPath, newField);
- } else {
- // update max indexes in array parts of name
MongoField m = lookup.get(finalPath);
- Class<?> fieldClass = String.class;
- if (fieldValue != null) {
- fieldClass = fieldValue.getClass();
+ Class<?> fieldClass = (fieldValue == null) ? String.class :
fieldValue.getClass();
+
+ if (m == null) {
+ MongoField newField = new MongoField();
+ int hopType = mongoToHopType(fieldValue);
+
+ newField.mongoType = fieldClass;
+ newField.fieldName = finalName;
+ newField.fieldPath = finalPath;
+ newField.hopType = IValueMeta.getTypeDescription(hopType);
+ newField.percentageOfSample = 1;
+
+ lookup.put(finalPath, newField);
+ } else {
+ if (!m.mongoType.isAssignableFrom(fieldClass)) {
+ m.disparateTypes = true;
+ }
+
+ m.percentageOfSample++;
+ updateMinMaxArrayIndexes(m, finalName);
}
- if (!m.mongoType.isAssignableFrom(fieldClass)) {
- m.disparateTypes = true;
- }
- m.percentageOfSample++;
- updateMinMaxArrayIndexes(m, finalName);
}
}
}
@@ -340,41 +335,38 @@ public class MongodbInputDiscoverFieldsImpl implements
MongoDbInputDiscoverField
for (int i = 0; i < list.size(); i++) {
Object element = list.get(i);
+ switch (element) {
+ case Document doc ->
+ processRecord(doc, nonPrimitivePath, name + "[" + i + ":" + i +
"]", lookup);
+ case List<?> subList ->
+ processList(subList, nonPrimitivePath, name + "[" + i + ":" + i +
"]", lookup);
+ default -> {
+ // primitive handling
+ String finalPath = primitivePath + "[" + i + "]";
+ String finalName = name + "[" + i + "]";
- if (element instanceof Document doc) {
- processRecord(doc, nonPrimitivePath, name + "[" + i + ":" + i + "]",
lookup);
- } else if (element instanceof List subList) {
- processList(subList, nonPrimitivePath, name + "[" + i + ":" + i + "]",
lookup);
- } else {
- // some sort of primitive
- String finalPath = primitivePath + "[" + i + "]";
- String finalName = name + "[" + i + "]";
- if (!lookup.containsKey(finalPath)) {
- MongoField newField = new MongoField();
- int hopType = mongoToHopType(element);
- // Following suit of mongoToHopType by interpreting null as String
type
- newField.mongoType = String.class;
- if (element != null) {
- newField.mongoType = element.getClass();
- }
- newField.fieldName = finalPath;
- newField.fieldPath = finalName;
- newField.hopType = IValueMeta.getTypeDescription(hopType);
- newField.percentageOfSample = 1;
-
- lookup.put(finalPath, newField);
- } else {
- // update max indexes in array parts of name
MongoField m = lookup.get(finalPath);
- Class<?> elementClass = String.class;
- if (element != null) {
- elementClass = element.getClass();
- }
- if (!m.mongoType.isAssignableFrom(elementClass)) {
- m.disparateTypes = true;
+ if (m == null) {
+ MongoField newField = new MongoField();
+ int hopType = mongoToHopType(element);
+
+ newField.mongoType = (element == null) ? String.class :
element.getClass();
+ newField.fieldName = finalPath;
+ newField.fieldPath = finalName;
+ newField.hopType = IValueMeta.getTypeDescription(hopType);
+ newField.percentageOfSample = 1;
+
+ lookup.put(finalPath, newField);
+ } else {
+ Class<?> elementClass = (element == null) ? String.class :
element.getClass();
+
+ if (!m.mongoType.isAssignableFrom(elementClass)) {
+ m.disparateTypes = true;
+ }
+
+ m.percentageOfSample++;
+ updateMinMaxArrayIndexes(m, finalName);
}
- m.percentageOfSample++;
- updateMinMaxArrayIndexes(m, finalName);
}
}
}
diff --git
a/plugins/transforms/repeatfields/src/main/java/org/apache/hop/pipeline/transforms/repeatfields/RepeatFields.java
b/plugins/transforms/repeatfields/src/main/java/org/apache/hop/pipeline/transforms/repeatfields/RepeatFields.java
index 03508776aa..e13a0bc5e9 100644
---
a/plugins/transforms/repeatfields/src/main/java/org/apache/hop/pipeline/transforms/repeatfields/RepeatFields.java
+++
b/plugins/transforms/repeatfields/src/main/java/org/apache/hop/pipeline/transforms/repeatfields/RepeatFields.java
@@ -103,12 +103,12 @@ public class RepeatFields extends
BaseTransform<RepeatFieldsMeta, RepeatFieldsDa
// What do we need to do?
switch (repeat.getType()) {
case Previous -> targetValue = getPreviousValue(sourceValue,
targetIndex);
- case PreviousWhenNull -> {
- // If the source value is null, take the previous value.
- if (sourceValueMeta.isNull(sourceValue)) {
- targetValue = getPreviousValue(null, targetIndex);
- }
- }
+ case PreviousWhenNull ->
+ // If the source value is null, take the previous value.
+ targetValue =
+ sourceValueMeta.isNull(sourceValue)
+ ? getPreviousValue(null, targetIndex)
+ : targetValue;
case CurrentWhenIndicated ->
targetValue = getCurrentValueWhenIndicated(i, repeat, r,
sourceValue, targetIndex);
}
diff --git
a/plugins/transforms/verticabulkloader/src/main/java/org/apache/hop/pipeline/transforms/vertica/bulkloader/VerticaBulkLoader.java
b/plugins/transforms/verticabulkloader/src/main/java/org/apache/hop/pipeline/transforms/vertica/bulkloader/VerticaBulkLoader.java
index 156142af75..5e0dbe933f 100644
---
a/plugins/transforms/verticabulkloader/src/main/java/org/apache/hop/pipeline/transforms/vertica/bulkloader/VerticaBulkLoader.java
+++
b/plugins/transforms/verticabulkloader/src/main/java/org/apache/hop/pipeline/transforms/vertica/bulkloader/VerticaBulkLoader.java
@@ -34,7 +34,6 @@ import java.util.Date;
import java.util.List;
import java.util.concurrent.Executors;
import java.util.stream.Collectors;
-import javax.sql.PooledConnection;
import org.apache.commons.dbcp2.DelegatingConnection;
import org.apache.hop.core.database.Database;
import org.apache.hop.core.database.DatabaseMeta;
@@ -328,7 +327,7 @@ public class VerticaBulkLoader extends
BaseTransform<VerticaBulkLoaderMeta, Vert
return new ColumnSpec(ColumnSpec.VariableWidthType.VARCHAR,
targetValueMeta.getLength());
}
case "DATE" -> {
- if (inputValueMeta.isDate() == false) {
+ if (!inputValueMeta.isDate()) {
throw new IllegalArgumentException(
CONST_FIELD
+ inputValueMeta.getName()
@@ -339,7 +338,7 @@ public class VerticaBulkLoader extends
BaseTransform<VerticaBulkLoaderMeta, Vert
}
}
case "TIME" -> {
- if (inputValueMeta.isDate() == false) {
+ if (!inputValueMeta.isDate()) {
throw new IllegalArgumentException(
CONST_FIELD
+ inputValueMeta.getName()
@@ -350,7 +349,7 @@ public class VerticaBulkLoader extends
BaseTransform<VerticaBulkLoaderMeta, Vert
}
}
case "TIMETZ" -> {
- if (inputValueMeta.isDate() == false) {
+ if (!inputValueMeta.isDate()) {
throw new IllegalArgumentException(
CONST_FIELD
+ inputValueMeta.getName()
@@ -361,7 +360,7 @@ public class VerticaBulkLoader extends
BaseTransform<VerticaBulkLoaderMeta, Vert
}
}
case "TIMESTAMP" -> {
- if (inputValueMeta.isDate() == false) {
+ if (!inputValueMeta.isDate()) {
throw new IllegalArgumentException(
CONST_FIELD
+ inputValueMeta.getName()
@@ -372,7 +371,7 @@ public class VerticaBulkLoader extends
BaseTransform<VerticaBulkLoaderMeta, Vert
}
}
case "TIMESTAMPTZ" -> {
- if (inputValueMeta.isDate() == false) {
+ if (!inputValueMeta.isDate()) {
throw new IllegalArgumentException(
CONST_FIELD
+ inputValueMeta.getName()
@@ -383,7 +382,7 @@ public class VerticaBulkLoader extends
BaseTransform<VerticaBulkLoaderMeta, Vert
}
}
case "INTERVAL", "INTERVAL DAY TO SECOND" -> {
- if (inputValueMeta.isDate() == false) {
+ if (!inputValueMeta.isDate()) {
throw new IllegalArgumentException(
CONST_FIELD
+ inputValueMeta.getName()
@@ -501,7 +500,7 @@ public class VerticaBulkLoader extends
BaseTransform<VerticaBulkLoaderMeta, Vert
.append("' ");
}
- // TODO: Should eventually get a preference for this, but for now, be
backward compatible.
+ // Should eventually get a preference for this, but for now, be backward
compatible.
sb.append("ENFORCELENGTH ");
if (meta.isAbortOnError()) {
@@ -692,24 +691,22 @@ public class VerticaBulkLoader extends
BaseTransform<VerticaBulkLoaderMeta, Vert
if (conn instanceof VerticaConnection verticaConnection) {
return verticaConnection;
} else {
- Connection underlyingConn = null;
- if (conn instanceof DelegatingConnection delegatingConnection) {
- DelegatingConnection pooledConn = delegatingConnection;
- underlyingConn = pooledConn.getInnermostDelegate();
- } else if (conn instanceof javax.sql.PooledConnection
pooledConnection) {
- PooledConnection pooledConn = pooledConnection;
- underlyingConn = pooledConn.getConnection();
- } else {
- // Last resort - attempt to use unwrap to get at the connection.
- try {
- if (conn.isWrapperFor(VerticaConnection.class)) {
- return conn.unwrap(VerticaConnection.class);
- }
- } catch (SQLException ignored) {
- // ignored - the connection doesn't support unwrap or the
connection cannot be
- // unwrapped into a VerticaConnection.
- }
- }
+ Connection underlyingConn =
+ switch (conn) {
+ case DelegatingConnection<?> delegating ->
delegating.getInnermostDelegate();
+ case javax.sql.PooledConnection pooled -> pooled.getConnection();
+ default -> {
+ try {
+ if (conn.isWrapperFor(VerticaConnection.class)) {
+ yield conn.unwrap(VerticaConnection.class);
+ }
+ } catch (SQLException ignored) {
+ // ignored - the connection doesn't support unwrap or the
connection cannot be
+ // unwrapped into a VerticaConnection.
+ }
+ yield null;
+ }
+ };
if ((underlyingConn != null)
&& (underlyingConn instanceof VerticaConnection
verticaConnection)) {
return verticaConnection;
diff --git
a/plugins/transforms/webservices/src/main/java/org/apache/hop/pipeline/transforms/webservices/WebService.java
b/plugins/transforms/webservices/src/main/java/org/apache/hop/pipeline/transforms/webservices/WebService.java
index b03b89c9bd..0563b5a917 100644
---
a/plugins/transforms/webservices/src/main/java/org/apache/hop/pipeline/transforms/webservices/WebService.java
+++
b/plugins/transforms/webservices/src/main/java/org/apache/hop/pipeline/transforms/webservices/WebService.java
@@ -406,31 +406,36 @@ public class WebService extends
BaseTransform<WebServiceMeta, WebServiceData> {
cachedHttpClient.execute(vHttpMethod, cachedHostConfiguration);
responseCode = httpResponse.getCode();
}
- if (responseCode == HttpStatus.SC_OK) {
- httpEntity = httpResponse.getEntity();
- charSet = StandardCharsets.UTF_8;
- processRows(
- httpEntity.getContent(),
- rowData,
- rowMeta,
-
cachedWsdl.getWsdlTypes().isElementFormQualified(cachedWsdl.getTargetNamespace()),
- charSet.toString());
- } else if (responseCode == HttpStatus.SC_UNAUTHORIZED) {
- throw new HopTransformException(
- BaseMessages.getString(PKG,
"WebServices.ERROR0011.Authentication", cachedURLService));
- } else if (responseCode == HttpStatus.SC_NOT_FOUND) {
- throw new HopTransformException(
- BaseMessages.getString(PKG, "WebServices.ERROR0012.NotFound",
cachedURLService));
- } else if (responseCode == HttpStatus.SC_INTERNAL_SERVER_ERROR) {
- throw new HopTransformException("Internal Server Error 500: " +
cachedURLService);
- } else {
- throw new HopTransformException(
- BaseMessages.getString(
- PKG,
- "WebServices.ERROR0001.ServerError",
- Integer.toString(responseCode),
- Const.NVL(readEntity(httpEntity, charSet.toString()), ""),
- cachedURLService));
+
+ switch (responseCode) {
+ case HttpStatus.SC_OK -> {
+ httpEntity = httpResponse.getEntity();
+ charSet = StandardCharsets.UTF_8;
+
+ processRows(
+ httpEntity.getContent(),
+ rowData,
+ rowMeta,
+
cachedWsdl.getWsdlTypes().isElementFormQualified(cachedWsdl.getTargetNamespace()),
+ charSet.toString());
+ }
+ case HttpStatus.SC_UNAUTHORIZED ->
+ throw new HopTransformException(
+ BaseMessages.getString(
+ PKG, "WebServices.ERROR0011.Authentication",
cachedURLService));
+ case HttpStatus.SC_NOT_FOUND ->
+ throw new HopTransformException(
+ BaseMessages.getString(PKG, "WebServices.ERROR0012.NotFound",
cachedURLService));
+ case HttpStatus.SC_INTERNAL_SERVER_ERROR ->
+ throw new HopTransformException("Internal Server Error 500: " +
cachedURLService);
+ default ->
+ throw new HopTransformException(
+ BaseMessages.getString(
+ PKG,
+ "WebServices.ERROR0001.ServerError",
+ Integer.toString(responseCode),
+ Const.NVL(readEntity(httpEntity, charSet.toString()), ""),
+ cachedURLService));
}
} catch (UnknownHostException e) {
throw new HopTransformException(
diff --git
a/plugins/transforms/webservices/src/main/java/org/apache/hop/pipeline/transforms/webservices/wsdl/WsdlUtils.java
b/plugins/transforms/webservices/src/main/java/org/apache/hop/pipeline/transforms/webservices/wsdl/WsdlUtils.java
index 0ff317c4db..32a2275bd6 100644
---
a/plugins/transforms/webservices/src/main/java/org/apache/hop/pipeline/transforms/webservices/wsdl/WsdlUtils.java
+++
b/plugins/transforms/webservices/src/main/java/org/apache/hop/pipeline/transforms/webservices/wsdl/WsdlUtils.java
@@ -43,6 +43,8 @@ import org.apache.hop.core.exception.HopRuntimeException;
/** Utilities for getting extensibility elements. */
final class WsdlUtils {
+ private WsdlUtils() {}
+
// extensibility element names
private static final String SOAP_PORT_ADDRESS_NAME = "address";
private static final String SOAP_BINDING_ELEMENT_NAME = "binding";
@@ -99,16 +101,17 @@ final class WsdlUtils {
findExtensibilityElement((ElementExtensible) binding,
SOAP_BINDING_ELEMENT_NAME);
if (soapBindingElem != null) {
- if (soapBindingElem instanceof SOAP12Binding soap12Binding) {
- style = soap12Binding.getStyle();
- } else if (soapBindingElem instanceof SOAPBinding soapBinding) {
- style = soapBinding.getStyle();
- } else {
- throw new HopException(
- "Binding type "
- + soapBindingElem
- + " encountered. The Web Service Lookup transform only
supports SOAP Bindings!");
- }
+ style =
+ switch (soapBindingElem) {
+ case SOAP12Binding soap12Binding -> soap12Binding.getStyle();
+ case SOAPBinding soapBinding -> soapBinding.getStyle();
+
+ default ->
+ throw new HopException(
+ "Binding type "
+ + soapBindingElem
+ + " encountered. The Web Service Lookup transform only
supports SOAP Bindings!");
+ };
}
return style;
}
@@ -234,7 +237,7 @@ final class WsdlUtils {
(ElementExtensible) bindingOutput, SOAP_HEADER_ELEMENT_NAME));
}
- HashSet<String> headerSet = new HashSet<>(headers.size());
+ HashSet<String> headerSet = HashSet.newHashSet(headers.size());
for (ExtensibilityElement element : headers) {
if (element instanceof SOAP12Header soap12Header) {
headerSet.add(soap12Header.getPart());
diff --git
a/ui/src/main/java/org/apache/hop/ui/core/dialog/EnterTextDialog.java
b/ui/src/main/java/org/apache/hop/ui/core/dialog/EnterTextDialog.java
index 2a3e4ee5a7..5b81f3ee31 100644
--- a/ui/src/main/java/org/apache/hop/ui/core/dialog/EnterTextDialog.java
+++ b/ui/src/main/java/org/apache/hop/ui/core/dialog/EnterTextDialog.java
@@ -237,12 +237,10 @@ public class EnterTextDialog extends Dialog {
String newText = wDesc.getText();
if (!newText.equals(origText)) {
int save = HopGuiWorkflowGraph.showChangedWarning(shell, title);
- if (save == SWT.CANCEL) {
- e.doit = false;
- } else if (save == SWT.YES) {
- ok();
- } else {
- cancel();
+ switch (save) {
+ case SWT.CANCEL -> e.doit = false;
+ case SWT.YES -> ok();
+ default -> cancel();
}
} else {
cancel();
diff --git
a/ui/src/main/java/org/apache/hop/ui/hopgui/terminal/HopGuiTerminalPanel.java
b/ui/src/main/java/org/apache/hop/ui/hopgui/terminal/HopGuiTerminalPanel.java
index e74d0e9bd3..c7c3be790b 100644
---
a/ui/src/main/java/org/apache/hop/ui/hopgui/terminal/HopGuiTerminalPanel.java
+++
b/ui/src/main/java/org/apache/hop/ui/hopgui/terminal/HopGuiTerminalPanel.java
@@ -801,7 +801,7 @@ public class HopGuiTerminalPanel extends Composite
implements TabClosable {
&& fontSizeState.getStateMap() != null
&& fontSizeState.getStateMap().get("value") != null) {
int saved =
Const.toInt(fontSizeState.getStateMap().get("value").toString(), 100);
- terminalFontSizePercent = Math.max(50, Math.min(200, saved));
+ terminalFontSizePercent = Math.clamp(saved, 50, 200);
}
if (auditList.getNames().isEmpty()) {
diff --git
a/ui/src/main/java/org/apache/hop/ui/hopgui/terminal/JediTerminalWidget.java
b/ui/src/main/java/org/apache/hop/ui/hopgui/terminal/JediTerminalWidget.java
index 983cbb7f12..4b4914ced8 100644
--- a/ui/src/main/java/org/apache/hop/ui/hopgui/terminal/JediTerminalWidget.java
+++ b/ui/src/main/java/org/apache/hop/ui/hopgui/terminal/JediTerminalWidget.java
@@ -30,11 +30,11 @@ import java.awt.Frame;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
-import java.lang.reflect.Method;
import java.nio.charset.StandardCharsets;
import java.util.HashMap;
import java.util.Map;
import java.util.concurrent.atomic.AtomicInteger;
+import org.apache.commons.lang3.reflect.MethodUtils;
import org.apache.hop.core.Const;
import org.apache.hop.core.logging.LogChannel;
import org.apache.hop.ui.core.PropsUi;
@@ -43,7 +43,6 @@ import org.eclipse.swt.awt.SWT_AWT;
import org.eclipse.swt.custom.StyledText;
import org.eclipse.swt.events.KeyAdapter;
import org.eclipse.swt.events.KeyEvent;
-import org.eclipse.swt.events.TraverseEvent;
import org.eclipse.swt.events.TraverseListener;
import org.eclipse.swt.graphics.Rectangle;
import org.eclipse.swt.layout.FormAttachment;
@@ -76,7 +75,7 @@ public class JediTerminalWidget implements ITerminalWidget {
Composite parent, String shellPath, String workingDirectory, int
fontScalePercent) {
this.shellPath = shellPath;
this.workingDirectory = workingDirectory;
- this.fontScalePercent.set(Math.max(50, Math.min(200, fontScalePercent)));
+ this.fontScalePercent.set(Math.clamp(fontScalePercent, 50, 200));
createWidget(parent, parent.getDisplay());
@@ -143,42 +142,38 @@ public class JediTerminalWidget implements
ITerminalWidget {
// Defer focus until after terminal initialization
bridgeComposite.addListener(
SWT.FocusIn,
- event -> {
- display.asyncExec(
- () -> {
- if (bridgeComposite.isDisposed() || jediTermWidget == null) {
- return;
- }
- new Thread(
- () -> {
- try {
- java.awt.EventQueue.invokeLater(
- () -> {
- if (jediTermWidget != null) {
- try {
- jediTermWidget.requestFocusInWindow();
- } catch (Exception e) {
- log.logDebug("Could not request focus: "
+ e.getMessage());
+ event ->
+ display.asyncExec(
+ () -> {
+ if (bridgeComposite.isDisposed() || jediTermWidget == null) {
+ return;
+ }
+ new Thread(
+ () -> {
+ try {
+ java.awt.EventQueue.invokeLater(
+ () -> {
+ if (jediTermWidget != null) {
+ try {
+ jediTermWidget.requestFocusInWindow();
+ } catch (Exception e) {
+ log.logDebug("Could not request focus:
" + e.getMessage());
+ }
}
- }
- });
- } catch (Exception e) {
- log.logDebug("Error requesting AWT focus: " +
e.getMessage());
- }
- })
- .start();
- });
- });
+ });
+ } catch (Exception e) {
+ log.logDebug("Error requesting AWT focus: " +
e.getMessage());
+ }
+ })
+ .start();
+ }));
// Override tab listener and send it to jediTerm
if (Const.isLinux()) {
TraverseListener tabTraverse =
- new TraverseListener() {
- @Override
- public void keyTraversed(TraverseEvent e) {
- if (e.detail == SWT.TRAVERSE_TAB_NEXT || e.detail ==
SWT.TRAVERSE_TAB_PREVIOUS) {
- e.doit = false;
- }
+ e -> {
+ if (e.detail == SWT.TRAVERSE_TAB_NEXT || e.detail ==
SWT.TRAVERSE_TAB_PREVIOUS) {
+ e.doit = false;
}
};
KeyAdapter tabKey =
@@ -299,7 +294,7 @@ public class JediTerminalWidget implements ITerminalWidget {
@Override
public void setFontScalePercent(int percent) {
- int clamped = Math.max(50, Math.min(200, percent));
+ int clamped = Math.clamp(percent, 50, 200);
fontScalePercent.set(clamped);
if (jediTermWidget == null) {
return;
@@ -313,9 +308,7 @@ public class JediTerminalWidget implements ITerminalWidget {
() -> {
try {
TerminalPanel panel = jediTermWidget.getTerminalPanel();
- Method reinit =
TerminalPanel.class.getDeclaredMethod("reinitFontAndResize");
- reinit.setAccessible(true);
- reinit.invoke(panel);
+ MethodUtils.invokeMethod(panel, true, "reinitFontAndResize");
} catch (Exception e) {
log.logDebug("Terminal font reinit: " + e.getMessage());
}