From b49e7eeb75837faeafb938a739cd2fa82594bcea Mon Sep 17 00:00:00 2001 From: liach Date: Fri, 8 Nov 2019 17:24:41 -0600 Subject: Tweak runemoro's stats generator to be compatible with multiple services (#178) * Tweak runemoro's stats generator to be compatible with multiple services Signed-off-by: liach * Names can have $ in java Signed-off-by: liach --- .../cuchaz/enigma/gui/stats/StatsGenerator.java | 24 ++++++++++++++-------- 1 file changed, 16 insertions(+), 8 deletions(-) (limited to 'src/main/java/cuchaz/enigma/gui') diff --git a/src/main/java/cuchaz/enigma/gui/stats/StatsGenerator.java b/src/main/java/cuchaz/enigma/gui/stats/StatsGenerator.java index 485daf5..88ed96f 100644 --- a/src/main/java/cuchaz/enigma/gui/stats/StatsGenerator.java +++ b/src/main/java/cuchaz/enigma/gui/stats/StatsGenerator.java @@ -18,15 +18,15 @@ public class StatsGenerator { private final EntryIndex entryIndex; private final EntryRemapper mapper; private final EntryResolver entryResolver; - private final ObfuscationTestService obfuscationTestService; - private final NameProposalService nameProposalService; + private final List obfuscationTestServices; + private final List nameProposalServices; public StatsGenerator(EnigmaProject project) { entryIndex = project.getJarIndex().getEntryIndex(); mapper = project.getMapper(); entryResolver = project.getJarIndex().getEntryResolver(); - obfuscationTestService = project.getEnigma().getServices().get(ObfuscationTestService.TYPE).orElse(null); - nameProposalService = project.getEnigma().getServices().get(NameProposalService.TYPE).orElse(null); + obfuscationTestServices = project.getEnigma().getServices().get(ObfuscationTestService.TYPE); + nameProposalServices = project.getEnigma().getServices().get(NameProposalService.TYPE); } public String generate(ProgressListener progress, Set includedMembers) { @@ -112,12 +112,20 @@ public class StatsGenerator { private boolean isObfuscated(Entry entry) { String name = entry.getName(); - if (obfuscationTestService != null && obfuscationTestService.testDeobfuscated(entry)) { - return false; + if (!obfuscationTestServices.isEmpty()) { + for (ObfuscationTestService service : obfuscationTestServices) { + if (service.testDeobfuscated(entry)) { + return false; + } + } } - if (nameProposalService != null && nameProposalService.proposeName(entry, mapper).isPresent()) { - return false; + if (!nameProposalServices.isEmpty()) { + for (NameProposalService service : nameProposalServices) { + if (service.proposeName(entry, mapper).isPresent()) { + return false; + } + } } String mappedName = mapper.deobfuscate(entry).getName(); -- cgit v1.2.3