diff options
| author | 2015-03-11 11:03:16 -0400 | |
|---|---|---|
| committer | 2015-03-11 11:03:16 -0400 | |
| commit | e33b4003a5c423894e7aef575faff359dd1d33b1 (patch) | |
| tree | 6fa674b5ff8dbc699a44b6423149ad7e6eaae250 /src/cuchaz/enigma/mapping | |
| parent | nothing of consequence (diff) | |
| download | enigma-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.java | 4 | ||||
| -rw-r--r-- | src/cuchaz/enigma/mapping/EntryFactory.java | 12 | ||||
| -rw-r--r-- | src/cuchaz/enigma/mapping/FieldMapping.java | 7 | ||||
| -rw-r--r-- | src/cuchaz/enigma/mapping/MemberMapping.java | 6 | ||||
| -rw-r--r-- | src/cuchaz/enigma/mapping/MethodMapping.java | 11 |
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 | ||
| 13 | import java.io.Serializable; | 13 | import java.io.Serializable; |
| 14 | 14 | ||
| 15 | public class FieldMapping implements Serializable, Comparable<FieldMapping> { | 15 | public 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 @@ | |||
| 1 | package cuchaz.enigma.mapping; | ||
| 2 | |||
| 3 | |||
| 4 | public 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 | ||
| 17 | import com.google.common.collect.Maps; | 17 | import com.google.common.collect.Maps; |
| 18 | 18 | ||
| 19 | public class MethodMapping implements Serializable, Comparable<MethodMapping> { | 19 | public 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 | } |