summaryrefslogtreecommitdiff
path: root/src/cuchaz/enigma/mapping/ClassEntry.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/cuchaz/enigma/mapping/ClassEntry.java')
-rw-r--r--src/cuchaz/enigma/mapping/ClassEntry.java22
1 files changed, 19 insertions, 3 deletions
diff --git a/src/cuchaz/enigma/mapping/ClassEntry.java b/src/cuchaz/enigma/mapping/ClassEntry.java
index 69f171a..69e66bc 100644
--- a/src/cuchaz/enigma/mapping/ClassEntry.java
+++ b/src/cuchaz/enigma/mapping/ClassEntry.java
@@ -11,6 +11,7 @@
11package cuchaz.enigma.mapping; 11package cuchaz.enigma.mapping;
12 12
13import java.io.Serializable; 13import java.io.Serializable;
14import java.util.List;
14 15
15public class ClassEntry implements Entry, Serializable { 16public class ClassEntry implements Entry, Serializable {
16 17
@@ -114,13 +115,28 @@ public class ClassEntry implements Entry, Serializable {
114 } 115 }
115 116
116 public String getSimpleName() { 117 public String getSimpleName() {
117 if (isInnerClass()) {
118 return getInnerClassName();
119 }
120 int pos = m_name.lastIndexOf('/'); 118 int pos = m_name.lastIndexOf('/');
121 if (pos > 0) { 119 if (pos > 0) {
122 return m_name.substring(pos + 1); 120 return m_name.substring(pos + 1);
123 } 121 }
124 return m_name; 122 return m_name;
125 } 123 }
124
125 public ClassEntry buildClassEntry(List<ClassEntry> classChain) {
126 assert(classChain.contains(this));
127 StringBuilder buf = new StringBuilder();
128 for (ClassEntry chainEntry : classChain) {
129 if (buf.length() == 0) {
130 buf.append(chainEntry.getName());
131 } else {
132 buf.append("$");
133 buf.append(chainEntry.isInnerClass() ? chainEntry.getInnerClassName() : chainEntry.getSimpleName());
134 }
135
136 if (chainEntry == this) {
137 break;
138 }
139 }
140 return new ClassEntry(buf.toString());
141 }
126} 142}