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 --- .../api/objects/AE2DigitalChestHandler.java | 2 +- .../java/gregtech/api/objects/GT_ArrayList.java | 1 + src/main/java/gregtech/api/objects/GT_HashSet.java | 2 +- src/main/java/gregtech/api/objects/ItemData.java | 22 ++++++++-------------- 4 files changed, 11 insertions(+), 16 deletions(-) (limited to 'src/main/java/gregtech/api/objects') diff --git a/src/main/java/gregtech/api/objects/AE2DigitalChestHandler.java b/src/main/java/gregtech/api/objects/AE2DigitalChestHandler.java index 06ab3788b3..6bbab251ba 100644 --- a/src/main/java/gregtech/api/objects/AE2DigitalChestHandler.java +++ b/src/main/java/gregtech/api/objects/AE2DigitalChestHandler.java @@ -16,7 +16,7 @@ public class AE2DigitalChestHandler implements appeng.api.storage.IExternalStora } @Override - public appeng.api.storage.IMEInventory getInventory(final TileEntity te, final ForgeDirection d, + public appeng.api.storage.IMEInventory getInventory(final TileEntity te, final ForgeDirection d, final appeng.api.storage.StorageChannel chan, final appeng.api.networking.security.BaseActionSource src) { if (chan == appeng.api.storage.StorageChannel.ITEMS) { return ((GT_MetaTileEntity_DigitalChestBase) (((BaseMetaTileEntity) te).getMetaTileEntity())); diff --git a/src/main/java/gregtech/api/objects/GT_ArrayList.java b/src/main/java/gregtech/api/objects/GT_ArrayList.java index 50eb3ebcc1..9124ef8616 100644 --- a/src/main/java/gregtech/api/objects/GT_ArrayList.java +++ b/src/main/java/gregtech/api/objects/GT_ArrayList.java @@ -19,6 +19,7 @@ public class GT_ArrayList extends ArrayList { mAllowNulls = aAllowNulls; } + @SafeVarargs public GT_ArrayList(boolean aAllowNulls, E... aArray) { super(Arrays.asList(aArray)); mAllowNulls = aAllowNulls; diff --git a/src/main/java/gregtech/api/objects/GT_HashSet.java b/src/main/java/gregtech/api/objects/GT_HashSet.java index 1f12b669b3..64ff0f10b0 100644 --- a/src/main/java/gregtech/api/objects/GT_HashSet.java +++ b/src/main/java/gregtech/api/objects/GT_HashSet.java @@ -38,7 +38,7 @@ public class GT_HashSet extends AbstractSet { GregTech_API.sItemStackMappings.add(map); } - public HashMap getMap() { + public Map getMap() { return map; } diff --git a/src/main/java/gregtech/api/objects/ItemData.java b/src/main/java/gregtech/api/objects/ItemData.java index 72d5cc5900..4fe0320ca7 100644 --- a/src/main/java/gregtech/api/objects/ItemData.java +++ b/src/main/java/gregtech/api/objects/ItemData.java @@ -11,7 +11,7 @@ public class ItemData { private static final MaterialStack[] EMPTY_MATERIALSTACK_ARRAY = new MaterialStack[0]; - public final List mExtraData = new GT_ArrayList(false, 1); + public final List mExtraData = new GT_ArrayList<>(false, 1); public final OrePrefixes mPrefix; public final MaterialStack mMaterial; public final MaterialStack[] mByProducts; @@ -41,10 +41,10 @@ public class ItemData { MaterialStack[] tByProducts = aByProducts.length < 1 ? EMPTY_MATERIALSTACK_ARRAY : new MaterialStack[aByProducts.length]; int j = 0; - for (int i = 0; i < aByProducts.length; i++) if (aByProducts[i] != null && aByProducts[i].mMaterial != null) - tByProducts[j++] = aByProducts[i].clone(); + for (MaterialStack aByProduct : aByProducts) + if (aByProduct != null && aByProduct.mMaterial != null) tByProducts[j++] = aByProduct.clone(); mByProducts = j > 0 ? new MaterialStack[j] : EMPTY_MATERIALSTACK_ARRAY; - for (int i = 0; i < mByProducts.length; i++) mByProducts[i] = tByProducts[i]; + System.arraycopy(tByProducts, 0, mByProducts, 0, mByProducts.length); } } @@ -60,7 +60,7 @@ public class ItemData { mPrefix = null; mBlackListed = true; - ArrayList aList = new ArrayList(), rList = new ArrayList(); + ArrayList aList = new ArrayList<>(), rList = new ArrayList<>(); for (ItemData tData : aData) if (tData != null) { if (tData.hasValidMaterialData() && tData.mMaterial.mAmount > 0) aList.add(tData.mMaterial.clone()); @@ -77,13 +77,7 @@ public class ItemData { if (temp) rList.add(aMaterial.clone()); } - Collections.sort(rList, new Comparator() { - - @Override - public int compare(MaterialStack a, MaterialStack b) { - return a.mAmount == b.mAmount ? 0 : a.mAmount > b.mAmount ? -1 : +1; - } - }); + rList.sort((a, b) -> Long.compare(b.mAmount, a.mAmount)); if (rList.isEmpty()) { mMaterial = null; @@ -92,7 +86,7 @@ public class ItemData { rList.remove(0); } - mByProducts = rList.toArray(new MaterialStack[rList.size()]); + mByProducts = rList.toArray(new MaterialStack[0]); } public final boolean hasValidPrefixMaterialData() { @@ -108,7 +102,7 @@ public class ItemData { } public final ArrayList getAllMaterialStacks() { - ArrayList rList = new ArrayList(); + ArrayList rList = new ArrayList<>(); if (hasValidMaterialData()) rList.add(mMaterial); rList.addAll(Arrays.asList(mByProducts)); return rList; -- cgit