summaryrefslogtreecommitdiff
path: root/src/cuchaz/enigma/mapping
diff options
context:
space:
mode:
authorGravatar jeff2015-03-11 11:03:16 -0400
committerGravatar jeff2015-03-11 11:03:16 -0400
commite33b4003a5c423894e7aef575faff359dd1d33b1 (patch)
tree6fa674b5ff8dbc699a44b6423149ad7e6eaae250 /src/cuchaz/enigma/mapping
parentnothing of consequence (diff)
downloadenigma-fork-e33b4003a5c423894e7aef575faff359dd1d33b1.tar.gz
enigma-fork-e33b4003a5c423894e7aef575faff359dd1d33b1.tar.xz
enigma-fork-e33b4003a5c423894e7aef575faff359dd1d33b1.zip
generalized field matching
added method matching
Diffstat (limited to 'src/cuchaz/enigma/mapping')
-rw-r--r--src/cuchaz/enigma/mapping/ClassMapping.java4
-rw-r--r--src/cuchaz/enigma/mapping/EntryFactory.java12
-rw-r--r--src/cuchaz/enigma/mapping/FieldMapping.java7
-rw-r--r--src/cuchaz/enigma/mapping/MemberMapping.java6
-rw-r--r--src/cuchaz/enigma/mapping/MethodMapping.java11
5 files changed, 38 insertions, 2 deletions
diff --git a/src/cuchaz/enigma/mapping/ClassMapping.java b/src/cuchaz/enigma/mapping/ClassMapping.java
index 43605e5..07fed32 100644
--- a/src/cuchaz/enigma/mapping/ClassMapping.java
+++ b/src/cuchaz/enigma/mapping/ClassMapping.java
@@ -434,4 +434,8 @@ public class ClassMapping implements Serializable, Comparable<ClassMapping> {
434 public static boolean isSimpleClassName(String name) { 434 public static boolean isSimpleClassName(String name) {
435 return name.indexOf('/') < 0 && name.indexOf('$') < 0; 435 return name.indexOf('/') < 0 && name.indexOf('$') < 0;
436 } 436 }
437
438 public ClassEntry getObfEntry() {
439 return new ClassEntry(m_obfFullName);
440 }
437} 441}
diff --git a/src/cuchaz/enigma/mapping/EntryFactory.java b/src/cuchaz/enigma/mapping/EntryFactory.java
index 333bb09..7bc6183 100644
--- a/src/cuchaz/enigma/mapping/EntryFactory.java
+++ b/src/cuchaz/enigma/mapping/EntryFactory.java
@@ -138,6 +138,10 @@ public class EntryFactory {
138 public static BehaviorEntry getBehaviorEntry(String className, String behaviorName, String behaviorSignature) { 138 public static BehaviorEntry getBehaviorEntry(String className, String behaviorName, String behaviorSignature) {
139 return getBehaviorEntry(new ClassEntry(className), behaviorName, new Signature(behaviorSignature)); 139 return getBehaviorEntry(new ClassEntry(className), behaviorName, new Signature(behaviorSignature));
140 } 140 }
141
142 public static BehaviorEntry getBehaviorEntry(String className, String behaviorName) {
143 return getBehaviorEntry(new ClassEntry(className), behaviorName);
144 }
141 145
142 public static BehaviorEntry getBehaviorEntry(ClassEntry classEntry, String behaviorName, Signature behaviorSignature) { 146 public static BehaviorEntry getBehaviorEntry(ClassEntry classEntry, String behaviorName, Signature behaviorSignature) {
143 if (behaviorName.equals("<init>")) { 147 if (behaviorName.equals("<init>")) {
@@ -149,6 +153,14 @@ public class EntryFactory {
149 } 153 }
150 } 154 }
151 155
156 public static BehaviorEntry getBehaviorEntry(ClassEntry classEntry, String behaviorName) {
157 if(behaviorName.equals("<clinit>")) {
158 return new ConstructorEntry(classEntry);
159 } else {
160 throw new IllegalArgumentException("Only class initializers don't have signatures");
161 }
162 }
163
152 public static BehaviorEntry getBehaviorEntry(MethodDefinition def) { 164 public static BehaviorEntry getBehaviorEntry(MethodDefinition def) {
153 if (def.isConstructor() || def.isTypeInitializer()) { 165 if (def.isConstructor() || def.isTypeInitializer()) {
154 return getConstructorEntry(def); 166 return getConstructorEntry(def);
diff --git a/src/cuchaz/enigma/mapping/FieldMapping.java b/src/cuchaz/enigma/mapping/FieldMapping.java
index 55b0a19..1289351 100644
--- a/src/cuchaz/enigma/mapping/FieldMapping.java
+++ b/src/cuchaz/enigma/mapping/FieldMapping.java
@@ -12,7 +12,7 @@ package cuchaz.enigma.mapping;
12 12
13import java.io.Serializable; 13import java.io.Serializable;
14 14
15public class FieldMapping implements Serializable, Comparable<FieldMapping> { 15public class FieldMapping implements Serializable, Comparable<FieldMapping>, MemberMapping<FieldEntry> {
16 16
17 private static final long serialVersionUID = 8610742471440861315L; 17 private static final long serialVersionUID = 8610742471440861315L;
18 18
@@ -72,4 +72,9 @@ public class FieldMapping implements Serializable, Comparable<FieldMapping> {
72 } 72 }
73 return false; 73 return false;
74 } 74 }
75
76 @Override
77 public FieldEntry getObfEntry(ClassEntry classEntry) {
78 return new FieldEntry(classEntry, m_obfName, new Type(m_obfType));
79 }
75} 80}
diff --git a/src/cuchaz/enigma/mapping/MemberMapping.java b/src/cuchaz/enigma/mapping/MemberMapping.java
new file mode 100644
index 0000000..d62a7c1
--- /dev/null
+++ b/src/cuchaz/enigma/mapping/MemberMapping.java
@@ -0,0 +1,6 @@
1package cuchaz.enigma.mapping;
2
3
4public interface MemberMapping<T extends Entry> {
5 T getObfEntry(ClassEntry classEntry);
6}
diff --git a/src/cuchaz/enigma/mapping/MethodMapping.java b/src/cuchaz/enigma/mapping/MethodMapping.java
index bf8a94f..bf6dacc 100644
--- a/src/cuchaz/enigma/mapping/MethodMapping.java
+++ b/src/cuchaz/enigma/mapping/MethodMapping.java
@@ -16,7 +16,7 @@ import java.util.Map.Entry;
16 16
17import com.google.common.collect.Maps; 17import com.google.common.collect.Maps;
18 18
19public class MethodMapping implements Serializable, Comparable<MethodMapping> { 19public class MethodMapping implements Serializable, Comparable<MethodMapping>, MemberMapping<BehaviorEntry> {
20 20
21 private static final long serialVersionUID = -4409570216084263978L; 21 private static final long serialVersionUID = -4409570216084263978L;
22 22
@@ -170,4 +170,13 @@ public class MethodMapping implements Serializable, Comparable<MethodMapping> {
170 } 170 }
171 return false; 171 return false;
172 } 172 }
173
174 @Override
175 public BehaviorEntry getObfEntry(ClassEntry classEntry) {
176 if (isConstructor()) {
177 return new ConstructorEntry(classEntry, m_obfSignature);
178 } else {
179 return new MethodEntry(classEntry, m_obfName, m_obfSignature);
180 }
181 }
173} 182}