summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorGravatar gegy10002019-02-23 16:48:31 +0200
committerGravatar gegy10002019-02-23 16:48:31 +0200
commit8f954133dc18ccba4a816b7e2f223dccdce2a1b3 (patch)
tree23d886276625d52408c19c1d8126b1c20acb4758 /src
parentBridge Method Fixes (#111) (diff)
downloadenigma-8f954133dc18ccba4a816b7e2f223dccdce2a1b3.tar.gz
enigma-8f954133dc18ccba4a816b7e2f223dccdce2a1b3.tar.xz
enigma-8f954133dc18ccba4a816b7e2f223dccdce2a1b3.zip
Drop final modifiers from displayed source ast for easier readability
Diffstat (limited to 'src')
-rw-r--r--src/main/java/cuchaz/enigma/analysis/DropVarModifiersAstTransform.java37
-rw-r--r--src/main/java/cuchaz/enigma/gui/GuiController.java1
2 files changed, 38 insertions, 0 deletions
diff --git a/src/main/java/cuchaz/enigma/analysis/DropVarModifiersAstTransform.java b/src/main/java/cuchaz/enigma/analysis/DropVarModifiersAstTransform.java
new file mode 100644
index 00000000..0be58911
--- /dev/null
+++ b/src/main/java/cuchaz/enigma/analysis/DropVarModifiersAstTransform.java
@@ -0,0 +1,37 @@
1package cuchaz.enigma.analysis;
2
3import com.strobel.decompiler.languages.java.ast.*;
4import com.strobel.decompiler.languages.java.ast.transforms.IAstTransform;
5
6import javax.lang.model.element.Modifier;
7
8public final class DropVarModifiersAstTransform implements IAstTransform {
9 public static final DropVarModifiersAstTransform INSTANCE = new DropVarModifiersAstTransform();
10
11 private DropVarModifiersAstTransform() {
12 }
13
14 @Override
15 public void run(AstNode compilationUnit) {
16 compilationUnit.acceptVisitor(new Visitor(), null);
17 }
18
19 static class Visitor extends DepthFirstAstVisitor<Void, Void> {
20 @Override
21 public Void visitParameterDeclaration(ParameterDeclaration node, Void data) {
22 for (JavaModifierToken modifierToken : node.getChildrenByRole(EntityDeclaration.MODIFIER_ROLE)) {
23 if (modifierToken.getModifier() == Modifier.FINAL) {
24 modifierToken.remove();
25 }
26 }
27
28 return null;
29 }
30
31 @Override
32 public Void visitVariableDeclaration(VariableDeclarationStatement node, Void data) {
33 node.removeModifier(Modifier.FINAL);
34 return null;
35 }
36 }
37}
diff --git a/src/main/java/cuchaz/enigma/gui/GuiController.java b/src/main/java/cuchaz/enigma/gui/GuiController.java
index 57cb35ef..45c61319 100644
--- a/src/main/java/cuchaz/enigma/gui/GuiController.java
+++ b/src/main/java/cuchaz/enigma/gui/GuiController.java
@@ -344,6 +344,7 @@ public class GuiController {
344 } 344 }
345 345
346 DropImportAstTransform.INSTANCE.run(sourceTree); 346 DropImportAstTransform.INSTANCE.run(sourceTree);
347 DropVarModifiersAstTransform.INSTANCE.run(sourceTree);
347 348
348 String sourceString = sourceProvider.writeSourceToString(sourceTree); 349 String sourceString = sourceProvider.writeSourceToString(sourceTree);
349 350