thing before committing instead of just going "oh yeah, I've been having this stuff
sitting around uncommitted for a while waiting on it to be blessed" and missing
out on things that'd changed in the meantime.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5400 542714f4-19e9-0310-aa3c-eee0fc999fb1
that case, suppress unchecked warnings. We do this on the whole method because
doing it for each argument would vastly complicate things and we can be fairly
confident that this generated code will not have other dangerous casts added to
it that would be hidden by the suppression.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5291 542714f4-19e9-0310-aa3c-eee0fc999fb1
CheckStyle. The checks are slightly looser than I'd like but way better than
nothing and we get a bunch of other useful warnings like shadowed names and
other handy bits.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5253 542714f4-19e9-0310-aa3c-eee0fc999fb1
Eclipse doesn't know about javadoc, we should file a bug.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5246 542714f4-19e9-0310-aa3c-eee0fc999fb1
I've rerun the code generators without those in vilya & yohoho and everything seems happy,
so let's give it a whirl.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5225 542714f4-19e9-0310-aa3c-eee0fc999fb1
TODO: provide a convertAllLangTypes method instead of adding new types as they crop up
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5189 542714f4-19e9-0310-aa3c-eee0fc999fb1
allowing the use of annotations to customize transport for
DObject fields and service/receiver methods.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5099 542714f4-19e9-0310-aa3c-eee0fc999fb1
* Created concept of a pattern for transforming imports rather than have some
methods assume a suffix is provided and others assume a prefix
* Leave full array types in import set initially so that they can be dealt with
differently by different code exporters
* Added more primitive types and array types for action script marshallers,
including conversion to TypedArray
* Add listener marshaller mungings for action script marshallers' imports
* Added handling for array imports for action script services
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5048 542714f4-19e9-0310-aa3c-eee0fc999fb1
clean action script files with no unnecessary imports
* New class ImportSet to facilitate the operations being performed manually
throughout the code. Also removes the need for rawimports
* Threaded ImportSet through all places where imports and rawimports were used
and removed magic parameters to control import generation
* Added an ImportSet instance to ServiceListener, this was key to the action
script fixes
* Moved all the import tweaking and munging logic into the generate* methods
and made specific to code being generated (removed overreaching stuff
from ServiceMethod, this was part of the problem)
* Removed blanket imports from tmpl files
* Removed unused methods
* Fixed tabs from last commit
* Quick and dirty script to check for unused imports
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5041 542714f4-19e9-0310-aa3c-eee0fc999fb1
* ServiceMethod import options:
- Made argument type imports ignore first N args (0 for old behavior)
- Made marshaller listener imports optional
* Added InvocationTask._verbose and several dumps of current imports to help
track down future superfluous imports
* Made the import of ServiceListener method arguments' types optional
* Wrapped up most of processService code into protected inner class
ServiceDescription and made configurable:
- Optional import of the types of the first arguments of the service methods
- Optinoal import of the types of listener method arguments
* Changed generate methods to take the service class and construct their own
local ServiceDescription configured for their target
* Removed global import of service class and do it explicitly where required
(via method addServiceImport)
* Made some imports conditional
- InvocationResponseEvent for mashallers only if service has some listeners
- InvocationException for providers only if service has some methods with
listener arguments
* Removed unused variables and imports
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5036 542714f4-19e9-0310-aa3c-eee0fc999fb1
interfaces, and Marshallers for same. The remaining snag has to do with the
annoyance of ActionScript not supporting inner classes, which means that
ChatService.TellListener for example has to become ChatService_TellListener.
The code for generating the Java marshaller knows to add an import for
ChatService if some random invocation service interface happens to reference
ChatService.TellListener, but now it needs to be made to know to add an import
for ChatService_TellListener in ActionScript land and it has to do it in a way
that doesn't fuck up the Java code generation. Whee!
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4397 542714f4-19e9-0310-aa3c-eee0fc999fb1
unmarshalled into an ArrayList on the receiver. Along the way, I improved
support for generic types as arguments to invocation services (which required
one unfortunate "sweeping" warning suppression, but since this is in generated
code, I think we can be sure it won't be doing anything untoward).
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4375 542714f4-19e9-0310-aa3c-eee0fc999fb1
required some serious bending and folding of the generic type system, but for
the most part we managed to avoid any mutilating. The gendobj task now
generates properly typed "addToXXX" and "updateXXX" DSet methods based on the
parameterized type of the DSet. This might cause unrecompiled code to break,
but I don't think there are many cases in the base toolkit where people call
DSet adders or updaters. We'll see and I'll add backwards compatibility
versions for cases where we need them to support GG games (everything else we
can just recompile).
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4245 542714f4-19e9-0310-aa3c-eee0fc999fb1
genericize Narya data structures, nor make the existing code type safe. That's
going to be an extremely large project.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4007 542714f4-19e9-0310-aa3c-eee0fc999fb1
not be generated. Cleaned up the generated provider interface formatting a bit.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3715 542714f4-19e9-0310-aa3c-eee0fc999fb1
and FooDispatcher. This means we will no longer be able to make FooProvider a
class that directly handles FooService methods, but the savings in confusion
for first time users of the framework will more than make up for the minor
inconvenience.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3714 542714f4-19e9-0310-aa3c-eee0fc999fb1
accomplish our "previous value" support in the distributed object system
without using reflection and could also avoid using reflection in the case
where we have already applied the event on the server (which is generally
the case on the server).
Rather than hacking up the gendobj script, I took this opportunity also to
rewrite the DObject generation script as an Ant task and in doing so,
implemented another recent idea which is that we can just augment the
FooObject.java file instead of having a separate .dobj and .java file.
You'd think it was spring there's so much cleaning going on.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3284 542714f4-19e9-0310-aa3c-eee0fc999fb1
Narya. I added directives to the compile line to prevent that from
happening again.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3247 542714f4-19e9-0310-aa3c-eee0fc999fb1
load the project's service classes so that they are comparable. Also sort
everything to avoid pointless changes in regenerated source files when
Java decides to arbitrarily return the methods in a different order.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3242 542714f4-19e9-0310-aa3c-eee0fc999fb1
GenReceiverTask (not yet implemented). Modified the task so that it can
load the service classes via a classpath declared inside ant, avoiding the
need to put project classes in Ant's classpath.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3240 542714f4-19e9-0310-aa3c-eee0fc999fb1
dispatching classes in Java to eliminate annoying dependency on the output
format of JDK 1.4.1's javap.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3238 542714f4-19e9-0310-aa3c-eee0fc999fb1