diff options
Diffstat (limited to 'src/cuchaz/enigma/Util.java')
| -rw-r--r-- | src/cuchaz/enigma/Util.java | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/src/cuchaz/enigma/Util.java b/src/cuchaz/enigma/Util.java index 84927fd..3686ef0 100644 --- a/src/cuchaz/enigma/Util.java +++ b/src/cuchaz/enigma/Util.java | |||
| @@ -12,6 +12,8 @@ package cuchaz.enigma; | |||
| 12 | 12 | ||
| 13 | import java.awt.Desktop; | 13 | import java.awt.Desktop; |
| 14 | import java.io.Closeable; | 14 | import java.io.Closeable; |
| 15 | import java.io.File; | ||
| 16 | import java.io.FileOutputStream; | ||
| 15 | import java.io.IOException; | 17 | import java.io.IOException; |
| 16 | import java.io.InputStream; | 18 | import java.io.InputStream; |
| 17 | import java.io.InputStreamReader; | 19 | import java.io.InputStreamReader; |
| @@ -19,6 +21,10 @@ import java.net.URI; | |||
| 19 | import java.net.URISyntaxException; | 21 | import java.net.URISyntaxException; |
| 20 | import java.util.jar.JarFile; | 22 | import java.util.jar.JarFile; |
| 21 | 23 | ||
| 24 | import javassist.CannotCompileException; | ||
| 25 | import javassist.CtClass; | ||
| 26 | import javassist.bytecode.Descriptor; | ||
| 27 | |||
| 22 | import com.google.common.io.CharStreams; | 28 | import com.google.common.io.CharStreams; |
| 23 | 29 | ||
| 24 | 30 | ||
| @@ -106,4 +112,18 @@ public class Util | |||
| 106 | } | 112 | } |
| 107 | } | 113 | } |
| 108 | } | 114 | } |
| 115 | |||
| 116 | public static void writeClass( CtClass c ) | ||
| 117 | { | ||
| 118 | String name = Descriptor.toJavaName( c.getName() ); | ||
| 119 | File file = new File( name + ".class" ); | ||
| 120 | try( FileOutputStream out = new FileOutputStream( file ) ) | ||
| 121 | { | ||
| 122 | out.write( c.toBytecode() ); | ||
| 123 | } | ||
| 124 | catch( IOException | CannotCompileException ex ) | ||
| 125 | { | ||
| 126 | throw new Error( ex ); | ||
| 127 | } | ||
| 128 | } | ||
| 109 | } | 129 | } |