diff options
| author | 2016-09-06 12:28:05 +0200 | |
|---|---|---|
| committer | 2016-09-06 12:28:05 +0200 | |
| commit | 428574f8a44bdd21bbe408dde6d1df2b3db1efae (patch) | |
| tree | d605eeefd46ad92364129d29a8231beed9f1b9c7 /src/main/java | |
| parent | A little bit of clean up (diff) | |
| download | enigma-428574f8a44bdd21bbe408dde6d1df2b3db1efae.tar.gz enigma-428574f8a44bdd21bbe408dde6d1df2b3db1efae.tar.xz enigma-428574f8a44bdd21bbe408dde6d1df2b3db1efae.zip | |
Generify ProcyonEntryFactory (Fix #18)
Diffstat (limited to 'src/main/java')
| -rw-r--r-- | src/main/java/cuchaz/enigma/analysis/SourceIndexBehaviorVisitor.java | 14 | ||||
| -rw-r--r-- | src/main/java/cuchaz/enigma/mapping/ProcyonEntryFactory.java | 7 |
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; | |||
| 13 | import com.strobel.assembler.metadata.FieldDefinition; | 13 | import com.strobel.assembler.metadata.FieldDefinition; |
| 14 | import com.strobel.assembler.metadata.MemberReference; | 14 | import com.strobel.assembler.metadata.MemberReference; |
| 15 | import com.strobel.assembler.metadata.MethodDefinition; | 15 | import com.strobel.assembler.metadata.MethodDefinition; |
| 16 | import com.strobel.assembler.metadata.MethodReference; | ||
| 16 | 17 | ||
| 17 | public class ProcyonEntryFactory { | 18 | public 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 { |