summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Thog2016-09-06 12:28:05 +0200
committerGravatar Thog2016-09-06 12:28:05 +0200
commit428574f8a44bdd21bbe408dde6d1df2b3db1efae (patch)
treed605eeefd46ad92364129d29a8231beed9f1b9c7
parentA little bit of clean up (diff)
downloadenigma-428574f8a44bdd21bbe408dde6d1df2b3db1efae.tar.gz
enigma-428574f8a44bdd21bbe408dde6d1df2b3db1efae.tar.xz
enigma-428574f8a44bdd21bbe408dde6d1df2b3db1efae.zip
Generify ProcyonEntryFactory (Fix #18)
-rw-r--r--src/main/java/cuchaz/enigma/analysis/SourceIndexBehaviorVisitor.java14
-rw-r--r--src/main/java/cuchaz/enigma/mapping/ProcyonEntryFactory.java7
2 files changed, 9 insertions, 12 deletions
diff --git a/src/main/java/cuchaz/enigma/analysis/SourceIndexBehaviorVisitor.java b/src/main/java/cuchaz/enigma/analysis/SourceIndexBehaviorVisitor.java
index 2c84cd69..9a98b918 100644
--- a/src/main/java/cuchaz/enigma/analysis/SourceIndexBehaviorVisitor.java
+++ b/src/main/java/cuchaz/enigma/analysis/SourceIndexBehaviorVisitor.java
@@ -96,15 +96,11 @@ public class SourceIndexBehaviorVisitor extends SourceIndexVisitor {
96 @Override 96 @Override
97 public Void visitParameterDeclaration(ParameterDeclaration node, SourceIndex index) { 97 public Void visitParameterDeclaration(ParameterDeclaration node, SourceIndex index) {
98 ParameterDefinition def = node.getUserData(Keys.PARAMETER_DEFINITION); 98 ParameterDefinition def = node.getUserData(Keys.PARAMETER_DEFINITION);
99 if (def.getMethod() instanceof MemberReference) { 99 if (def.getMethod() instanceof MemberReference)
100 BehaviorEntry behaviorEntry; 100 if (def.getMethod() instanceof MethodReference)
101 if (def.getMethod() instanceof MethodDefinition) 101 index.addDeclaration(node.getNameToken(),
102 behaviorEntry = ProcyonEntryFactory.getBehaviorEntry((MethodDefinition) def.getMethod()); 102 new ArgumentEntry(ProcyonEntryFactory.getBehaviorEntry((MethodReference) def.getMethod()),
103 else 103 argumentPosition++, node.getName()));
104 behaviorEntry = ProcyonEntryFactory.getMethodEntry((MemberReference) def.getMethod()); // Generic definition
105 ArgumentEntry argumentEntry = new ArgumentEntry(behaviorEntry, argumentPosition++, node.getName());
106 index.addDeclaration(node.getNameToken(), argumentEntry);
107 }
108 104
109 return recurse(node, index); 105 return recurse(node, index);
110 } 106 }
diff --git a/src/main/java/cuchaz/enigma/mapping/ProcyonEntryFactory.java b/src/main/java/cuchaz/enigma/mapping/ProcyonEntryFactory.java
index 949d88f4..08dc8b18 100644
--- a/src/main/java/cuchaz/enigma/mapping/ProcyonEntryFactory.java
+++ b/src/main/java/cuchaz/enigma/mapping/ProcyonEntryFactory.java
@@ -13,10 +13,11 @@ package cuchaz.enigma.mapping;
13import com.strobel.assembler.metadata.FieldDefinition; 13import com.strobel.assembler.metadata.FieldDefinition;
14import com.strobel.assembler.metadata.MemberReference; 14import com.strobel.assembler.metadata.MemberReference;
15import com.strobel.assembler.metadata.MethodDefinition; 15import com.strobel.assembler.metadata.MethodDefinition;
16import com.strobel.assembler.metadata.MethodReference;
16 17
17public class ProcyonEntryFactory { 18public class ProcyonEntryFactory {
18 19
19 public static FieldEntry getFieldEntry(FieldDefinition def) { 20 public static FieldEntry getFieldEntry(MemberReference def) {
20 return new FieldEntry(new ClassEntry(def.getDeclaringType().getInternalName()), def.getName(), new Type(def.getErasedSignature())); 21 return new FieldEntry(new ClassEntry(def.getDeclaringType().getInternalName()), def.getName(), new Type(def.getErasedSignature()));
21 } 22 }
22 23
@@ -24,7 +25,7 @@ public class ProcyonEntryFactory {
24 return new MethodEntry(new ClassEntry(def.getDeclaringType().getInternalName()), def.getName(), new Signature(def.getErasedSignature())); 25 return new MethodEntry(new ClassEntry(def.getDeclaringType().getInternalName()), def.getName(), new Signature(def.getErasedSignature()));
25 } 26 }
26 27
27 public static ConstructorEntry getConstructorEntry(MethodDefinition def) { 28 public static ConstructorEntry getConstructorEntry(MethodReference def) {
28 if (def.isTypeInitializer()) { 29 if (def.isTypeInitializer()) {
29 return new ConstructorEntry(new ClassEntry(def.getDeclaringType().getInternalName())); 30 return new ConstructorEntry(new ClassEntry(def.getDeclaringType().getInternalName()));
30 } else { 31 } else {
@@ -32,7 +33,7 @@ public class ProcyonEntryFactory {
32 } 33 }
33 } 34 }
34 35
35 public static BehaviorEntry getBehaviorEntry(MethodDefinition def) { 36 public static BehaviorEntry getBehaviorEntry(MethodReference def) {
36 if (def.isConstructor() || def.isTypeInitializer()) { 37 if (def.isConstructor() || def.isTypeInitializer()) {
37 return getConstructorEntry(def); 38 return getConstructorEntry(def);
38 } else { 39 } else {