summaryrefslogtreecommitdiff
path: root/src/main/java/cuchaz/enigma/analysis/EntryRenamer.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/analysis/EntryRenamer.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/analysis/EntryRenamer.java')
-rw-r--r--src/main/java/cuchaz/enigma/analysis/EntryRenamer.java232
1 files changed, 116 insertions, 116 deletions
diff --git a/src/main/java/cuchaz/enigma/analysis/EntryRenamer.java b/src/main/java/cuchaz/enigma/analysis/EntryRenamer.java
index 7233fcf..75806c3 100644
--- a/src/main/java/cuchaz/enigma/analysis/EntryRenamer.java
+++ b/src/main/java/cuchaz/enigma/analysis/EntryRenamer.java
@@ -8,140 +8,140 @@
8 * Contributors: 8 * Contributors:
9 * Jeff Martin - initial API and implementation 9 * Jeff Martin - initial API and implementation
10 ******************************************************************************/ 10 ******************************************************************************/
11
11package cuchaz.enigma.analysis; 12package cuchaz.enigma.analysis;
12 13
13import com.google.common.collect.Lists; 14import com.google.common.collect.Lists;
14import com.google.common.collect.Multimap; 15import com.google.common.collect.Multimap;
15import com.google.common.collect.Sets; 16import com.google.common.collect.Sets;
17import cuchaz.enigma.mapping.*;
16 18
17import java.util.AbstractMap; 19import java.util.AbstractMap;
18import java.util.List; 20import java.util.List;
19import java.util.Map; 21import java.util.Map;
20import java.util.Set; 22import java.util.Set;
21 23
22import cuchaz.enigma.mapping.*;
23
24public class EntryRenamer { 24public class EntryRenamer {
25 25
26 public static <T> void renameClassesInSet(Map<String, String> renames, Set<T> set) { 26 public static <T> void renameClassesInSet(Map<String, String> renames, Set<T> set) {
27 List<T> entries = Lists.newArrayList(); 27 List<T> entries = Lists.newArrayList();
28 for (T val : set) { 28 for (T val : set) {
29 entries.add(renameClassesInThing(renames, val)); 29 entries.add(renameClassesInThing(renames, val));
30 } 30 }
31 set.clear(); 31 set.clear();
32 set.addAll(entries); 32 set.addAll(entries);
33 } 33 }
34 34
35 public static <Key, Val> void renameClassesInMap(Map<String, String> renames, Map<Key, Val> map) { 35 public static <Key, Val> void renameClassesInMap(Map<String, String> renames, Map<Key, Val> map) {
36 // for each key/value pair... 36 // for each key/value pair...
37 Set<Map.Entry<Key, Val>> entriesToAdd = Sets.newHashSet(); 37 Set<Map.Entry<Key, Val>> entriesToAdd = Sets.newHashSet();
38 for (Map.Entry<Key, Val> entry : map.entrySet()) { 38 for (Map.Entry<Key, Val> entry : map.entrySet()) {
39 entriesToAdd.add(new AbstractMap.SimpleEntry<>(renameClassesInThing(renames, entry.getKey()), renameClassesInThing(renames, entry.getValue()))); 39 entriesToAdd.add(new AbstractMap.SimpleEntry<>(renameClassesInThing(renames, entry.getKey()), renameClassesInThing(renames, entry.getValue())));
40 } 40 }
41 map.clear(); 41 map.clear();
42 for (Map.Entry<Key, Val> entry : entriesToAdd) { 42 for (Map.Entry<Key, Val> entry : entriesToAdd) {
43 map.put(entry.getKey(), entry.getValue()); 43 map.put(entry.getKey(), entry.getValue());
44 } 44 }
45 } 45 }
46 46
47 public static <Key, Val> void renameClassesInMultimap(Map<String, String> renames, Multimap<Key, Val> map) { 47 public static <Key, Val> void renameClassesInMultimap(Map<String, String> renames, Multimap<Key, Val> map) {
48 // for each key/value pair... 48 // for each key/value pair...
49 Set<Map.Entry<Key, Val>> entriesToAdd = Sets.newHashSet(); 49 Set<Map.Entry<Key, Val>> entriesToAdd = Sets.newHashSet();
50 for (Map.Entry<Key, Val> entry : map.entries()) { 50 for (Map.Entry<Key, Val> entry : map.entries()) {
51 entriesToAdd.add(new AbstractMap.SimpleEntry<>(renameClassesInThing(renames, entry.getKey()), renameClassesInThing(renames, entry.getValue()))); 51 entriesToAdd.add(new AbstractMap.SimpleEntry<>(renameClassesInThing(renames, entry.getKey()), renameClassesInThing(renames, entry.getValue())));
52 } 52 }
53 map.clear(); 53 map.clear();
54 for (Map.Entry<Key, Val> entry : entriesToAdd) { 54 for (Map.Entry<Key, Val> entry : entriesToAdd) {
55 map.put(entry.getKey(), entry.getValue()); 55 map.put(entry.getKey(), entry.getValue());
56 } 56 }
57 } 57 }
58 58
59 public static <Key, Val> void renameMethodsInMultimap(Map<MethodEntry, MethodEntry> renames, Multimap<Key, Val> map) { 59 public static <Key, Val> void renameMethodsInMultimap(Map<MethodEntry, MethodEntry> renames, Multimap<Key, Val> map) {
60 // for each key/value pair... 60 // for each key/value pair...
61 Set<Map.Entry<Key, Val>> entriesToAdd = Sets.newHashSet(); 61 Set<Map.Entry<Key, Val>> entriesToAdd = Sets.newHashSet();
62 for (Map.Entry<Key, Val> entry : map.entries()) { 62 for (Map.Entry<Key, Val> entry : map.entries()) {
63 entriesToAdd.add(new AbstractMap.SimpleEntry<>(renameMethodsInThing(renames, entry.getKey()), renameMethodsInThing(renames, entry.getValue()))); 63 entriesToAdd.add(new AbstractMap.SimpleEntry<>(renameMethodsInThing(renames, entry.getKey()), renameMethodsInThing(renames, entry.getValue())));
64 } 64 }
65 map.clear(); 65 map.clear();
66 for (Map.Entry<Key, Val> entry : entriesToAdd) { 66 for (Map.Entry<Key, Val> entry : entriesToAdd) {
67 map.put(entry.getKey(), entry.getValue()); 67 map.put(entry.getKey(), entry.getValue());
68 } 68 }
69 } 69 }
70 70
71 public static <Key, Val> void renameMethodsInMap(Map<MethodEntry, MethodEntry> renames, Map<Key, Val> map) { 71 public static <Key, Val> void renameMethodsInMap(Map<MethodEntry, MethodEntry> renames, Map<Key, Val> map) {
72 // for each key/value pair... 72 // for each key/value pair...
73 Set<Map.Entry<Key, Val>> entriesToAdd = Sets.newHashSet(); 73 Set<Map.Entry<Key, Val>> entriesToAdd = Sets.newHashSet();
74 for (Map.Entry<Key, Val> entry : map.entrySet()) { 74 for (Map.Entry<Key, Val> entry : map.entrySet()) {
75 entriesToAdd.add(new AbstractMap.SimpleEntry<>(renameMethodsInThing(renames, entry.getKey()), renameMethodsInThing(renames, entry.getValue()))); 75 entriesToAdd.add(new AbstractMap.SimpleEntry<>(renameMethodsInThing(renames, entry.getKey()), renameMethodsInThing(renames, entry.getValue())));
76 } 76 }
77 map.clear(); 77 map.clear();
78 for (Map.Entry<Key, Val> entry : entriesToAdd) { 78 for (Map.Entry<Key, Val> entry : entriesToAdd) {
79 map.put(entry.getKey(), entry.getValue()); 79 map.put(entry.getKey(), entry.getValue());
80 } 80 }
81 } 81 }
82 82
83 @SuppressWarnings("unchecked") 83 @SuppressWarnings("unchecked")
84 public static <T> T renameMethodsInThing(Map<MethodEntry,MethodEntry> renames, T thing) { 84 public static <T> T renameMethodsInThing(Map<MethodEntry, MethodEntry> renames, T thing) {
85 if (thing instanceof MethodEntry) { 85 if (thing instanceof MethodEntry) {
86 MethodEntry methodEntry = (MethodEntry)thing; 86 MethodEntry methodEntry = (MethodEntry) thing;
87 MethodEntry newMethodEntry = renames.get(methodEntry); 87 MethodEntry newMethodEntry = renames.get(methodEntry);
88 if (newMethodEntry != null) { 88 if (newMethodEntry != null) {
89 return (T)new MethodEntry( 89 return (T) new MethodEntry(
90 methodEntry.getClassEntry(), 90 methodEntry.getClassEntry(),
91 newMethodEntry.getName(), 91 newMethodEntry.getName(),
92 methodEntry.getSignature() 92 methodEntry.getSignature()
93 ); 93 );
94 } 94 }
95 return thing; 95 return thing;
96 } else if (thing instanceof ArgumentEntry) { 96 } else if (thing instanceof ArgumentEntry) {
97 ArgumentEntry argumentEntry = (ArgumentEntry)thing; 97 ArgumentEntry argumentEntry = (ArgumentEntry) thing;
98 return (T)new ArgumentEntry( 98 return (T) new ArgumentEntry(
99 renameMethodsInThing(renames, argumentEntry.getBehaviorEntry()), 99 renameMethodsInThing(renames, argumentEntry.getBehaviorEntry()),
100 argumentEntry.getIndex(), 100 argumentEntry.getIndex(),
101 argumentEntry.getName() 101 argumentEntry.getName()
102 ); 102 );
103 } else if (thing instanceof EntryReference) { 103 } else if (thing instanceof EntryReference) {
104 EntryReference<Entry,Entry> reference = (EntryReference<Entry,Entry>)thing; 104 EntryReference<Entry, Entry> reference = (EntryReference<Entry, Entry>) thing;
105 reference.entry = renameMethodsInThing(renames, reference.entry); 105 reference.entry = renameMethodsInThing(renames, reference.entry);
106 reference.context = renameMethodsInThing(renames, reference.context); 106 reference.context = renameMethodsInThing(renames, reference.context);
107 return thing; 107 return thing;
108 } 108 }
109 return thing; 109 return thing;
110 } 110 }
111 111
112 @SuppressWarnings("unchecked") 112 @SuppressWarnings("unchecked")
113 public static <T> T renameClassesInThing(final Map<String, String> renames, T thing) { 113 public static <T> T renameClassesInThing(final Map<String, String> renames, T thing) {
114 if (thing instanceof String) { 114 if (thing instanceof String) {
115 String stringEntry = (String) thing; 115 String stringEntry = (String) thing;
116 if (renames.containsKey(stringEntry)) { 116 if (renames.containsKey(stringEntry)) {
117 return (T) renames.get(stringEntry); 117 return (T) renames.get(stringEntry);
118 } 118 }
119 } else if (thing instanceof ClassEntry) { 119 } else if (thing instanceof ClassEntry) {
120 ClassEntry classEntry = (ClassEntry) thing; 120 ClassEntry classEntry = (ClassEntry) thing;
121 return (T) new ClassEntry(renameClassesInThing(renames, classEntry.getClassName())); 121 return (T) new ClassEntry(renameClassesInThing(renames, classEntry.getClassName()));
122 } else if (thing instanceof FieldEntry) { 122 } else if (thing instanceof FieldEntry) {
123 FieldEntry fieldEntry = (FieldEntry) thing; 123 FieldEntry fieldEntry = (FieldEntry) thing;
124 return (T) new FieldEntry(renameClassesInThing(renames, fieldEntry.getClassEntry()), fieldEntry.getName(), renameClassesInThing(renames, fieldEntry.getType())); 124 return (T) new FieldEntry(renameClassesInThing(renames, fieldEntry.getClassEntry()), fieldEntry.getName(), renameClassesInThing(renames, fieldEntry.getType()));
125 } else if (thing instanceof ConstructorEntry) { 125 } else if (thing instanceof ConstructorEntry) {
126 ConstructorEntry constructorEntry = (ConstructorEntry) thing; 126 ConstructorEntry constructorEntry = (ConstructorEntry) thing;
127 return (T) new ConstructorEntry(renameClassesInThing(renames, constructorEntry.getClassEntry()), renameClassesInThing(renames, constructorEntry.getSignature())); 127 return (T) new ConstructorEntry(renameClassesInThing(renames, constructorEntry.getClassEntry()), renameClassesInThing(renames, constructorEntry.getSignature()));
128 } else if (thing instanceof MethodEntry) { 128 } else if (thing instanceof MethodEntry) {
129 MethodEntry methodEntry = (MethodEntry) thing; 129 MethodEntry methodEntry = (MethodEntry) thing;
130 return (T) new MethodEntry(renameClassesInThing(renames, methodEntry.getClassEntry()), methodEntry.getName(), renameClassesInThing(renames, methodEntry.getSignature())); 130 return (T) new MethodEntry(renameClassesInThing(renames, methodEntry.getClassEntry()), methodEntry.getName(), renameClassesInThing(renames, methodEntry.getSignature()));
131 } else if (thing instanceof ArgumentEntry) { 131 } else if (thing instanceof ArgumentEntry) {
132 ArgumentEntry argumentEntry = (ArgumentEntry) thing; 132 ArgumentEntry argumentEntry = (ArgumentEntry) thing;
133 return (T) new ArgumentEntry(renameClassesInThing(renames, argumentEntry.getBehaviorEntry()), argumentEntry.getIndex(), argumentEntry.getName()); 133 return (T) new ArgumentEntry(renameClassesInThing(renames, argumentEntry.getBehaviorEntry()), argumentEntry.getIndex(), argumentEntry.getName());
134 } else if (thing instanceof EntryReference) { 134 } else if (thing instanceof EntryReference) {
135 EntryReference<Entry, Entry> reference = (EntryReference<Entry, Entry>) thing; 135 EntryReference<Entry, Entry> reference = (EntryReference<Entry, Entry>) thing;
136 reference.entry = renameClassesInThing(renames, reference.entry); 136 reference.entry = renameClassesInThing(renames, reference.entry);
137 reference.context = renameClassesInThing(renames, reference.context); 137 reference.context = renameClassesInThing(renames, reference.context);
138 return thing; 138 return thing;
139 } else if (thing instanceof Signature) { 139 } else if (thing instanceof Signature) {
140 return (T) new Signature((Signature) thing, className -> renameClassesInThing(renames, className)); 140 return (T) new Signature((Signature) thing, className -> renameClassesInThing(renames, className));
141 } else if (thing instanceof Type) { 141 } else if (thing instanceof Type) {
142 return (T) new Type((Type) thing, className -> renameClassesInThing(renames, className)); 142 return (T) new Type((Type) thing, className -> renameClassesInThing(renames, className));
143 } 143 }
144 144
145 return thing; 145 return thing;
146 } 146 }
147} 147}