class ProtobufRpcMethodInfo extends RpcMethodInfo {

    public ProtobufRpcMethodInfo(Method method) {
        super(method);
        try {
            this.inputGetDefaultInstanceMethod = ((Class) inputClasses[0]).getMethod("getDefaultInstance");
            this.inputInstance = (Message) inputGetDefaultInstanceMethod.invoke(null);
            this.inputParseFromMethod = ((Class) inputClasses[0]).getMethod("parseFrom", byte[].class);

            this.outputGetDefaultInstanceMethod = ((Class) outputClass).getMethod("getDefaultInstance");
            this.outputInstance = (Message) outputGetDefaultInstanceMethod.invoke(null);
            this.outputParseFromMethod = ((Class) outputClass).getMethod("parseFrom", byte[].class);

        } catch (Exception ex) {
            throw new IllegalArgumentException(ex);
        }
    }

    public  ProtobufRpcMethodInfo(Method method);

}