diff options
Diffstat (limited to 'src/cuchaz/enigma/analysis/SourceIndexBehaviorVisitor.java')
| -rw-r--r-- | src/cuchaz/enigma/analysis/SourceIndexBehaviorVisitor.java | 21 |
1 files changed, 2 insertions, 19 deletions
diff --git a/src/cuchaz/enigma/analysis/SourceIndexBehaviorVisitor.java b/src/cuchaz/enigma/analysis/SourceIndexBehaviorVisitor.java index b4094d9..a9a055b 100644 --- a/src/cuchaz/enigma/analysis/SourceIndexBehaviorVisitor.java +++ b/src/cuchaz/enigma/analysis/SourceIndexBehaviorVisitor.java | |||
| @@ -17,12 +17,10 @@ import com.strobel.assembler.metadata.ParameterDefinition; | |||
| 17 | import com.strobel.assembler.metadata.TypeReference; | 17 | import com.strobel.assembler.metadata.TypeReference; |
| 18 | import com.strobel.decompiler.languages.TextLocation; | 18 | import com.strobel.decompiler.languages.TextLocation; |
| 19 | import com.strobel.decompiler.languages.java.ast.AstNode; | 19 | import com.strobel.decompiler.languages.java.ast.AstNode; |
| 20 | import com.strobel.decompiler.languages.java.ast.ConstructorDeclaration; | ||
| 21 | import com.strobel.decompiler.languages.java.ast.IdentifierExpression; | 20 | import com.strobel.decompiler.languages.java.ast.IdentifierExpression; |
| 22 | import com.strobel.decompiler.languages.java.ast.InvocationExpression; | 21 | import com.strobel.decompiler.languages.java.ast.InvocationExpression; |
| 23 | import com.strobel.decompiler.languages.java.ast.Keys; | 22 | import com.strobel.decompiler.languages.java.ast.Keys; |
| 24 | import com.strobel.decompiler.languages.java.ast.MemberReferenceExpression; | 23 | import com.strobel.decompiler.languages.java.ast.MemberReferenceExpression; |
| 25 | import com.strobel.decompiler.languages.java.ast.MethodDeclaration; | ||
| 26 | import com.strobel.decompiler.languages.java.ast.ObjectCreationExpression; | 24 | import com.strobel.decompiler.languages.java.ast.ObjectCreationExpression; |
| 27 | import com.strobel.decompiler.languages.java.ast.ParameterDeclaration; | 25 | import com.strobel.decompiler.languages.java.ast.ParameterDeclaration; |
| 28 | import com.strobel.decompiler.languages.java.ast.SimpleType; | 26 | import com.strobel.decompiler.languages.java.ast.SimpleType; |
| @@ -33,6 +31,7 @@ import cuchaz.enigma.mapping.ArgumentEntry; | |||
| 33 | import cuchaz.enigma.mapping.BehaviorEntry; | 31 | import cuchaz.enigma.mapping.BehaviorEntry; |
| 34 | import cuchaz.enigma.mapping.ClassEntry; | 32 | import cuchaz.enigma.mapping.ClassEntry; |
| 35 | import cuchaz.enigma.mapping.ConstructorEntry; | 33 | import cuchaz.enigma.mapping.ConstructorEntry; |
| 34 | import cuchaz.enigma.mapping.EntryFactory; | ||
| 36 | import cuchaz.enigma.mapping.FieldEntry; | 35 | import cuchaz.enigma.mapping.FieldEntry; |
| 37 | import cuchaz.enigma.mapping.MethodEntry; | 36 | import cuchaz.enigma.mapping.MethodEntry; |
| 38 | import cuchaz.enigma.mapping.Signature; | 37 | import cuchaz.enigma.mapping.Signature; |
| @@ -47,16 +46,6 @@ public class SourceIndexBehaviorVisitor extends SourceIndexVisitor { | |||
| 47 | } | 46 | } |
| 48 | 47 | ||
| 49 | @Override | 48 | @Override |
| 50 | public Void visitMethodDeclaration(MethodDeclaration node, SourceIndex index) { | ||
| 51 | return recurse(node, index); | ||
| 52 | } | ||
| 53 | |||
| 54 | @Override | ||
| 55 | public Void visitConstructorDeclaration(ConstructorDeclaration node, SourceIndex index) { | ||
| 56 | return recurse(node, index); | ||
| 57 | } | ||
| 58 | |||
| 59 | @Override | ||
| 60 | public Void visitInvocationExpression(InvocationExpression node, SourceIndex index) { | 49 | public Void visitInvocationExpression(InvocationExpression node, SourceIndex index) { |
| 61 | MemberReference ref = node.getUserData(Keys.MEMBER_REFERENCE); | 50 | MemberReference ref = node.getUserData(Keys.MEMBER_REFERENCE); |
| 62 | 51 | ||
| @@ -122,14 +111,8 @@ public class SourceIndexBehaviorVisitor extends SourceIndexVisitor { | |||
| 122 | @Override | 111 | @Override |
| 123 | public Void visitParameterDeclaration(ParameterDeclaration node, SourceIndex index) { | 112 | public Void visitParameterDeclaration(ParameterDeclaration node, SourceIndex index) { |
| 124 | ParameterDefinition def = node.getUserData(Keys.PARAMETER_DEFINITION); | 113 | ParameterDefinition def = node.getUserData(Keys.PARAMETER_DEFINITION); |
| 125 | ClassEntry classEntry = new ClassEntry(def.getDeclaringType().getInternalName()); | ||
| 126 | MethodDefinition methodDef = (MethodDefinition)def.getMethod(); | 114 | MethodDefinition methodDef = (MethodDefinition)def.getMethod(); |
| 127 | BehaviorEntry behaviorEntry; | 115 | BehaviorEntry behaviorEntry = EntryFactory.getBehaviorEntry(methodDef); |
| 128 | if (methodDef.isConstructor()) { | ||
| 129 | behaviorEntry = new ConstructorEntry(classEntry, new Signature(methodDef.getSignature())); | ||
| 130 | } else { | ||
| 131 | behaviorEntry = new MethodEntry(classEntry, methodDef.getName(), new Signature(methodDef.getSignature())); | ||
| 132 | } | ||
| 133 | ArgumentEntry argumentEntry = new ArgumentEntry(behaviorEntry, def.getPosition(), node.getName()); | 116 | ArgumentEntry argumentEntry = new ArgumentEntry(behaviorEntry, def.getPosition(), node.getName()); |
| 134 | index.addDeclaration(node.getNameToken(), argumentEntry); | 117 | index.addDeclaration(node.getNameToken(), argumentEntry); |
| 135 | 118 | ||