diff options
Diffstat (limited to 'test/cuchaz/enigma/TokenChecker.java')
| -rw-r--r-- | test/cuchaz/enigma/TokenChecker.java | 46 |
1 files changed, 20 insertions, 26 deletions
diff --git a/test/cuchaz/enigma/TokenChecker.java b/test/cuchaz/enigma/TokenChecker.java index c0852f3..524c5ec 100644 --- a/test/cuchaz/enigma/TokenChecker.java +++ b/test/cuchaz/enigma/TokenChecker.java | |||
| @@ -23,47 +23,41 @@ import cuchaz.enigma.analysis.SourceIndex; | |||
| 23 | import cuchaz.enigma.analysis.Token; | 23 | import cuchaz.enigma.analysis.Token; |
| 24 | import cuchaz.enigma.mapping.Entry; | 24 | import cuchaz.enigma.mapping.Entry; |
| 25 | 25 | ||
| 26 | public class TokenChecker | 26 | public class TokenChecker { |
| 27 | { | 27 | |
| 28 | private Deobfuscator m_deobfuscator; | 28 | private Deobfuscator m_deobfuscator; |
| 29 | 29 | ||
| 30 | protected TokenChecker( File jarFile ) | 30 | protected TokenChecker(File jarFile) throws IOException { |
| 31 | throws IOException | 31 | m_deobfuscator = new Deobfuscator(jarFile); |
| 32 | { | ||
| 33 | m_deobfuscator = new Deobfuscator( jarFile ); | ||
| 34 | } | 32 | } |
| 35 | 33 | ||
| 36 | protected String getDeclarationToken( Entry entry ) | 34 | protected String getDeclarationToken(Entry entry) { |
| 37 | { | ||
| 38 | // decompile the class | 35 | // decompile the class |
| 39 | CompilationUnit tree = m_deobfuscator.getSourceTree( entry.getClassName() ); | 36 | CompilationUnit tree = m_deobfuscator.getSourceTree(entry.getClassName()); |
| 40 | // DEBUG | 37 | // DEBUG |
| 41 | //tree.acceptVisitor( new TreeDumpVisitor( new File( "tree." + entry.getClassName().replace( '/', '.' ) + ".txt" ) ), null ); | 38 | // tree.acceptVisitor( new TreeDumpVisitor( new File( "tree." + entry.getClassName().replace( '/', '.' ) + ".txt" ) ), null ); |
| 42 | String source = m_deobfuscator.getSource( tree ); | 39 | String source = m_deobfuscator.getSource(tree); |
| 43 | SourceIndex index = m_deobfuscator.getSourceIndex( tree, source ); | 40 | SourceIndex index = m_deobfuscator.getSourceIndex(tree, source); |
| 44 | 41 | ||
| 45 | // get the token value | 42 | // get the token value |
| 46 | Token token = index.getDeclarationToken( entry ); | 43 | Token token = index.getDeclarationToken(entry); |
| 47 | if( token == null ) | 44 | if (token == null) { |
| 48 | { | ||
| 49 | return null; | 45 | return null; |
| 50 | } | 46 | } |
| 51 | return source.substring( token.start, token.end ); | 47 | return source.substring(token.start, token.end); |
| 52 | } | 48 | } |
| 53 | 49 | ||
| 54 | @SuppressWarnings( "unchecked" ) | 50 | @SuppressWarnings("unchecked") |
| 55 | protected Collection<String> getReferenceTokens( EntryReference<? extends Entry,? extends Entry> reference ) | 51 | protected Collection<String> getReferenceTokens(EntryReference<? extends Entry,? extends Entry> reference) { |
| 56 | { | ||
| 57 | // decompile the class | 52 | // decompile the class |
| 58 | CompilationUnit tree = m_deobfuscator.getSourceTree( reference.context.getClassName() ); | 53 | CompilationUnit tree = m_deobfuscator.getSourceTree(reference.context.getClassName()); |
| 59 | String source = m_deobfuscator.getSource( tree ); | 54 | String source = m_deobfuscator.getSource(tree); |
| 60 | SourceIndex index = m_deobfuscator.getSourceIndex( tree, source ); | 55 | SourceIndex index = m_deobfuscator.getSourceIndex(tree, source); |
| 61 | 56 | ||
| 62 | // get the token values | 57 | // get the token values |
| 63 | List<String> values = Lists.newArrayList(); | 58 | List<String> values = Lists.newArrayList(); |
| 64 | for( Token token : index.getReferenceTokens( (EntryReference<Entry,Entry>)reference ) ) | 59 | for (Token token : index.getReferenceTokens((EntryReference<Entry,Entry>)reference)) { |
| 65 | { | 60 | values.add(source.substring(token.start, token.end)); |
| 66 | values.add( source.substring( token.start, token.end ) ); | ||
| 67 | } | 61 | } |
| 68 | return values; | 62 | return values; |
| 69 | } | 63 | } |