// // [% idstr %] package [% package %]; [% FOREACH import = imports -%] import [% import %]; [% END -%] /** * Dispatches calls to a {@link [% name %]Receiver} instance. */ public class [% name %]Decoder extends InvocationDecoder { /** The generated hash code used to identify this receiver class. */ public static final String RECEIVER_CODE = "[% receiver_code %]"; [% FOREACH method = methods -%] /** The method id used to dispatch {@link [% name %]Receiver#[% method.mname %]} * notifications. */ public static final int [% method.mcode %] = [% method.mcodeval %]; [% END -%] /** * Creates a decoder that may be registered to dispatch invocation * service notifications to the specified receiver. */ public [% name %]Decoder ([% name %]Receiver receiver) { this.receiver = receiver; } // documentation inherited public String getReceiverCode () { return RECEIVER_CODE; } // documentation inherited public void dispatchNotification (int methodId, Object[] args) { switch (methodId) { [% FOREACH method = methods -%] case [% method.mcode %]: (([% name %]Receiver)receiver).[% method.mname %]( [% method.unwrapped_args %] ); return; [% END -%] default: super.dispatchNotification(methodId, args); } } }