From b088958c9f6935d356b6c087c8e8106b400aa24f Mon Sep 17 00:00:00 2001 From: Raven Szewczyk Date: Sat, 1 Apr 2023 20:06:12 +0100 Subject: Jabel, Generic injection and mostly automatic code cleanup (#1829) * Enable Jabel&Generic injection, fix type error caused by this * add missing <> * Infer generic types automatically * Parametrize cast types * Use enhanced for loops * Unnecessary boxing * Unnecessary unboxing * Use Objects.equals * Explicit type can be replaced with `<>` * Collapse identical catch blocks * Add SafeVarargs where applicable * Anonymous type can be replaced with lambda * Use List.sort directly * Lambda can be a method reference * Statement lambda can be an expression lambda * Use string switches * Instanceof pattern matching * Text block can be used * Migrate to enhanced switch * Java style array declarations * Unnecessary toString() * More unnecessary String conversions * Unnecessary modifiers * Unnecessary semicolons * Fix duplicate conditions * Extract common code from if branches * Replace switches with ifs for 1-2 cases * Inner class may be static * Minor performance issues * Replace string appending in loops with string builders * Fix IntelliJ using the wrong empty list method * Use Long.compare * Generic arguments: getSubItems * Generic arguments: getSubBlocks * Raw types warnings * Fix remaining missing generics * Too weak variable type leads to unnecessary cast * Redundant type casts * Redundant array length check * Redundant vararg arrays * Manual min/max implementations * A couple missed inspections * Goodbye explosion power ternary ladder * Apply spotless * Get rid of the other two big ternary ladders * Binary search explosion power * Don't overcomplicate things --- .../redstonecircuits/GT_Circuit_BasicLogic.java | 42 ++++++++++++++-------- .../common/redstonecircuits/GT_Circuit_Equals.java | 12 +++---- .../common/redstonecircuits/GT_Circuit_Pulser.java | 16 ++++----- .../redstonecircuits/GT_Circuit_Randomizer.java | 15 ++++---- .../redstonecircuits/GT_Circuit_RedstoneMeter.java | 22 +++++------- .../common/redstonecircuits/GT_Circuit_Timer.java | 21 +++++------ 6 files changed, 63 insertions(+), 65 deletions(-) (limited to 'src/main/java/gregtech/common/redstonecircuits') diff --git a/src/main/java/gregtech/common/redstonecircuits/GT_Circuit_BasicLogic.java b/src/main/java/gregtech/common/redstonecircuits/GT_Circuit_BasicLogic.java index ad9b0798dc..3e179aee11 100644 --- a/src/main/java/gregtech/common/redstonecircuits/GT_Circuit_BasicLogic.java +++ b/src/main/java/gregtech/common/redstonecircuits/GT_Circuit_BasicLogic.java @@ -78,34 +78,48 @@ public class GT_Circuit_BasicLogic extends GT_CircuitryBehavior { public String getDataDescription(int[] aCircuitData, int aCircuitDataIndex) { if (aCircuitDataIndex == 0) { switch (aCircuitData[0]) { - case 0: + case 0 -> { return "OR"; - case 1: + } + case 1 -> { return "NOR"; - case 2: + } + case 2 -> { return "XOR"; - case 3: + } + case 3 -> { return "XNOR"; - case 4: + } + case 4 -> { return "AND"; - case 5: + } + case 5 -> { return "NAND"; - case 6: + } + case 6 -> { return "INVERT"; - case 7: + } + case 7 -> { return "BIT_OR"; - case 8: + } + case 8 -> { return "BIT_NOR"; - case 9: + } + case 9 -> { return "BIT_XOR"; - case 10: + } + case 10 -> { return "BIT_XNOR"; - case 11: + } + case 11 -> { return "BIT_AND"; - case 12: + } + case 12 -> { return "BIT_NAND"; - case 13: + } + case 13 -> { return "BIT_INVERT"; + } } } return ""; diff --git a/src/main/java/gregtech/common/redstonecircuits/GT_Circuit_Equals.java b/src/main/java/gregtech/common/redstonecircuits/GT_Circuit_Equals.java index e162040f00..5e230d3363 100644 --- a/src/main/java/gregtech/common/redstonecircuits/GT_Circuit_Equals.java +++ b/src/main/java/gregtech/common/redstonecircuits/GT_Circuit_Equals.java @@ -52,13 +52,11 @@ public class GT_Circuit_Equals extends GT_CircuitryBehavior { @Override public String getDataDescription(int[] aCircuitData, int aCircuitDataIndex) { - switch (aCircuitDataIndex) { - case 0: - return "Signal"; - case 1: - return aCircuitData[1] == 0 ? "Equal" : "Unequal"; - } - return ""; + return switch (aCircuitDataIndex) { + case 0 -> "Signal"; + case 1 -> aCircuitData[1] == 0 ? "Equal" : "Unequal"; + default -> ""; + }; } @Override diff --git a/src/main/java/gregtech/common/redstonecircuits/GT_Circuit_Pulser.java b/src/main/java/gregtech/common/redstonecircuits/GT_Circuit_Pulser.java index 7f6858b09f..672fddf7fb 100644 --- a/src/main/java/gregtech/common/redstonecircuits/GT_Circuit_Pulser.java +++ b/src/main/java/gregtech/common/redstonecircuits/GT_Circuit_Pulser.java @@ -49,8 +49,8 @@ public class GT_Circuit_Pulser extends GT_CircuitryBehavior { } } aRedstoneCircuitBlock.setRedstone( - (byte) ((aCircuitData[4] > 0) && (aCircuitData[4] <= aCircuitData[0]) ? (byte) aCircuitData[1] - : (aCircuitData[1] <= 0) || (aCircuitData[1] > 15) ? (byte) aCircuitData[5] : 0), + (aCircuitData[4] > 0) && (aCircuitData[4] <= aCircuitData[0]) ? (byte) aCircuitData[1] + : (aCircuitData[1] <= 0) || (aCircuitData[1] > 15) ? (byte) aCircuitData[5] : 0, aRedstoneCircuitBlock.getOutputFacing()); } @@ -66,13 +66,11 @@ public class GT_Circuit_Pulser extends GT_CircuitryBehavior { @Override public String getDataDescription(int[] aCircuitData, int aCircuitDataIndex) { - switch (aCircuitDataIndex) { - case 0: - return "Length"; - case 1: - return "RS Out"; - } - return ""; + return switch (aCircuitDataIndex) { + case 0 -> "Length"; + case 1 -> "RS Out"; + default -> ""; + }; } @Override diff --git a/src/main/java/gregtech/common/redstonecircuits/GT_Circuit_Randomizer.java b/src/main/java/gregtech/common/redstonecircuits/GT_Circuit_Randomizer.java index cac5263454..6557f0277c 100644 --- a/src/main/java/gregtech/common/redstonecircuits/GT_Circuit_Randomizer.java +++ b/src/main/java/gregtech/common/redstonecircuits/GT_Circuit_Randomizer.java @@ -64,15 +64,12 @@ public class GT_Circuit_Randomizer extends GT_CircuitryBehavior { @Override public String getDataDescription(int[] aCircuitData, int aCircuitDataIndex) { - switch (aCircuitDataIndex) { - case 0: - return "Delay"; - case 3: - return aCircuitData[aCircuitDataIndex] == 1 ? "RS => ON" : "RS => OFF"; - case 4: - return "Status"; - } - return ""; + return switch (aCircuitDataIndex) { + case 0 -> "Delay"; + case 3 -> aCircuitData[aCircuitDataIndex] == 1 ? "RS => ON" : "RS => OFF"; + case 4 -> "Status"; + default -> ""; + }; } @Override diff --git a/src/main/java/gregtech/common/redstonecircuits/GT_Circuit_RedstoneMeter.java b/src/main/java/gregtech/common/redstonecircuits/GT_Circuit_RedstoneMeter.java index 7755630b26..491fe72c87 100644 --- a/src/main/java/gregtech/common/redstonecircuits/GT_Circuit_RedstoneMeter.java +++ b/src/main/java/gregtech/common/redstonecircuits/GT_Circuit_RedstoneMeter.java @@ -52,8 +52,8 @@ public class GT_Circuit_RedstoneMeter extends GT_CircuitryBehavior { public void onTick(int[] aCircuitData, IRedstoneCircuitBlock aRedstoneCircuitBlock) { byte tRedstone = getStrongestRedstone(aRedstoneCircuitBlock); aRedstoneCircuitBlock.setRedstone( - (byte) (((tRedstone >= aCircuitData[0]) && (tRedstone <= aCircuitData[1]) ? 1 : 0) - != (aCircuitData[2] != 0 ? 1 : 0) ? (byte) aCircuitData[3] : 0), + ((tRedstone >= aCircuitData[0]) && (tRedstone <= aCircuitData[1]) ? 1 : 0) + != (aCircuitData[2] != 0 ? 1 : 0) ? (byte) aCircuitData[3] : 0, aRedstoneCircuitBlock.getOutputFacing()); } @@ -69,17 +69,13 @@ public class GT_Circuit_RedstoneMeter extends GT_CircuitryBehavior { @Override public String getDataDescription(int[] aCircuitData, int aCircuitDataIndex) { - switch (aCircuitDataIndex) { - case 0: - return "Lower"; - case 1: - return "Upper"; - case 2: - return "Invert:"; - case 3: - return "RS Out:"; - } - return ""; + return switch (aCircuitDataIndex) { + case 0 -> "Lower"; + case 1 -> "Upper"; + case 2 -> "Invert:"; + case 3 -> "RS Out:"; + default -> ""; + }; } @Override diff --git a/src/main/java/gregtech/common/redstonecircuits/GT_Circuit_Timer.java b/src/main/java/gregtech/common/redstonecircuits/GT_Circuit_Timer.java index c592d10e99..b7ff2096c6 100644 --- a/src/main/java/gregtech/common/redstonecircuits/GT_Circuit_Timer.java +++ b/src/main/java/gregtech/common/redstonecircuits/GT_Circuit_Timer.java @@ -83,19 +83,14 @@ public class GT_Circuit_Timer extends GT_CircuitryBehavior { @Override public String getDataDescription(int[] aCircuitData, int aCircuitDataIndex) { - switch (aCircuitDataIndex) { - case 0: - return "Delay"; - case 1: - return "Pulses"; - case 2: - return "Length"; - case 3: - return aCircuitData[aCircuitDataIndex] == 1 ? "RS => ON" : "RS => OFF"; - case 4: - return "Time"; - } - return ""; + return switch (aCircuitDataIndex) { + case 0 -> "Delay"; + case 1 -> "Pulses"; + case 2 -> "Length"; + case 3 -> aCircuitData[aCircuitDataIndex] == 1 ? "RS => ON" : "RS => OFF"; + case 4 -> "Time"; + default -> ""; + }; } @Override -- cgit