diff options
| author | 2019-02-23 16:48:31 +0200 | |
|---|---|---|
| committer | 2019-02-23 16:48:31 +0200 | |
| commit | 8f954133dc18ccba4a816b7e2f223dccdce2a1b3 (patch) | |
| tree | 23d886276625d52408c19c1d8126b1c20acb4758 /src | |
| parent | Bridge Method Fixes (#111) (diff) | |
| download | enigma-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.java | 37 | ||||
| -rw-r--r-- | src/main/java/cuchaz/enigma/gui/GuiController.java | 1 |
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 @@ | |||
| 1 | package cuchaz.enigma.analysis; | ||
| 2 | |||
| 3 | import com.strobel.decompiler.languages.java.ast.*; | ||
| 4 | import com.strobel.decompiler.languages.java.ast.transforms.IAstTransform; | ||
| 5 | |||
| 6 | import javax.lang.model.element.Modifier; | ||
| 7 | |||
| 8 | public 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 | ||