summaryrefslogtreecommitdiff
path: root/src/main/java/cuchaz/enigma/mapping/FieldMapping.java
diff options
context:
space:
mode:
authorGravatar Thog2017-03-08 08:17:04 +0100
committerGravatar Thog2017-03-08 08:17:04 +0100
commit6e464ea251cab63c776ece0b2a356f1498ffa294 (patch)
tree5ed30c03f5ac4cd2d6877874f5ede576049954f7 /src/main/java/cuchaz/enigma/mapping/FieldMapping.java
parentDrop unix case style and implement hashCode when equals is overrided (diff)
downloadenigma-fork-6e464ea251cab63c776ece0b2a356f1498ffa294.tar.gz
enigma-fork-6e464ea251cab63c776ece0b2a356f1498ffa294.tar.xz
enigma-fork-6e464ea251cab63c776ece0b2a356f1498ffa294.zip
Follow Fabric guidelines
Diffstat (limited to 'src/main/java/cuchaz/enigma/mapping/FieldMapping.java')
-rw-r--r--src/main/java/cuchaz/enigma/mapping/FieldMapping.java180
1 files changed, 88 insertions, 92 deletions
diff --git a/src/main/java/cuchaz/enigma/mapping/FieldMapping.java b/src/main/java/cuchaz/enigma/mapping/FieldMapping.java
index 22ba307..cd761b4 100644
--- a/src/main/java/cuchaz/enigma/mapping/FieldMapping.java
+++ b/src/main/java/cuchaz/enigma/mapping/FieldMapping.java
@@ -8,103 +8,99 @@
8 * Contributors: 8 * Contributors:
9 * Jeff Martin - initial API and implementation 9 * Jeff Martin - initial API and implementation
10 ******************************************************************************/ 10 ******************************************************************************/
11
11package cuchaz.enigma.mapping; 12package cuchaz.enigma.mapping;
12 13
13import cuchaz.enigma.throwables.IllegalNameException; 14import cuchaz.enigma.throwables.IllegalNameException;
14 15
15public class FieldMapping implements Comparable<FieldMapping>, MemberMapping<FieldEntry> { 16public class FieldMapping implements Comparable<FieldMapping>, MemberMapping<FieldEntry> {
16 17
17 private String obfName; 18 private String obfName;
18 private String deobfName; 19 private String deobfName;
19 private Type obfType; 20 private Type obfType;
20 private Mappings.EntryModifier modifier; 21 private Mappings.EntryModifier modifier;
21 22
22 public FieldMapping(String obfName, Type obfType, String deobfName, Mappings.EntryModifier modifier) { 23 public FieldMapping(String obfName, Type obfType, String deobfName, Mappings.EntryModifier modifier) {
23 this.obfName = obfName; 24 this.obfName = obfName;
24 this.deobfName = NameValidator.validateFieldName(deobfName); 25 this.deobfName = NameValidator.validateFieldName(deobfName);
25 this.obfType = obfType; 26 this.obfType = obfType;
26 this.modifier = modifier; 27 this.modifier = modifier;
27 } 28 }
28 29
29 public FieldMapping(FieldMapping other, ClassNameReplacer obfClassNameReplacer) { 30 public FieldMapping(FieldMapping other, ClassNameReplacer obfClassNameReplacer) {
30 this.obfName = other.obfName; 31 this.obfName = other.obfName;
31 this.deobfName = other.deobfName; 32 this.deobfName = other.deobfName;
32 this.modifier = other.modifier; 33 this.modifier = other.modifier;
33 this.obfType = new Type(other.obfType, obfClassNameReplacer); 34 this.obfType = new Type(other.obfType, obfClassNameReplacer);
34 } 35 }
35 36
36 @Override 37 @Override
37 public FieldEntry getObfEntry(ClassEntry classEntry) { 38 public FieldEntry getObfEntry(ClassEntry classEntry) {
38 return new FieldEntry(classEntry, this.obfName, this.obfType); 39 return new FieldEntry(classEntry, this.obfName, this.obfType);
39 } 40 }
40 41
41 @Override 42 @Override
42 public String getObfName() { 43 public String getObfName() {
43 return this.obfName; 44 return this.obfName;
44 } 45 }
45 46
46 public String getDeobfName() { 47 public void setObfName(String name) {
47 return this.deobfName; 48 try {
48 } 49 NameValidator.validateMethodName(name);
49 50 } catch (IllegalNameException ex) {
50 public void setDeobfName(String val) { 51 // Invalid name, damn obfuscation! Map to a deob name with another name to avoid issues
51 this.deobfName = NameValidator.validateFieldName(val); 52 if (this.deobfName == null) {
52 } 53 System.err.println("WARNING: " + name + " is conflicting, auto deobfuscate to " + (name + "_auto_deob"));
53 54 setDeobfName(name + "_auto_deob");
54 public void setObfName(String name) { 55 }
55 try 56 }
56 { 57 this.obfName = name;
57 NameValidator.validateMethodName(name); 58 }
58 } catch (IllegalNameException ex) 59
59 { 60 public String getDeobfName() {
60 // Invalid name, damn obfuscation! Map to a deob name with another name to avoid issues 61 return this.deobfName;
61 if (this.deobfName == null) 62 }
62 { 63
63 System.err.println("WARNING: " + name + " is conflicting, auto deobfuscate to " + (name + "_auto_deob")); 64 public void setDeobfName(String val) {
64 setDeobfName(name + "_auto_deob"); 65 this.deobfName = NameValidator.validateFieldName(val);
65 } 66 }
66 } 67
67 this.obfName = name; 68 public Type getObfType() {
68 } 69 return this.obfType;
69 70 }
70 public Type getObfType() { 71
71 return this.obfType; 72 public void setObfType(Type val) {
72 } 73 this.obfType = val;
73 74 }
74 public void setObfType(Type val) { 75
75 this.obfType = val; 76 public Mappings.EntryModifier getModifier() {
76 } 77 return modifier;
77 78 }
78 public void setModifier(Mappings.EntryModifier modifier) 79
79 { 80 public void setModifier(Mappings.EntryModifier modifier) {
80 this.modifier = modifier; 81 this.modifier = modifier;
81 } 82 }
82 83
83 public Mappings.EntryModifier getModifier() 84 @Override
84 { 85 public int compareTo(FieldMapping other) {
85 return modifier; 86 return (this.obfName + this.obfType).compareTo(other.obfName + other.obfType);
86 } 87 }
87 88
88 @Override 89 public boolean renameObfClass(final String oldObfClassName, final String newObfClassName) {
89 public int compareTo(FieldMapping other) { 90 // rename obf classes in the type
90 return (this.obfName + this.obfType).compareTo(other.obfName + other.obfType); 91 Type newType = new Type(this.obfType, className ->
91 } 92 {
92 93 if (className.equals(oldObfClassName)) {
93 public boolean renameObfClass(final String oldObfClassName, final String newObfClassName) { 94 return newObfClassName;
94 // rename obf classes in the type 95 }
95 Type newType = new Type(this.obfType, className -> 96 return null;
96 { 97 });
97 if (className.equals(oldObfClassName)) { 98
98 return newObfClassName; 99 if (!newType.equals(this.obfType)) {
99 } 100 this.obfType = newType;
100 return null; 101 return true;
101 }); 102 }
102 103 return false;
103 if (!newType.equals(this.obfType)) { 104 }
104 this.obfType = newType;
105 return true;
106 }
107 return false;
108 }
109 105
110} 106}