diff options
Diffstat (limited to 'src/cuchaz/enigma/mapping/Ancestries.java')
| -rw-r--r-- | src/cuchaz/enigma/mapping/Ancestries.java | 22 |
1 files changed, 21 insertions, 1 deletions
diff --git a/src/cuchaz/enigma/mapping/Ancestries.java b/src/cuchaz/enigma/mapping/Ancestries.java index b7a5e24..f77a00e 100644 --- a/src/cuchaz/enigma/mapping/Ancestries.java +++ b/src/cuchaz/enigma/mapping/Ancestries.java | |||
| @@ -26,6 +26,7 @@ import javassist.CtClass; | |||
| 26 | import javassist.NotFoundException; | 26 | import javassist.NotFoundException; |
| 27 | import javassist.bytecode.Descriptor; | 27 | import javassist.bytecode.Descriptor; |
| 28 | 28 | ||
| 29 | import com.beust.jcommander.internal.Lists; | ||
| 29 | import com.google.common.collect.Maps; | 30 | import com.google.common.collect.Maps; |
| 30 | 31 | ||
| 31 | import cuchaz.enigma.Constants; | 32 | import cuchaz.enigma.Constants; |
| @@ -121,11 +122,30 @@ public class Ancestries implements Serializable | |||
| 121 | while( className != null ) | 122 | while( className != null ) |
| 122 | { | 123 | { |
| 123 | className = getSuperclassName( className ); | 124 | className = getSuperclassName( className ); |
| 124 | ancestors.add( className ); | 125 | if( className != null ) |
| 126 | { | ||
| 127 | ancestors.add( className ); | ||
| 128 | } | ||
| 125 | } | 129 | } |
| 126 | return ancestors; | 130 | return ancestors; |
| 127 | } | 131 | } |
| 128 | 132 | ||
| 133 | public List<String> getSubclasses( String className ) | ||
| 134 | { | ||
| 135 | // linear search is fast enough for now | ||
| 136 | List<String> subclasses = Lists.newArrayList(); | ||
| 137 | for( Map.Entry<String,String> entry : m_superclasses.entrySet() ) | ||
| 138 | { | ||
| 139 | String subclass = entry.getKey(); | ||
| 140 | String superclass = entry.getValue(); | ||
| 141 | if( className.equals( superclass ) ) | ||
| 142 | { | ||
| 143 | subclasses.add( subclass ); | ||
| 144 | } | ||
| 145 | } | ||
| 146 | return subclasses; | ||
| 147 | } | ||
| 148 | |||
| 129 | private boolean isJre( String className ) | 149 | private boolean isJre( String className ) |
| 130 | { | 150 | { |
| 131 | return className.startsWith( "java/" ) | 151 | return className.startsWith( "java/" ) |