diff options
Diffstat (limited to 'src/cuchaz/enigma/mapping/ClassEntry.java')
| -rw-r--r-- | src/cuchaz/enigma/mapping/ClassEntry.java | 22 |
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 @@ | |||
| 11 | package cuchaz.enigma.mapping; | 11 | package cuchaz.enigma.mapping; |
| 12 | 12 | ||
| 13 | import java.io.Serializable; | 13 | import java.io.Serializable; |
| 14 | import java.util.List; | ||
| 14 | 15 | ||
| 15 | public class ClassEntry implements Entry, Serializable { | 16 | public 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 | } |