summaryrefslogtreecommitdiff
path: root/src/main/java/cuchaz/enigma/mapping/FieldMapping.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/cuchaz/enigma/mapping/FieldMapping.java')
-rw-r--r--src/main/java/cuchaz/enigma/mapping/FieldMapping.java36
1 files changed, 14 insertions, 22 deletions
diff --git a/src/main/java/cuchaz/enigma/mapping/FieldMapping.java b/src/main/java/cuchaz/enigma/mapping/FieldMapping.java
index cd761b4..3c46a37 100644
--- a/src/main/java/cuchaz/enigma/mapping/FieldMapping.java
+++ b/src/main/java/cuchaz/enigma/mapping/FieldMapping.java
@@ -17,26 +17,19 @@ public class FieldMapping implements Comparable<FieldMapping>, MemberMapping<Fie
17 17
18 private String obfName; 18 private String obfName;
19 private String deobfName; 19 private String deobfName;
20 private Type obfType; 20 private TypeDescriptor obfDesc;
21 private Mappings.EntryModifier modifier; 21 private Mappings.EntryModifier modifier;
22 22
23 public FieldMapping(String obfName, Type obfType, String deobfName, Mappings.EntryModifier modifier) { 23 public FieldMapping(String obfName, TypeDescriptor obfDesc, String deobfName, Mappings.EntryModifier modifier) {
24 this.obfName = obfName; 24 this.obfName = obfName;
25 this.deobfName = NameValidator.validateFieldName(deobfName); 25 this.deobfName = NameValidator.validateFieldName(deobfName);
26 this.obfType = obfType; 26 this.obfDesc = obfDesc;
27 this.modifier = modifier; 27 this.modifier = modifier;
28 } 28 }
29 29
30 public FieldMapping(FieldMapping other, ClassNameReplacer obfClassNameReplacer) {
31 this.obfName = other.obfName;
32 this.deobfName = other.deobfName;
33 this.modifier = other.modifier;
34 this.obfType = new Type(other.obfType, obfClassNameReplacer);
35 }
36
37 @Override 30 @Override
38 public FieldEntry getObfEntry(ClassEntry classEntry) { 31 public FieldEntry getObfEntry(ClassEntry classEntry) {
39 return new FieldEntry(classEntry, this.obfName, this.obfType); 32 return new FieldEntry(classEntry, this.obfName, this.obfDesc);
40 } 33 }
41 34
42 @Override 35 @Override
@@ -65,12 +58,12 @@ public class FieldMapping implements Comparable<FieldMapping>, MemberMapping<Fie
65 this.deobfName = NameValidator.validateFieldName(val); 58 this.deobfName = NameValidator.validateFieldName(val);
66 } 59 }
67 60
68 public Type getObfType() { 61 public TypeDescriptor getObfDesc() {
69 return this.obfType; 62 return this.obfDesc;
70 } 63 }
71 64
72 public void setObfType(Type val) { 65 public void setObfDesc(TypeDescriptor val) {
73 this.obfType = val; 66 this.obfDesc = val;
74 } 67 }
75 68
76 public Mappings.EntryModifier getModifier() { 69 public Mappings.EntryModifier getModifier() {
@@ -83,21 +76,20 @@ public class FieldMapping implements Comparable<FieldMapping>, MemberMapping<Fie
83 76
84 @Override 77 @Override
85 public int compareTo(FieldMapping other) { 78 public int compareTo(FieldMapping other) {
86 return (this.obfName + this.obfType).compareTo(other.obfName + other.obfType); 79 return (this.obfName + this.obfDesc).compareTo(other.obfName + other.obfDesc);
87 } 80 }
88 81
89 public boolean renameObfClass(final String oldObfClassName, final String newObfClassName) { 82 public boolean renameObfClass(final String oldObfClassName, final String newObfClassName) {
90 // rename obf classes in the type 83 // rename obf classes in the desc
91 Type newType = new Type(this.obfType, className -> 84 TypeDescriptor newDesc = this.obfDesc.remap(className -> {
92 {
93 if (className.equals(oldObfClassName)) { 85 if (className.equals(oldObfClassName)) {
94 return newObfClassName; 86 return newObfClassName;
95 } 87 }
96 return null; 88 return className;
97 }); 89 });
98 90
99 if (!newType.equals(this.obfType)) { 91 if (!newDesc.equals(this.obfDesc)) {
100 this.obfType = newType; 92 this.obfDesc = newDesc;
101 return true; 93 return true;
102 } 94 }
103 return false; 95 return false;