diff options
Diffstat (limited to 'src/main/java/cuchaz/enigma/mapping/FieldMapping.java')
| -rw-r--r-- | src/main/java/cuchaz/enigma/mapping/FieldMapping.java | 36 |
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; |