diff options
Diffstat (limited to 'src/cuchaz/enigma/analysis/SourceIndexBehaviorVisitor.java')
| -rw-r--r-- | src/cuchaz/enigma/analysis/SourceIndexBehaviorVisitor.java | 21 |
1 files changed, 20 insertions, 1 deletions
diff --git a/src/cuchaz/enigma/analysis/SourceIndexBehaviorVisitor.java b/src/cuchaz/enigma/analysis/SourceIndexBehaviorVisitor.java index a943858..ab50552 100644 --- a/src/cuchaz/enigma/analysis/SourceIndexBehaviorVisitor.java +++ b/src/cuchaz/enigma/analysis/SourceIndexBehaviorVisitor.java | |||
| @@ -21,12 +21,14 @@ import com.strobel.decompiler.languages.java.ast.InvocationExpression; | |||
| 21 | import com.strobel.decompiler.languages.java.ast.Keys; | 21 | import com.strobel.decompiler.languages.java.ast.Keys; |
| 22 | import com.strobel.decompiler.languages.java.ast.MemberReferenceExpression; | 22 | import com.strobel.decompiler.languages.java.ast.MemberReferenceExpression; |
| 23 | import com.strobel.decompiler.languages.java.ast.MethodDeclaration; | 23 | import com.strobel.decompiler.languages.java.ast.MethodDeclaration; |
| 24 | import com.strobel.decompiler.languages.java.ast.ObjectCreationExpression; | ||
| 24 | import com.strobel.decompiler.languages.java.ast.ParameterDeclaration; | 25 | import com.strobel.decompiler.languages.java.ast.ParameterDeclaration; |
| 25 | import com.strobel.decompiler.languages.java.ast.SimpleType; | 26 | import com.strobel.decompiler.languages.java.ast.SimpleType; |
| 26 | 27 | ||
| 27 | import cuchaz.enigma.mapping.ArgumentEntry; | 28 | import cuchaz.enigma.mapping.ArgumentEntry; |
| 28 | import cuchaz.enigma.mapping.BehaviorEntry; | 29 | import cuchaz.enigma.mapping.BehaviorEntry; |
| 29 | import cuchaz.enigma.mapping.ClassEntry; | 30 | import cuchaz.enigma.mapping.ClassEntry; |
| 31 | import cuchaz.enigma.mapping.ConstructorEntry; | ||
| 30 | import cuchaz.enigma.mapping.Entry; | 32 | import cuchaz.enigma.mapping.Entry; |
| 31 | import cuchaz.enigma.mapping.FieldEntry; | 33 | import cuchaz.enigma.mapping.FieldEntry; |
| 32 | import cuchaz.enigma.mapping.MethodEntry; | 34 | import cuchaz.enigma.mapping.MethodEntry; |
| @@ -57,9 +59,9 @@ public class SourceIndexBehaviorVisitor extends SourceIndexVisitor | |||
| 57 | { | 59 | { |
| 58 | MemberReference ref = node.getUserData( Keys.MEMBER_REFERENCE ); | 60 | MemberReference ref = node.getUserData( Keys.MEMBER_REFERENCE ); |
| 59 | ClassEntry classEntry = new ClassEntry( ref.getDeclaringType().getInternalName() ); | 61 | ClassEntry classEntry = new ClassEntry( ref.getDeclaringType().getInternalName() ); |
| 60 | MethodEntry methodEntry = new MethodEntry( classEntry, ref.getName(), ref.getSignature() ); | ||
| 61 | if( node.getTarget() instanceof MemberReferenceExpression ) | 62 | if( node.getTarget() instanceof MemberReferenceExpression ) |
| 62 | { | 63 | { |
| 64 | MethodEntry methodEntry = new MethodEntry( classEntry, ref.getName(), ref.getSignature() ); | ||
| 63 | index.addReference( | 65 | index.addReference( |
| 64 | ((MemberReferenceExpression)node.getTarget()).getMemberNameToken(), | 66 | ((MemberReferenceExpression)node.getTarget()).getMemberNameToken(), |
| 65 | new EntryReference<Entry,Entry>( methodEntry, m_behaviorEntry ) | 67 | new EntryReference<Entry,Entry>( methodEntry, m_behaviorEntry ) |
| @@ -131,4 +133,21 @@ public class SourceIndexBehaviorVisitor extends SourceIndexVisitor | |||
| 131 | 133 | ||
| 132 | return recurse( node, index ); | 134 | return recurse( node, index ); |
| 133 | } | 135 | } |
| 136 | |||
| 137 | @Override | ||
| 138 | public Void visitObjectCreationExpression( ObjectCreationExpression node, SourceIndex index ) | ||
| 139 | { | ||
| 140 | MemberReference ref = node.getUserData( Keys.MEMBER_REFERENCE ); | ||
| 141 | ClassEntry classEntry = new ClassEntry( ref.getDeclaringType().getInternalName() ); | ||
| 142 | ConstructorEntry constructorEntry = new ConstructorEntry( classEntry, ref.getSignature() ); | ||
| 143 | if( node.getType() instanceof SimpleType ) | ||
| 144 | { | ||
| 145 | index.addReference( | ||
| 146 | ((SimpleType)node.getType()).getIdentifierToken(), | ||
| 147 | new EntryReference<Entry,Entry>( constructorEntry, m_behaviorEntry ) | ||
| 148 | ); | ||
| 149 | } | ||
| 150 | |||
| 151 | return recurse( node, index ); | ||
| 152 | } | ||
| 134 | } | 153 | } |