summaryrefslogtreecommitdiff
path: root/enigma/src/main/java/cuchaz
diff options
context:
space:
mode:
authorGravatar Yanis482020-12-15 21:22:55 +0100
committerGravatar Yanis482020-12-15 21:22:55 +0100
commit12f270c80570b136add40dc259c25383ac36bf81 (patch)
treece73c02ba96dcc39c550f900988afed629c5256c /enigma/src/main/java/cuchaz
parentminor bump (diff)
downloadenigma-fork-12f270c80570b136add40dc259c25383ac36bf81.tar.gz
enigma-fork-12f270c80570b136add40dc259c25383ac36bf81.tar.xz
enigma-fork-12f270c80570b136add40dc259c25383ac36bf81.zip
avoid duplicate logic
Diffstat (limited to 'enigma/src/main/java/cuchaz')
-rw-r--r--enigma/src/main/java/cuchaz/enigma/EnigmaProject.java30
-rw-r--r--enigma/src/main/java/cuchaz/enigma/analysis/StructureTreeNode.java30
2 files changed, 31 insertions, 29 deletions
diff --git a/enigma/src/main/java/cuchaz/enigma/EnigmaProject.java b/enigma/src/main/java/cuchaz/enigma/EnigmaProject.java
index fcd2c96..a01eca1 100644
--- a/enigma/src/main/java/cuchaz/enigma/EnigmaProject.java
+++ b/enigma/src/main/java/cuchaz/enigma/EnigmaProject.java
@@ -18,6 +18,7 @@ import java.util.stream.Stream;
18 18
19import com.google.common.base.Functions; 19import com.google.common.base.Functions;
20import com.google.common.base.Preconditions; 20import com.google.common.base.Preconditions;
21import cuchaz.enigma.api.service.ObfuscationTestService;
21import cuchaz.enigma.classprovider.ObfuscationFixClassProvider; 22import cuchaz.enigma.classprovider.ObfuscationFixClassProvider;
22import org.objectweb.asm.ClassWriter; 23import org.objectweb.asm.ClassWriter;
23import org.objectweb.asm.tree.ClassNode; 24import org.objectweb.asm.tree.ClassNode;
@@ -158,6 +159,35 @@ public class EnigmaProject {
158 return obfReference.isNamed() && isRenamable(obfReference.getNameableEntry()); 159 return obfReference.isNamed() && isRenamable(obfReference.getNameableEntry());
159 } 160 }
160 161
162 public boolean isObfuscated(Entry<?> entry) {
163 String name = entry.getName();
164
165 List<ObfuscationTestService> obfuscationTestServices = this.getEnigma().getServices().get(ObfuscationTestService.TYPE);
166 if (!obfuscationTestServices.isEmpty()) {
167 for (ObfuscationTestService service : obfuscationTestServices) {
168 if (service.testDeobfuscated(entry)) {
169 return false;
170 }
171 }
172 }
173
174 List<NameProposalService> nameProposalServices = this.getEnigma().getServices().get(NameProposalService.TYPE);
175 if (!nameProposalServices.isEmpty()) {
176 for (NameProposalService service : nameProposalServices) {
177 if (service.proposeName(entry, mapper).isPresent()) {
178 return false;
179 }
180 }
181 }
182
183 String mappedName = mapper.deobfuscate(entry).getName();
184 if (mappedName != null && !mappedName.isEmpty() && !mappedName.equals(name)) {
185 return false;
186 }
187
188 return true;
189 }
190
161 public JarExport exportRemappedJar(ProgressListener progress) { 191 public JarExport exportRemappedJar(ProgressListener progress) {
162 Collection<ClassEntry> classEntries = jarIndex.getEntryIndex().getClasses(); 192 Collection<ClassEntry> classEntries = jarIndex.getEntryIndex().getClasses();
163 ClassProvider fixingClassProvider = new ObfuscationFixClassProvider(classProvider, jarIndex); 193 ClassProvider fixingClassProvider = new ObfuscationFixClassProvider(classProvider, jarIndex);
diff --git a/enigma/src/main/java/cuchaz/enigma/analysis/StructureTreeNode.java b/enigma/src/main/java/cuchaz/enigma/analysis/StructureTreeNode.java
index 876b5ca..f310aa7 100644
--- a/enigma/src/main/java/cuchaz/enigma/analysis/StructureTreeNode.java
+++ b/enigma/src/main/java/cuchaz/enigma/analysis/StructureTreeNode.java
@@ -2,7 +2,6 @@ package cuchaz.enigma.analysis;
2 2
3import cuchaz.enigma.EnigmaProject; 3import cuchaz.enigma.EnigmaProject;
4import cuchaz.enigma.api.service.NameProposalService; 4import cuchaz.enigma.api.service.NameProposalService;
5import cuchaz.enigma.api.service.ObfuscationTestService;
6import cuchaz.enigma.translation.TranslateResult; 5import cuchaz.enigma.translation.TranslateResult;
7import cuchaz.enigma.translation.mapping.EntryRemapper; 6import cuchaz.enigma.translation.mapping.EntryRemapper;
8import cuchaz.enigma.translation.representation.TypeDescriptor; 7import cuchaz.enigma.translation.representation.TypeDescriptor;
@@ -43,7 +42,7 @@ public class StructureTreeNode extends DefaultMutableTreeNode {
43 } 42 }
44 43
45 // don't add deobfuscated members if hideDeobfuscated is true, unless it's an inner class 44 // don't add deobfuscated members if hideDeobfuscated is true, unless it's an inner class
46 if (hideDeobfuscated && this.isDeobfuscated(project, child) && !(child instanceof ClassEntry)) { 45 if (hideDeobfuscated && !project.isObfuscated(child) && !(child instanceof ClassEntry)) {
47 continue; 46 continue;
48 } 47 }
49 48
@@ -56,33 +55,6 @@ public class StructureTreeNode extends DefaultMutableTreeNode {
56 } 55 }
57 } 56 }
58 57
59 private boolean isDeobfuscated(EnigmaProject project, ParentedEntry child) {
60 List<ObfuscationTestService> obfuscationTestServices = project.getEnigma().getServices().get(ObfuscationTestService.TYPE);
61
62 if (!obfuscationTestServices.isEmpty()) {
63 for (ObfuscationTestService service : obfuscationTestServices) {
64 if (service.testDeobfuscated(child)) {
65 return true;
66 }
67 }
68 }
69
70 if (!this.nameProposalServices.isEmpty()) {
71 for (NameProposalService service : this.nameProposalServices) {
72 if (service.proposeName(child, this.mapper).isPresent()) {
73 return true;
74 }
75 }
76 }
77
78 String mappedName = project.getMapper().deobfuscate(child).getName();
79 if (mappedName != null && !mappedName.isEmpty() && !mappedName.equals(child.getName())) {
80 return true;
81 }
82
83 return false;
84 }
85
86 @Override 58 @Override
87 public String toString() { 59 public String toString() {
88 TranslateResult<ParentedEntry> translateResult = this.mapper.extendedDeobfuscate(this.entry); 60 TranslateResult<ParentedEntry> translateResult = this.mapper.extendedDeobfuscate(this.entry);