From b5fad1e215321505240b567f9cdf69e56eacadf4 Mon Sep 17 00:00:00 2001 From: YanisBft Date: Sun, 23 May 2021 23:51:38 +0200 Subject: Cleanup with Java 16 (#394) * Cleanup using Java 16 * use Stream.toList()--- .../src/main/java/cuchaz/enigma/EnigmaProject.java | 8 +++---- .../enigma/analysis/ClassReferenceTreeNode.java | 3 +-- .../cuchaz/enigma/analysis/EntryReference.java | 4 ++-- .../enigma/analysis/FieldReferenceTreeNode.java | 8 +++---- .../cuchaz/enigma/analysis/InterpreterPair.java | 7 +++--- .../enigma/analysis/MethodReferenceTreeNode.java | 3 +-- .../cuchaz/enigma/analysis/StructureTreeNode.java | 10 ++++---- .../cuchaz/enigma/analysis/index/EntryIndex.java | 28 +++++++++++----------- .../analysis/index/IndexReferenceVisitor.java | 3 +-- .../cuchaz/enigma/analysis/index/JarIndex.java | 2 +- .../classprovider/ObfuscationFixClassProvider.java | 3 +-- .../java/cuchaz/enigma/source/SourceIndex.java | 3 +-- .../java/cuchaz/enigma/translation/Translator.java | 2 +- .../enigma/translation/mapping/AccessModifier.java | 17 +++++-------- .../enigma/translation/mapping/EntryRemapper.java | 3 +-- .../enigma/translation/mapping/EntryResolver.java | 5 ++-- .../translation/mapping/IdentifierValidation.java | 14 +++++------ .../translation/mapping/IndexEntryResolver.java | 3 +-- .../translation/mapping/MappingValidator.java | 8 +++---- .../translation/mapping/MappingsChecker.java | 3 +-- .../mapping/serde/enigma/EnigmaMappingsReader.java | 3 +-- .../mapping/serde/enigma/EnigmaMappingsWriter.java | 11 ++++----- .../mapping/serde/srg/SrgMappingsWriter.java | 7 +++--- .../mapping/serde/tinyv2/TinyV2Writer.java | 3 +-- .../translation/mapping/tree/EntryTreeNode.java | 6 ++--- enigma/src/main/java/cuchaz/enigma/utils/I18n.java | 9 ++----- .../src/main/java/cuchaz/enigma/utils/Utils.java | 16 +------------ .../utils/validation/ParameterizedMessage.java | 3 +-- .../enigma/utils/validation/PrintValidatable.java | 19 ++++----------- 29 files changed, 82 insertions(+), 132 deletions(-) (limited to 'enigma/src/main/java') diff --git a/enigma/src/main/java/cuchaz/enigma/EnigmaProject.java b/enigma/src/main/java/cuchaz/enigma/EnigmaProject.java index a9e022f..4f50f2f 100644 --- a/enigma/src/main/java/cuchaz/enigma/EnigmaProject.java +++ b/enigma/src/main/java/cuchaz/enigma/EnigmaProject.java @@ -120,11 +120,11 @@ public class EnigmaProject { } public boolean isRenamable(Entry obfEntry) { - if (obfEntry instanceof MethodEntry) { + if (obfEntry instanceof MethodEntry obfMethodEntry) { // HACKHACK: Object methods are not obfuscated identifiers - MethodEntry obfMethodEntry = (MethodEntry) obfEntry; String name = obfMethodEntry.getName(); String sig = obfMethodEntry.getDesc().toString(); + //TODO replace with a map or check if declaring class is java.lang.Object if (name.equals("clone") && sig.equals("()Ljava/lang/Object;")) { return false; } else if (name.equals("equals") && sig.equals("(Ljava/lang/Object;)Z")) { @@ -249,14 +249,14 @@ public class EnigmaProject { } public SourceExport decompile(ProgressListener progress, DecompilerService decompilerService, DecompileErrorStrategy errorStrategy) { - List decompiled = this.decompileStream(progress, decompilerService, errorStrategy).collect(Collectors.toList()); + List decompiled = this.decompileStream(progress, decompilerService, errorStrategy).toList(); return new SourceExport(decompiled); } public Stream decompileStream(ProgressListener progress, DecompilerService decompilerService, DecompileErrorStrategy errorStrategy) { Collection classes = this.compiled.values().stream() .filter(classNode -> classNode.name.indexOf('$') == -1) - .collect(Collectors.toList()); + .toList(); progress.init(classes.size(), I18n.translate("progress.classes.decompiling")); diff --git a/enigma/src/main/java/cuchaz/enigma/analysis/ClassReferenceTreeNode.java b/enigma/src/main/java/cuchaz/enigma/analysis/ClassReferenceTreeNode.java index 90d8a6c..0142412 100644 --- a/enigma/src/main/java/cuchaz/enigma/analysis/ClassReferenceTreeNode.java +++ b/enigma/src/main/java/cuchaz/enigma/analysis/ClassReferenceTreeNode.java @@ -70,8 +70,7 @@ public class ClassReferenceTreeNode extends DefaultMutableTreeNode if (recurse && this.children != null) { for (Object child : this.children) { - if (child instanceof ClassReferenceTreeNode) { - ClassReferenceTreeNode node = (ClassReferenceTreeNode) child; + if (child instanceof ClassReferenceTreeNode node) { // don't recurse into ancestor Set> ancestors = Sets.newHashSet(); diff --git a/enigma/src/main/java/cuchaz/enigma/analysis/EntryReference.java b/enigma/src/main/java/cuchaz/enigma/analysis/EntryReference.java index 6dd6526..281b05f 100644 --- a/enigma/src/main/java/cuchaz/enigma/analysis/EntryReference.java +++ b/enigma/src/main/java/cuchaz/enigma/analysis/EntryReference.java @@ -91,7 +91,7 @@ public class EntryReference, C extends Entry> implements T } public Entry getNameableEntry() { - if (entry instanceof MethodEntry && ((MethodEntry) entry).isConstructor()) { + if (entry instanceof MethodEntry method && method.isConstructor()) { // renaming a constructor really means renaming the class return entry.getContainingClass(); } @@ -112,7 +112,7 @@ public class EntryReference, C extends Entry> implements T @Override public boolean equals(Object other) { - return other instanceof EntryReference && equals((EntryReference) other); + return other instanceof EntryReference reference && equals(reference); } public boolean equals(EntryReference other) { diff --git a/enigma/src/main/java/cuchaz/enigma/analysis/FieldReferenceTreeNode.java b/enigma/src/main/java/cuchaz/enigma/analysis/FieldReferenceTreeNode.java index 4beab7f..c93ac53 100644 --- a/enigma/src/main/java/cuchaz/enigma/analysis/FieldReferenceTreeNode.java +++ b/enigma/src/main/java/cuchaz/enigma/analysis/FieldReferenceTreeNode.java @@ -72,10 +72,10 @@ public class FieldReferenceTreeNode extends DefaultMutableTreeNode implements Re if (recurse && children != null) { for (Object node : children) { - if (node instanceof MethodReferenceTreeNode) { - ((MethodReferenceTreeNode) node).load(index, true, false); - } else if (node instanceof FieldReferenceTreeNode) { - ((FieldReferenceTreeNode) node).load(index, true); + if (node instanceof MethodReferenceTreeNode methodNode) { + methodNode.load(index, true, false); + } else if (node instanceof FieldReferenceTreeNode fieldNode) { + fieldNode.load(index, true); } } } diff --git a/enigma/src/main/java/cuchaz/enigma/analysis/InterpreterPair.java b/enigma/src/main/java/cuchaz/enigma/analysis/InterpreterPair.java index fad10bf..a624b7c 100644 --- a/enigma/src/main/java/cuchaz/enigma/analysis/InterpreterPair.java +++ b/enigma/src/main/java/cuchaz/enigma/analysis/InterpreterPair.java @@ -9,7 +9,6 @@ import org.objectweb.asm.tree.analysis.Value; import java.util.List; import java.util.Objects; -import java.util.stream.Collectors; public class InterpreterPair extends Interpreter> { private final Interpreter left; @@ -72,8 +71,8 @@ public class InterpreterPair extends Interpret @Override public PairValue naryOperation(AbstractInsnNode insn, List> values) throws AnalyzerException { return pair( - left.naryOperation(insn, values.stream().map(v -> v.left).collect(Collectors.toList())), - right.naryOperation(insn, values.stream().map(v -> v.right).collect(Collectors.toList())) + left.naryOperation(insn, values.stream().map(v -> v.left).toList()), + right.naryOperation(insn, values.stream().map(v -> v.right).toList()) ); } @@ -114,7 +113,7 @@ public class InterpreterPair extends Interpret @Override public boolean equals(Object o) { - return o instanceof InterpreterPair.PairValue && Objects.equals(left, ((PairValue) o).left) && Objects.equals(right, ((PairValue) o).right); + return o instanceof InterpreterPair.PairValue pairValue && Objects.equals(left, pairValue.left) && Objects.equals(right, pairValue.right); } @Override diff --git a/enigma/src/main/java/cuchaz/enigma/analysis/MethodReferenceTreeNode.java b/enigma/src/main/java/cuchaz/enigma/analysis/MethodReferenceTreeNode.java index 8995eb5..6803861 100644 --- a/enigma/src/main/java/cuchaz/enigma/analysis/MethodReferenceTreeNode.java +++ b/enigma/src/main/java/cuchaz/enigma/analysis/MethodReferenceTreeNode.java @@ -72,8 +72,7 @@ public class MethodReferenceTreeNode extends DefaultMutableTreeNode implements R if (recurse && this.children != null) { for (Object child : this.children) { - if (child instanceof MethodReferenceTreeNode) { - MethodReferenceTreeNode node = (MethodReferenceTreeNode) child; + if (child instanceof MethodReferenceTreeNode node) { // don't recurse into ancestor Set> ancestors = Sets.newHashSet(); diff --git a/enigma/src/main/java/cuchaz/enigma/analysis/StructureTreeNode.java b/enigma/src/main/java/cuchaz/enigma/analysis/StructureTreeNode.java index 55d75cf..b4343c1 100644 --- a/enigma/src/main/java/cuchaz/enigma/analysis/StructureTreeNode.java +++ b/enigma/src/main/java/cuchaz/enigma/analysis/StructureTreeNode.java @@ -49,7 +49,7 @@ public class StructureTreeNode extends DefaultMutableTreeNode { } // don't add constructor methods if hideDeobfuscated is true - if (hideDeobfuscated && (child instanceof MethodEntry) && ((MethodEntry) child).isConstructor()) { + if (hideDeobfuscated && (child instanceof MethodEntry method) && method.isConstructor()) { continue; } @@ -95,12 +95,12 @@ public class StructureTreeNode extends DefaultMutableTreeNode { public String toHtml() { List modifiers = new ArrayList<>(); - if (this.entry instanceof DefEntry) { - AccessFlags access = ((DefEntry) this.entry).getAccess(); + if (this.entry instanceof DefEntry defEntry) { + AccessFlags access = defEntry.getAccess(); boolean isInterfaceMethod = false; - if (this.entry instanceof MethodEntry && this.entry.getParent() instanceof ClassDefEntry) { - isInterfaceMethod = ((ClassDefEntry) this.entry.getParent()).getAccess().isInterface(); + if (this.entry instanceof MethodEntry && this.entry.getParent() instanceof ClassDefEntry parent) { + isInterfaceMethod = parent.getAccess().isInterface(); } if (access.isStatic() && !access.isEnum()) { diff --git a/enigma/src/main/java/cuchaz/enigma/analysis/index/EntryIndex.java b/enigma/src/main/java/cuchaz/enigma/analysis/index/EntryIndex.java index 9a2726e..bb992b7 100644 --- a/enigma/src/main/java/cuchaz/enigma/analysis/index/EntryIndex.java +++ b/enigma/src/main/java/cuchaz/enigma/analysis/index/EntryIndex.java @@ -43,14 +43,14 @@ public class EntryIndex implements JarIndexer { } public boolean hasEntry(Entry entry) { - if (entry instanceof ClassEntry) { - return hasClass((ClassEntry) entry); - } else if (entry instanceof MethodEntry) { - return hasMethod((MethodEntry) entry); - } else if (entry instanceof FieldEntry) { - return hasField((FieldEntry) entry); - } else if (entry instanceof LocalVariableEntry) { - return hasMethod(((LocalVariableEntry) entry).getParent()); + if (entry instanceof ClassEntry classEntry) { + return hasClass(classEntry); + } else if (entry instanceof MethodEntry methodEntry) { + return hasMethod(methodEntry); + } else if (entry instanceof FieldEntry fieldEntry) { + return hasField(fieldEntry); + } else if (entry instanceof LocalVariableEntry localVariableEntry) { + return hasMethod(localVariableEntry.getParent()); } return false; @@ -73,12 +73,12 @@ public class EntryIndex implements JarIndexer { @Nullable public AccessFlags getEntryAccess(Entry entry) { - if (entry instanceof MethodEntry) { - return getMethodAccess((MethodEntry) entry); - } else if (entry instanceof FieldEntry) { - return getFieldAccess((FieldEntry) entry); - } else if (entry instanceof LocalVariableEntry) { - return getMethodAccess(((LocalVariableEntry) entry).getParent()); + if (entry instanceof MethodEntry methodEntry) { + return getMethodAccess(methodEntry); + } else if (entry instanceof FieldEntry fieldEntry) { + return getFieldAccess(fieldEntry); + } else if (entry instanceof LocalVariableEntry localVariableEntry) { + return getMethodAccess(localVariableEntry.getParent()); } return null; diff --git a/enigma/src/main/java/cuchaz/enigma/analysis/index/IndexReferenceVisitor.java b/enigma/src/main/java/cuchaz/enigma/analysis/index/IndexReferenceVisitor.java index f3d419e..efea83d 100644 --- a/enigma/src/main/java/cuchaz/enigma/analysis/index/IndexReferenceVisitor.java +++ b/enigma/src/main/java/cuchaz/enigma/analysis/index/IndexReferenceVisitor.java @@ -17,7 +17,6 @@ import org.objectweb.asm.tree.MethodInsnNode; import org.objectweb.asm.tree.analysis.*; import java.util.List; -import java.util.stream.Collectors; public class IndexReferenceVisitor extends ClassVisitor { private final JarIndexer indexer; @@ -112,7 +111,7 @@ public class IndexReferenceVisitor extends ClassVisitor { if (insn.getOpcode() == Opcodes.INVOKEDYNAMIC) { InvokeDynamicInsnNode invokeDynamicInsn = (InvokeDynamicInsnNode) insn; - List args = values.stream().map(v -> v.right.insns.stream().findFirst().orElseThrow(AssertionError::new)).collect(Collectors.toList()); + List args = values.stream().map(v -> v.right.insns.stream().findFirst().orElseThrow(AssertionError::new)).toList(); if ("java/lang/invoke/LambdaMetafactory".equals(invokeDynamicInsn.bsm.getOwner()) && "metafactory".equals(invokeDynamicInsn.bsm.getName())) { Type samMethodType = (Type) invokeDynamicInsn.bsmArgs[0]; diff --git a/enigma/src/main/java/cuchaz/enigma/analysis/index/JarIndex.java b/enigma/src/main/java/cuchaz/enigma/analysis/index/JarIndex.java index aa360cf..6c26282 100644 --- a/enigma/src/main/java/cuchaz/enigma/analysis/index/JarIndex.java +++ b/enigma/src/main/java/cuchaz/enigma/analysis/index/JarIndex.java @@ -44,7 +44,7 @@ public class JarIndex implements JarIndexer { this.referenceIndex = referenceIndex; this.bridgeMethodIndex = bridgeMethodIndex; this.packageVisibilityIndex = packageVisibilityIndex; - this.indexers = Arrays.asList(entryIndex, inheritanceIndex, referenceIndex, bridgeMethodIndex, packageVisibilityIndex); + this.indexers = List.of(entryIndex, inheritanceIndex, referenceIndex, bridgeMethodIndex, packageVisibilityIndex); this.entryResolver = new IndexEntryResolver(this); this.childrenByClass = ArrayListMultimap.create(); } diff --git a/enigma/src/main/java/cuchaz/enigma/classprovider/ObfuscationFixClassProvider.java b/enigma/src/main/java/cuchaz/enigma/classprovider/ObfuscationFixClassProvider.java index db9e2d0..36236a8 100644 --- a/enigma/src/main/java/cuchaz/enigma/classprovider/ObfuscationFixClassProvider.java +++ b/enigma/src/main/java/cuchaz/enigma/classprovider/ObfuscationFixClassProvider.java @@ -65,8 +65,7 @@ public class ObfuscationFixClassProvider implements ClassProvider { for (MethodNode methodNode : node.methods) { AbstractInsnNode insnNode = methodNode.instructions.getFirst(); while (insnNode != null) { - if (insnNode instanceof MethodInsnNode && insnNode.getOpcode() == Opcodes.INVOKEVIRTUAL) { - MethodInsnNode methodInsnNode = (MethodInsnNode) insnNode; + if (insnNode instanceof MethodInsnNode methodInsnNode && insnNode.getOpcode() == Opcodes.INVOKEVIRTUAL) { if (methodInsnNode.name.equals("getClass") && methodInsnNode.owner.equals("java/lang/Object") && methodInsnNode.desc.equals("()Ljava/lang/Class;")) { AbstractInsnNode previous = methodInsnNode.getPrevious(); AbstractInsnNode next = methodInsnNode.getNext(); diff --git a/enigma/src/main/java/cuchaz/enigma/source/SourceIndex.java b/enigma/src/main/java/cuchaz/enigma/source/SourceIndex.java index ed6cfb9..971252e 100644 --- a/enigma/src/main/java/cuchaz/enigma/source/SourceIndex.java +++ b/enigma/src/main/java/cuchaz/enigma/source/SourceIndex.java @@ -13,7 +13,6 @@ import java.util.Collection; import java.util.List; import java.util.Map; import java.util.TreeMap; -import java.util.stream.Collectors; public class SourceIndex { private String source; @@ -159,7 +158,7 @@ public class SourceIndex { Collection newTokens = oldTokens .stream() .map(result::getRemappedToken) - .collect(Collectors.toList()); + .toList(); remapped.referenceToTokens.putAll(reference, newTokens); } diff --git a/enigma/src/main/java/cuchaz/enigma/translation/Translator.java b/enigma/src/main/java/cuchaz/enigma/translation/Translator.java index d3bc188..66c2f9e 100644 --- a/enigma/src/main/java/cuchaz/enigma/translation/Translator.java +++ b/enigma/src/main/java/cuchaz/enigma/translation/Translator.java @@ -36,7 +36,7 @@ public interface Translator { default Collection translate(Collection translatable) { return translatable.stream() .map(this::translate) - .collect(Collectors.toList()); + .toList(); } default Set translate(Set translatable) { diff --git a/enigma/src/main/java/cuchaz/enigma/translation/mapping/AccessModifier.java b/enigma/src/main/java/cuchaz/enigma/translation/mapping/AccessModifier.java index 5b79b79..f57dd90 100644 --- a/enigma/src/main/java/cuchaz/enigma/translation/mapping/AccessModifier.java +++ b/enigma/src/main/java/cuchaz/enigma/translation/mapping/AccessModifier.java @@ -10,16 +10,11 @@ public enum AccessModifier { } public AccessFlags transform(AccessFlags access) { - switch (this) { - case PUBLIC: - return access.setPublic(); - case PROTECTED: - return access.setProtected(); - case PRIVATE: - return access.setPrivate(); - case UNCHANGED: - default: - return access; - } + return switch (this) { + case PUBLIC -> access.setPublic(); + case PROTECTED -> access.setProtected(); + case PRIVATE -> access.setPrivate(); + default -> access; + }; } } diff --git a/enigma/src/main/java/cuchaz/enigma/translation/mapping/EntryRemapper.java b/enigma/src/main/java/cuchaz/enigma/translation/mapping/EntryRemapper.java index ef904d7..8b5490e 100644 --- a/enigma/src/main/java/cuchaz/enigma/translation/mapping/EntryRemapper.java +++ b/enigma/src/main/java/cuchaz/enigma/translation/mapping/EntryRemapper.java @@ -2,7 +2,6 @@ package cuchaz.enigma.translation.mapping; import java.util.Collection; import java.util.List; -import java.util.stream.Collectors; import java.util.stream.Stream; import javax.annotation.Nullable; @@ -95,7 +94,7 @@ public class EntryRemapper { // Find all the methods in this record class List classMethods = jarIndex.getEntryIndex().getMethods().stream() .filter(entry -> classEntry.equals(entry.getParent())) - .collect(Collectors.toList()); + .toList(); MethodEntry methodEntry = null; diff --git a/enigma/src/main/java/cuchaz/enigma/translation/mapping/EntryResolver.java b/enigma/src/main/java/cuchaz/enigma/translation/mapping/EntryResolver.java index 521f72d..9dd0c3a 100644 --- a/enigma/src/main/java/cuchaz/enigma/translation/mapping/EntryResolver.java +++ b/enigma/src/main/java/cuchaz/enigma/translation/mapping/EntryResolver.java @@ -7,7 +7,6 @@ import cuchaz.enigma.translation.representation.entry.MethodEntry; import java.util.Collection; import java.util.Set; -import java.util.stream.Collectors; public interface EntryResolver { > Collection resolveEntry(E entry, ResolutionStrategy strategy); @@ -21,11 +20,11 @@ public interface EntryResolver { if (reference.context != null) { Collection context = resolveEntry(reference.context, strategy); return Streams.zip(entry.stream(), context.stream(), (e, c) -> new EntryReference<>(e, c, reference)) - .collect(Collectors.toList()); + .toList(); } else { return entry.stream() .map(e -> new EntryReference<>(e, null, reference)) - .collect(Collectors.toList()); + .toList(); } } diff --git a/enigma/src/main/java/cuchaz/enigma/translation/mapping/IdentifierValidation.java b/enigma/src/main/java/cuchaz/enigma/translation/mapping/IdentifierValidation.java index 9595c4e..e3aeb20 100644 --- a/enigma/src/main/java/cuchaz/enigma/translation/mapping/IdentifierValidation.java +++ b/enigma/src/main/java/cuchaz/enigma/translation/mapping/IdentifierValidation.java @@ -11,7 +11,6 @@ package cuchaz.enigma.translation.mapping; -import java.util.Arrays; import java.util.List; import cuchaz.enigma.utils.validation.Message; @@ -23,12 +22,13 @@ public final class IdentifierValidation { private IdentifierValidation() { } - private static final List ILLEGAL_IDENTIFIERS = Arrays.asList( - "abstract", "continue", "for", "new", "switch", "assert", "default", "goto", "package", "synchronized", - "boolean", "do", "if", "private", "this", "break", "double", "implements", "protected", "throw", "byte", - "else", "import", "public", "throws", "case", "enum", "instanceof", "return", "transient", "catch", - "extends", "int", "short", "try", "char", "final", "interface", "static", "void", "class", "finally", - "long", "strictfp", "volatile", "const", "float", "native", "super", "while", "true", "false", "null", "_" + private static final List ILLEGAL_IDENTIFIERS = List.of( + "abstract", "assert", "boolean", "break", "byte", "case", "catch", "char", "class", "const", + "continue", "default", "do", "double", "else", "enum", "extends", "false", "final", "finally", + "float", "for", "goto", "if", "implements", "import", "instanceof", "int", "interface", "long", + "native", "new", "null", "package", "private", "protected", "public", "return", "short", "static", + "strictfp", "super", "switch", "synchronized", "this", "throw", "throws", "transient", "true", "try", + "void", "volatile", "while", "_" ); public static boolean validateClassName(ValidationContext vc, String name, boolean isInner) { diff --git a/enigma/src/main/java/cuchaz/enigma/translation/mapping/IndexEntryResolver.java b/enigma/src/main/java/cuchaz/enigma/translation/mapping/IndexEntryResolver.java index 78231dd..1a89df7 100644 --- a/enigma/src/main/java/cuchaz/enigma/translation/mapping/IndexEntryResolver.java +++ b/enigma/src/main/java/cuchaz/enigma/translation/mapping/IndexEntryResolver.java @@ -16,7 +16,6 @@ import cuchaz.enigma.translation.representation.entry.MethodEntry; import javax.annotation.Nullable; import java.util.*; -import java.util.stream.Collectors; public class IndexEntryResolver implements EntryResolver { private final EntryIndex entryIndex; @@ -54,7 +53,7 @@ public class IndexEntryResolver implements EntryResolver { if (!resolvedChildren.isEmpty()) { return resolvedChildren.stream() .map(resolvedChild -> (E) entry.replaceAncestor(classChild, resolvedChild)) - .collect(Collectors.toList()); + .toList(); } } } diff --git a/enigma/src/main/java/cuchaz/enigma/translation/mapping/MappingValidator.java b/enigma/src/main/java/cuchaz/enigma/translation/mapping/MappingValidator.java index f9f3b88..1615912 100644 --- a/enigma/src/main/java/cuchaz/enigma/translation/mapping/MappingValidator.java +++ b/enigma/src/main/java/cuchaz/enigma/translation/mapping/MappingValidator.java @@ -2,7 +2,7 @@ package cuchaz.enigma.translation.mapping; import java.util.Collection; import java.util.HashSet; -import java.util.stream.Collectors; +import java.util.List; import cuchaz.enigma.analysis.index.InheritanceIndex; import cuchaz.enigma.analysis.index.JarIndex; @@ -41,9 +41,9 @@ public class MappingValidator { Entry relatedEntry = entry.replaceAncestor(containingClass, relatedClass); Entry translatedEntry = deobfuscator.translate(relatedEntry); - Collection> translatedSiblings = obfToDeobf.getSiblings(relatedEntry).stream() + List> translatedSiblings = obfToDeobf.getSiblings(relatedEntry).stream() .map(deobfuscator::translate) - .collect(Collectors.toList()); + .toList(); if (!isUnique(translatedEntry, translatedSiblings, name)) { Entry parent = translatedEntry.getParent(); @@ -67,7 +67,7 @@ public class MappingValidator { return relatedClasses; } - private boolean isUnique(Entry entry, Collection> siblings, String name) { + private boolean isUnique(Entry entry, List> siblings, String name) { for (Entry sibling : siblings) { if (entry.canConflictWith(sibling) && sibling.getName().equals(name)) { return false; diff --git a/enigma/src/main/java/cuchaz/enigma/translation/mapping/MappingsChecker.java b/enigma/src/main/java/cuchaz/enigma/translation/mapping/MappingsChecker.java index 5d9794f..141a07c 100644 --- a/enigma/src/main/java/cuchaz/enigma/translation/mapping/MappingsChecker.java +++ b/enigma/src/main/java/cuchaz/enigma/translation/mapping/MappingsChecker.java @@ -24,7 +24,6 @@ import cuchaz.enigma.translation.representation.entry.MethodEntry; import java.util.Collection; import java.util.HashMap; import java.util.Map; -import java.util.stream.Collectors; public class MappingsChecker { private final JarIndex index; @@ -40,7 +39,7 @@ public class MappingsChecker { Collection> obfEntries = mappings.getAllEntries() .filter(e -> e instanceof ClassEntry || e instanceof MethodEntry || e instanceof FieldEntry || e instanceof LocalVariableEntry) - .collect(Collectors.toList()); + .toList(); progress.init(obfEntries.size(), "Checking for dropped mappings"); diff --git a/enigma/src/main/java/cuchaz/enigma/translation/mapping/serde/enigma/EnigmaMappingsReader.java b/enigma/src/main/java/cuchaz/enigma/translation/mapping/serde/enigma/EnigmaMappingsReader.java index a1e975c..27545c0 100644 --- a/enigma/src/main/java/cuchaz/enigma/translation/mapping/serde/enigma/EnigmaMappingsReader.java +++ b/enigma/src/main/java/cuchaz/enigma/translation/mapping/serde/enigma/EnigmaMappingsReader.java @@ -28,7 +28,6 @@ import java.util.Arrays; import java.util.Deque; import java.util.List; import java.util.Locale; -import java.util.stream.Collectors; public enum EnigmaMappingsReader implements MappingsReader { FILE { @@ -52,7 +51,7 @@ public enum EnigmaMappingsReader implements MappingsReader { List files = Files.walk(root) .filter(f -> !Files.isDirectory(f)) .filter(f -> f.toString().endsWith(".mapping")) - .collect(Collectors.toList()); + .toList(); progress.init(files.size(), I18n.translate("progress.mappings.enigma_directory.loading")); int step = 0; diff --git a/enigma/src/main/java/cuchaz/enigma/translation/mapping/serde/enigma/EnigmaMappingsWriter.java b/enigma/src/main/java/cuchaz/enigma/translation/mapping/serde/enigma/EnigmaMappingsWriter.java index 378ed98..d9f1470 100644 --- a/enigma/src/main/java/cuchaz/enigma/translation/mapping/serde/enigma/EnigmaMappingsWriter.java +++ b/enigma/src/main/java/cuchaz/enigma/translation/mapping/serde/enigma/EnigmaMappingsWriter.java @@ -26,7 +26,6 @@ import java.util.Collection; import java.util.Collections; import java.util.Objects; import java.util.concurrent.atomic.AtomicInteger; -import java.util.stream.Collectors; import java.util.stream.Stream; import cuchaz.enigma.ProgressListener; @@ -57,7 +56,7 @@ public enum EnigmaMappingsWriter implements MappingsWriter { Collection classes = mappings.getRootNodes() .filter(entry -> entry.getEntry() instanceof ClassEntry) .map(entry -> (ClassEntry) entry.getEntry()) - .collect(Collectors.toList()); + .toList(); progress.init(classes.size(), I18n.translate("progress.mappings.enigma_file.writing")); @@ -78,7 +77,7 @@ public enum EnigmaMappingsWriter implements MappingsWriter { Collection changedClasses = delta.getChangedRoots() .filter(entry -> entry instanceof ClassEntry) .map(entry -> (ClassEntry) entry) - .collect(Collectors.toList()); + .toList(); applyDeletions(path, changedClasses, mappings, delta.getBaseMappings(), saveParameters.getFileNameFormat()); @@ -120,7 +119,7 @@ public enum EnigmaMappingsWriter implements MappingsWriter { deletedClassStream = deletedClassStream.map(oldMappingTranslator::translate); } - Collection deletedClasses = deletedClassStream.collect(Collectors.toList()); + Collection deletedClasses = deletedClassStream.toList(); for (ClassEntry classEntry : deletedClasses) { try { @@ -309,9 +308,7 @@ public enum EnigmaMappingsWriter implements MappingsWriter { private String indent(String line, int depth) { StringBuilder builder = new StringBuilder(); - for (int i = 0; i < depth; i++) { - builder.append("\t"); - } + builder.append("\t".repeat(Math.max(0, depth))); builder.append(line.trim()); return builder.toString(); } diff --git a/enigma/src/main/java/cuchaz/enigma/translation/mapping/serde/srg/SrgMappingsWriter.java b/enigma/src/main/java/cuchaz/enigma/translation/mapping/serde/srg/SrgMappingsWriter.java index 9c9f103..9275847 100644 --- a/enigma/src/main/java/cuchaz/enigma/translation/mapping/serde/srg/SrgMappingsWriter.java +++ b/enigma/src/main/java/cuchaz/enigma/translation/mapping/serde/srg/SrgMappingsWriter.java @@ -26,7 +26,6 @@ import java.util.ArrayList; import java.util.Collection; import java.util.Comparator; import java.util.List; -import java.util.stream.Collectors; public enum SrgMappingsWriter implements MappingsWriter { INSTANCE; @@ -44,9 +43,9 @@ public enum SrgMappingsWriter implements MappingsWriter { List fieldLines = new ArrayList<>(); List methodLines = new ArrayList<>(); - Collection> rootEntries = Lists.newArrayList(mappings).stream() + List> rootEntries = Lists.newArrayList(mappings).stream() .map(EntryTreeNode::getEntry) - .collect(Collectors.toList()); + .toList(); progress.init(rootEntries.size(), I18n.translate("progress.mappings.srg_file.generating")); int steps = 0; @@ -111,7 +110,7 @@ public enum SrgMappingsWriter implements MappingsWriter { return entry.getParent().getFullName() + "/" + entry.getName(); } - private Collection> sorted(Iterable> iterable) { + private Collection> sorted(Iterable> iterable) { ArrayList> sorted = Lists.newArrayList(iterable); sorted.sort(Comparator.comparing(Entry::getName)); return sorted; diff --git a/enigma/src/main/java/cuchaz/enigma/translation/mapping/serde/tinyv2/TinyV2Writer.java b/enigma/src/main/java/cuchaz/enigma/translation/mapping/serde/tinyv2/TinyV2Writer.java index 5546b2f..5160eda 100644 --- a/enigma/src/main/java/cuchaz/enigma/translation/mapping/serde/tinyv2/TinyV2Writer.java +++ b/enigma/src/main/java/cuchaz/enigma/translation/mapping/serde/tinyv2/TinyV2Writer.java @@ -24,7 +24,6 @@ import java.nio.file.Path; import java.util.Deque; import java.util.LinkedList; import java.util.List; -import java.util.stream.Collectors; import java.util.stream.StreamSupport; public final class TinyV2Writer implements MappingsWriter { @@ -40,7 +39,7 @@ public final class TinyV2Writer implements MappingsWriter { @Override public void write(EntryTree mappings, MappingDelta delta, Path path, ProgressListener progress, MappingSaveParameters parameters) { - List> classes = StreamSupport.stream(mappings.spliterator(), false).filter(node -> node.getEntry() instanceof ClassEntry).collect(Collectors.toList()); + List> classes = StreamSupport.stream(mappings.spliterator(), false).filter(node -> node.getEntry() instanceof ClassEntry).toList(); try (PrintWriter writer = new LfPrintWriter(Files.newBufferedWriter(path))) { writer.println("tiny\t2\t" + MINOR_VERSION + "\t" + obfHeader + "\t" + deobfHeader); diff --git a/enigma/src/main/java/cuchaz/enigma/translation/mapping/tree/EntryTreeNode.java b/enigma/src/main/java/cuchaz/enigma/translation/mapping/tree/EntryTreeNode.java index affcd50..eb26ea9 100644 --- a/enigma/src/main/java/cuchaz/enigma/translation/mapping/tree/EntryTreeNode.java +++ b/enigma/src/main/java/cuchaz/enigma/translation/mapping/tree/EntryTreeNode.java @@ -5,7 +5,7 @@ import cuchaz.enigma.translation.representation.entry.Entry; import javax.annotation.Nullable; import java.util.ArrayList; import java.util.Collection; -import java.util.stream.Collectors; +import java.util.List; public interface EntryTreeNode { @Nullable @@ -28,10 +28,10 @@ public interface EntryTreeNode { return nodes; } - default Collection> getChildrenRecursively() { + default List> getChildrenRecursively() { return getNodesRecursively().stream() .map(EntryTreeNode::getEntry) - .collect(Collectors.toList()); + .toList(); } default boolean hasValue() { diff --git a/enigma/src/main/java/cuchaz/enigma/utils/I18n.java b/enigma/src/main/java/cuchaz/enigma/utils/I18n.java index cb498e0..26e5b27 100644 --- a/enigma/src/main/java/cuchaz/enigma/utils/I18n.java +++ b/enigma/src/main/java/cuchaz/enigma/utils/I18n.java @@ -18,15 +18,10 @@ import com.google.gson.Gson; public class I18n { public static final String DEFAULT_LANGUAGE = "en_us"; private static final Gson GSON = new Gson(); - private static Map translations = Maps.newHashMap(); - private static Map defaultTranslations = Maps.newHashMap(); + private static Map defaultTranslations = load(DEFAULT_LANGUAGE); + private static Map translations = defaultTranslations; private static Map languageNames = Maps.newHashMap(); - static { - defaultTranslations = load(DEFAULT_LANGUAGE); - translations = defaultTranslations; - } - @SuppressWarnings("unchecked") public static Map load(String language) { try (InputStream inputStream = I18n.class.getResourceAsStream("/lang/" + language + ".json")) { diff --git a/enigma/src/main/java/cuchaz/enigma/utils/Utils.java b/enigma/src/main/java/cuchaz/enigma/utils/Utils.java index 8beaaae..ad4e936 100644 --- a/enigma/src/main/java/cuchaz/enigma/utils/Utils.java +++ b/enigma/src/main/java/cuchaz/enigma/utils/Utils.java @@ -27,7 +27,6 @@ import java.util.List; import java.util.Locale; import java.util.concurrent.locks.Lock; import java.util.function.Supplier; -import java.util.stream.Collectors; import java.util.zip.ZipEntry; import java.util.zip.ZipFile; @@ -46,7 +45,7 @@ public class Utils { public static void delete(Path path) throws IOException { if (Files.exists(path)) { - for (Path p : Files.walk(path).sorted(Comparator.reverseOrder()).collect(Collectors.toList())) { + for (Path p : Files.walk(path).sorted(Comparator.reverseOrder()).toList()) { Files.delete(p); } } @@ -97,17 +96,4 @@ public class Utils { l.unlock(); } } - - - public static boolean isBlank(String input) { - if (input == null) { - return true; - } - for (int i = 0; i < input.length(); i++) { - if (!Character.isWhitespace(input.charAt(i))) { - return false; - } - } - return true; - } } diff --git a/enigma/src/main/java/cuchaz/enigma/utils/validation/ParameterizedMessage.java b/enigma/src/main/java/cuchaz/enigma/utils/validation/ParameterizedMessage.java index 48a5a10..9ad5867 100644 --- a/enigma/src/main/java/cuchaz/enigma/utils/validation/ParameterizedMessage.java +++ b/enigma/src/main/java/cuchaz/enigma/utils/validation/ParameterizedMessage.java @@ -26,8 +26,7 @@ public final class ParameterizedMessage { @Override public boolean equals(Object o) { if (this == o) return true; - if (!(o instanceof ParameterizedMessage)) return false; - ParameterizedMessage that = (ParameterizedMessage) o; + if (!(o instanceof ParameterizedMessage that)) return false; return Objects.equals(message, that.message) && Arrays.equals(params, that.params) && Objects.equals(target, that.target); diff --git a/enigma/src/main/java/cuchaz/enigma/utils/validation/PrintValidatable.java b/enigma/src/main/java/cuchaz/enigma/utils/validation/PrintValidatable.java index fe91cc1..81b6c43 100644 --- a/enigma/src/main/java/cuchaz/enigma/utils/validation/PrintValidatable.java +++ b/enigma/src/main/java/cuchaz/enigma/utils/validation/PrintValidatable.java @@ -10,20 +10,11 @@ public class PrintValidatable implements Validatable { public void addMessage(ParameterizedMessage message) { String text = message.getText(); String longText = message.getLongText(); - String type; - switch (message.message.type) { - case INFO: - type = "info"; - break; - case WARNING: - type = "warning"; - break; - case ERROR: - type = "error"; - break; - default: - throw new IllegalStateException("unreachable"); - } + String type = switch (message.message.type) { + case INFO -> "info"; + case WARNING -> "warning"; + case ERROR -> "error"; + }; System.out.printf("%s: %s\n", type, text); if (!longText.isEmpty()) { Arrays.stream(longText.split("\n")).forEach(s -> System.out.printf(" %s\n", s)); -- cgit v1.2.3