summaryrefslogtreecommitdiff
path: root/src/main/java/cuchaz/enigma/mapping
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/cuchaz/enigma/mapping')
-rw-r--r--src/main/java/cuchaz/enigma/mapping/DirectionalTranslator.java14
-rw-r--r--src/main/java/cuchaz/enigma/mapping/entry/ClassEntry.java4
2 files changed, 16 insertions, 2 deletions
diff --git a/src/main/java/cuchaz/enigma/mapping/DirectionalTranslator.java b/src/main/java/cuchaz/enigma/mapping/DirectionalTranslator.java
index ac17999..b0bb129 100644
--- a/src/main/java/cuchaz/enigma/mapping/DirectionalTranslator.java
+++ b/src/main/java/cuchaz/enigma/mapping/DirectionalTranslator.java
@@ -48,13 +48,23 @@ public class DirectionalTranslator implements Translator {
48 48
49 @Override 49 @Override
50 public ClassEntry getTranslatedClass(ClassEntry entry) { 50 public ClassEntry getTranslatedClass(ClassEntry entry) {
51 String className = entry.isInnerClass() ? translateInnerClassName(entry) : translateClassName(entry); 51 String className;
52 if (entry.isArray()) {
53 className = this.getTranslatedTypeDesc(new TypeDescriptor(entry.getName())).toString();
54 } else {
55 className = entry.isInnerClass() ? translateInnerClassName(entry) : translateClassName(entry);
56 }
52 return new ClassEntry(className); 57 return new ClassEntry(className);
53 } 58 }
54 59
55 @Override 60 @Override
56 public ClassDefEntry getTranslatedClassDef(ClassDefEntry entry) { 61 public ClassDefEntry getTranslatedClassDef(ClassDefEntry entry) {
57 String className = entry.isInnerClass() ? translateInnerClassName(entry) : translateClassName(entry); 62 String className;
63 if (entry.isArray()) {
64 className = this.getTranslatedTypeDesc(new TypeDescriptor(entry.getName())).toString();
65 } else {
66 className = entry.isInnerClass() ? translateInnerClassName(entry) : translateClassName(entry);
67 }
58 Signature translatedSignature = this.getTranslatedSignature(entry.getSignature()); 68 Signature translatedSignature = this.getTranslatedSignature(entry.getSignature());
59 return new ClassDefEntry(className, translatedSignature, getClassModifier(entry).transform(entry.getAccess())); 69 return new ClassDefEntry(className, translatedSignature, getClassModifier(entry).transform(entry.getAccess()));
60 } 70 }
diff --git a/src/main/java/cuchaz/enigma/mapping/entry/ClassEntry.java b/src/main/java/cuchaz/enigma/mapping/entry/ClassEntry.java
index fc604d8..c795825 100644
--- a/src/main/java/cuchaz/enigma/mapping/entry/ClassEntry.java
+++ b/src/main/java/cuchaz/enigma/mapping/entry/ClassEntry.java
@@ -77,6 +77,10 @@ public class ClassEntry implements Entry {
77 return this.name; 77 return this.name;
78 } 78 }
79 79
80 public boolean isArray() {
81 return this.name.lastIndexOf('[') >= 0;
82 }
83
80 public boolean isInnerClass() { 84 public boolean isInnerClass() {
81 return this.name.lastIndexOf('$') >= 0; 85 return this.name.lastIndexOf('$') >= 0;
82 } 86 }