summaryrefslogtreecommitdiff
path: root/enigma-swing/src
diff options
context:
space:
mode:
Diffstat (limited to 'enigma-swing/src')
-rw-r--r--enigma-swing/src/main/java/cuchaz/enigma/gui/stats/StatsGenerator.java43
1 files changed, 6 insertions, 37 deletions
diff --git a/enigma-swing/src/main/java/cuchaz/enigma/gui/stats/StatsGenerator.java b/enigma-swing/src/main/java/cuchaz/enigma/gui/stats/StatsGenerator.java
index b898eac3..20d6a0eb 100644
--- a/enigma-swing/src/main/java/cuchaz/enigma/gui/stats/StatsGenerator.java
+++ b/enigma-swing/src/main/java/cuchaz/enigma/gui/stats/StatsGenerator.java
@@ -3,8 +3,6 @@ package cuchaz.enigma.gui.stats;
3import cuchaz.enigma.EnigmaProject; 3import cuchaz.enigma.EnigmaProject;
4import cuchaz.enigma.ProgressListener; 4import cuchaz.enigma.ProgressListener;
5import cuchaz.enigma.analysis.index.EntryIndex; 5import cuchaz.enigma.analysis.index.EntryIndex;
6import cuchaz.enigma.api.service.NameProposalService;
7import cuchaz.enigma.api.service.ObfuscationTestService;
8import cuchaz.enigma.translation.mapping.EntryRemapper; 6import cuchaz.enigma.translation.mapping.EntryRemapper;
9import cuchaz.enigma.translation.mapping.EntryResolver; 7import cuchaz.enigma.translation.mapping.EntryResolver;
10import cuchaz.enigma.translation.mapping.ResolutionStrategy; 8import cuchaz.enigma.translation.mapping.ResolutionStrategy;
@@ -15,18 +13,16 @@ import cuchaz.enigma.utils.I18n;
15import java.util.*; 13import java.util.*;
16 14
17public class StatsGenerator { 15public class StatsGenerator {
16 private final EnigmaProject project;
18 private final EntryIndex entryIndex; 17 private final EntryIndex entryIndex;
19 private final EntryRemapper mapper; 18 private final EntryRemapper mapper;
20 private final EntryResolver entryResolver; 19 private final EntryResolver entryResolver;
21 private final List<ObfuscationTestService> obfuscationTestServices;
22 private final List<NameProposalService> nameProposalServices;
23 20
24 public StatsGenerator(EnigmaProject project) { 21 public StatsGenerator(EnigmaProject project) {
25 entryIndex = project.getJarIndex().getEntryIndex(); 22 this.project = project;
26 mapper = project.getMapper(); 23 this.entryIndex = project.getJarIndex().getEntryIndex();
27 entryResolver = project.getJarIndex().getEntryResolver(); 24 this.mapper = project.getMapper();
28 obfuscationTestServices = project.getEnigma().getServices().get(ObfuscationTestService.TYPE); 25 this.entryResolver = project.getJarIndex().getEntryResolver();
29 nameProposalServices = project.getEnigma().getServices().get(NameProposalService.TYPE);
30 } 26 }
31 27
32 public StatsResult generate(ProgressListener progress, Set<StatsMember> includedMembers, String topLevelPackage, boolean includeSynthetic) { 28 public StatsResult generate(ProgressListener progress, Set<StatsMember> includedMembers, String topLevelPackage, boolean includeSynthetic) {
@@ -111,36 +107,9 @@ public class StatsGenerator {
111 } 107 }
112 108
113 private void update(Map<String, Integer> counts, Entry<?> entry) { 109 private void update(Map<String, Integer> counts, Entry<?> entry) {
114 if (isObfuscated(entry)) { 110 if (project.isObfuscated(entry)) {
115 String parent = mapper.deobfuscate(entry.getAncestry().get(0)).getName().replace('/', '.'); 111 String parent = mapper.deobfuscate(entry.getAncestry().get(0)).getName().replace('/', '.');
116 counts.put(parent, counts.getOrDefault(parent, 0) + 1); 112 counts.put(parent, counts.getOrDefault(parent, 0) + 1);
117 } 113 }
118 } 114 }
119
120 private boolean isObfuscated(Entry<?> entry) {
121 String name = entry.getName();
122
123 if (!obfuscationTestServices.isEmpty()) {
124 for (ObfuscationTestService service : obfuscationTestServices) {
125 if (service.testDeobfuscated(entry)) {
126 return false;
127 }
128 }
129 }
130
131 if (!nameProposalServices.isEmpty()) {
132 for (NameProposalService service : nameProposalServices) {
133 if (service.proposeName(entry, mapper).isPresent()) {
134 return false;
135 }
136 }
137 }
138
139 String mappedName = mapper.deobfuscate(entry).getName();
140 if (mappedName != null && !mappedName.isEmpty() && !mappedName.equals(name)) {
141 return false;
142 }
143
144 return true;
145 }
146} 115}