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 8f9f0301a2 Refactor DelayMeta#setScaleTimeCode using JDK 17 switch
expression (#6462)
8f9f0301a2 is described below
commit 8f9f0301a280d7ac7f9b8522a1fd8fa611f05ff9
Author: lance <[email protected]>
AuthorDate: Mon Feb 2 20:40:49 2026 +0800
Refactor DelayMeta#setScaleTimeCode using JDK 17 switch expression (#6462)
Signed-off-by: lance <[email protected]>
---
.../hop/pipeline/transforms/delay/DelayMeta.java | 41 ++++++--------
.../pipeline/transforms/delay/DelayMetaTest.java | 66 ++++++++++++++++++++++
2 files changed, 84 insertions(+), 23 deletions(-)
diff --git
a/plugins/transforms/delay/src/main/java/org/apache/hop/pipeline/transforms/delay/DelayMeta.java
b/plugins/transforms/delay/src/main/java/org/apache/hop/pipeline/transforms/delay/DelayMeta.java
index 1746712067..6a82bd6187 100644
---
a/plugins/transforms/delay/src/main/java/org/apache/hop/pipeline/transforms/delay/DelayMeta.java
+++
b/plugins/transforms/delay/src/main/java/org/apache/hop/pipeline/transforms/delay/DelayMeta.java
@@ -88,40 +88,33 @@ public class DelayMeta extends BaseTransformMeta<Delay,
DelayData> {
}
public void setScaleTimeCode(int scaleTimeIndex) {
- switch (scaleTimeIndex) {
- case 0:
- scaletime = SCALE_TIME_CODE[0]; // milliseconds
- break;
- case 1:
- scaletime = SCALE_TIME_CODE[1]; // second
- break;
- case 2:
- scaletime = SCALE_TIME_CODE[2]; // minutes
- break;
- case 3:
- scaletime = SCALE_TIME_CODE[3]; // hours
- break;
- default:
- scaletime = SCALE_TIME_CODE[1]; // seconds
- break;
- }
+ scaletime =
+ switch (scaleTimeIndex) {
+ // milliseconds
+ case 0 -> SCALE_TIME_CODE[0];
+ // minutes
+ case 2 -> SCALE_TIME_CODE[2];
+ // hours
+ case 3 -> SCALE_TIME_CODE[3];
+ // seconds
+ default -> SCALE_TIME_CODE[1];
+ };
}
public int getScaleTimeCode() {
- int retval = 1; // DEFAULT: seconds
+ // DEFAULT: seconds
+ int retval = 1;
if (scaletime == null) {
return retval;
}
+
if (scaletime.equals(SCALE_TIME_CODE[0])) {
retval = 0;
- } else if (scaletime.equals(SCALE_TIME_CODE[1])) {
- retval = 1;
} else if (scaletime.equals(SCALE_TIME_CODE[2])) {
retval = 2;
} else if (scaletime.equals(SCALE_TIME_CODE[3])) {
retval = 3;
}
-
return retval;
}
@@ -131,8 +124,10 @@ public class DelayMeta extends BaseTransformMeta<Delay,
DelayData> {
@Override
public void setDefault() {
- timeout = "1"; // default one second
- scaletime = DEFAULT_SCALE_TIME; // defaults to "seconds"
+ // default one second
+ timeout = "1";
+ // defaults to "seconds"
+ scaletime = DEFAULT_SCALE_TIME;
timeoutField = null;
scaleTimeFromField = false;
scaleTimeField = null;
diff --git
a/plugins/transforms/delay/src/test/java/org/apache/hop/pipeline/transforms/delay/DelayMetaTest.java
b/plugins/transforms/delay/src/test/java/org/apache/hop/pipeline/transforms/delay/DelayMetaTest.java
index 0a43c44447..9be0a93a32 100644
---
a/plugins/transforms/delay/src/test/java/org/apache/hop/pipeline/transforms/delay/DelayMetaTest.java
+++
b/plugins/transforms/delay/src/test/java/org/apache/hop/pipeline/transforms/delay/DelayMetaTest.java
@@ -17,6 +17,11 @@
package org.apache.hop.pipeline.transforms.delay;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertFalse;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
+import static org.junit.jupiter.api.Assertions.assertNull;
+
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
@@ -24,13 +29,24 @@ import java.util.Map;
import org.apache.hop.core.exception.HopException;
import org.apache.hop.junit.rules.RestoreHopEngineEnvironmentExtension;
import org.apache.hop.pipeline.transforms.loadsave.LoadSaveTester;
+import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.RegisterExtension;
+import org.junit.jupiter.params.ParameterizedTest;
+import org.junit.jupiter.params.provider.CsvSource;
+/** Unit test for {@link DelayMeta} */
class DelayMetaTest {
@RegisterExtension
static RestoreHopEngineEnvironmentExtension env = new
RestoreHopEngineEnvironmentExtension();
+ private DelayMeta meta;
+
+ @BeforeEach
+ void setUp() {
+ meta = new DelayMeta();
+ }
+
@Test
void testTransformMeta() throws HopException {
List<String> attributes =
@@ -55,4 +71,54 @@ class DelayMetaTest {
new LoadSaveTester<>(DelayMeta.class, attributes, getterMap,
setterMap);
loadSaveTester.testSerialization();
}
+
+ @Test
+ void testSetDefault() {
+ meta.setDefault();
+
+ assertEquals("1", meta.getTimeout());
+ assertEquals("seconds", meta.getScaletime());
+ assertNull(meta.getTimeoutField());
+ assertFalse(meta.isScaleTimeFromField());
+ assertNull(meta.getScaleTimeField());
+ }
+
+ @ParameterizedTest(name = "index={0} <-> scaleTime={1}")
+ @CsvSource({"0, milliseconds", "1, seconds", "2, minutes", "3, hours"})
+ void testSetAndGetScaleTimeCode_Normal(int index, String expected) {
+ meta.setScaleTimeCode(index);
+
+ assertEquals(expected, meta.getScaletime());
+ assertEquals(index, meta.getScaleTimeCode());
+ }
+
+ @Test
+ void testGetScaleTimeCodeWhenNull() {
+ meta.setScaletime(null);
+ assertEquals(1, meta.getScaleTimeCode());
+ }
+
+ @Test
+ void testSetTimeoutFieldEmpty() {
+ meta.setTimeoutField("");
+ assertNull(meta.getTimeoutField());
+ }
+
+ @Test
+ void testSetTimeoutFieldValue() {
+ meta.setTimeoutField("timeout_col");
+ assertEquals("timeout_col", meta.getTimeoutField());
+ }
+
+ @Test
+ void testSetScaleTimeFieldEmpty() {
+ meta.setScaleTimeField(" ");
+ assertNotNull(meta.getScaleTimeField());
+ }
+
+ @Test
+ void testSetScaleTimeFieldValue() {
+ meta.setScaleTimeField("scale_col");
+ assertEquals("scale_col", meta.getScaleTimeField());
+ }
}