I have begun work on the last of the three steps in converting Java APIs to Perl 6 roles: emitting Perl 6. Now I have a method of turning this:
public interface IntTest { public static final int USELESS_CONSTANT = 4; public abstract int[][] array_returner( java.lang.String s, int i, float[] f, float[][] g ); public abstract java.lang.String object_returner() throws java.lang.NumberFormatException, java.lang.Exception; public abstract java.lang.String object_returner( java.lang.String s ) throws java.lang.NumberFormatException; public abstract void void_returner( int i ); }
Into:
# This file was automatically generated Sat Jun 2 09:06:47 2007# by java2perl6 0.1 from decompiling # IntTest using command line flags: # --classpath testjavas role IntTest { method array_returner( Str v1, Int v2, Array of Num v3, Array of Array of Num v4, ) returns Array of Array of Int { ... } multi method object_returner( ) returns Str { ... } multi method object_returner( Str v1, ) returns Str { ... } method void_returner( Int v1, ) { ... } }
Some work remains. I need to finish the command line tool to smoothly make translations like the above. I need to make sure that classes work as well as interfaces. Some documentation is also essential but absent.
Phil