Commit Graph

8 Commits

Author SHA1 Message Date
Michael Bayne e292e04e65 More fiddling and improvements to code generation.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4411 542714f4-19e9-0310-aa3c-eee0fc999fb1
2006-10-05 01:33:25 +00:00
Michael Bayne 4c2e242261 More jiggery pokery to create blank TypedArray instances of the proper type
when we encounter the pattern "new SomeClass[0]". Le whee!


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4410 542714f4-19e9-0310-aa3c-eee0fc999fb1
2006-10-05 00:30:32 +00:00
Michael Bayne e4438e4070 We need to notice and observe the @ActionScript(name="foo") annotations when
slurping comments from Java source files.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4408 542714f4-19e9-0310-aa3c-eee0fc999fb1
2006-10-05 00:18:06 +00:00
Michael Bayne 4a9fde7830 Now we have a cool @ActionScript annotation that allows us to specify different
field/method names for the ActionScript version of a class (or to omit
something entirely). This removes the need for special case hackery for
toStringBuilder().

In order for annotations to work, however, we have to require that the
GenActionScriptTask be loaded from the same classloader that loads the classes
to be reflected upon. Before we only reflected on the target classes, never
instantiated them. Annotations are actually instantiated, so we have to be able
to create an instance of the ActionScript.class that is compiled into our
target classes and assign it to a reference that is compiled into
GenActionScriptTask. Beware the complexities of dealing with multiple class
loaders.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4405 542714f4-19e9-0310-aa3c-eee0fc999fb1
2006-10-04 23:35:41 +00:00
Michael Bayne ed51df0807 Add Hashable for classes that override hashCode(); strip out *Codes interfaces
because we can't do that in ActionScript; properly handle static var and
non-static const.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4404 542714f4-19e9-0310-aa3c-eee0fc999fb1
2006-10-04 21:25:16 +00:00
Michael Bayne 874d8eaa8f When generating ActionScript streamable classes, use TypedArray for fields but
Array for static constants and method arguments.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4403 542714f4-19e9-0310-aa3c-eee0fc999fb1
2006-10-04 21:08:12 +00:00
Michael Bayne f4a25e9521 Use TypedArray for array fields when converting a Streamable into ActionScript.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4402 542714f4-19e9-0310-aa3c-eee0fc999fb1
2006-10-04 21:03:05 +00:00
Michael Bayne 8015764c61 Don't look now kids, but it's automatic generation of ActionScript code from
Java. Of course this is a very limited translation facility that is mainly
focused on auto-generating Streamable ActionScript classes from their Java
originals, and it doesn't actually convert method bodies, just field and method
declarations, initial values, and such.

Most of our Streamable classes don't have much in the way of real methods, and
the autogenerator will stick new methods in when they show up on the Java side
so at least we'll *know* that they need to be implemented. And the main thing:
readObject and writeObject are in fact implemented by the code generator so at
least we won't be plagued by annoying streaming errors when we change something
on the Java side and forget to change the ActionScript side.

Next up, auto-generating InvocationService interfaces and InvocationMarshaller
implementations in ActionScript and ActionScript versions of DObjects.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4394 542714f4-19e9-0310-aa3c-eee0fc999fb1
2006-10-04 02:05:15 +00:00