/** * Generates method description and write it to buffer * * @param MethodDescriptor $descriptor Method descriptor * @param CodeStringBuffer $buffer Buffer to write code to * * @return null */ private function _createRegisterMethod(FileDescriptor $file, MethodDescriptor $method, CodeStringBuffer $buffer) { self::$_finished = array(); $name = $method->getName(); $input_type = $method->getInput(); $output_type = $method->getOutput(); $input_descriptor = $file->findMessage($input_type); $output_descriptor = $file->findMessage($output_type); $input_fields = $input_descriptor->getFields(); $output_fields = $output_descriptor->getFields(); $buffer->increaseIdentation()->append('private function Register' . $name . '()')->append('{')->increaseIdentation(); $this->_createParaConstruct($file, $input_descriptor, $buffer); $this->_createParaConstruct($file, $output_descriptor, $buffer); $request_instance = "\$" . $input_type . "_instance"; $response_instance = "\$" . $output_type . "_instance"; $buffer->append('$this->RegisterMethod(\'' . $name . '\', ' . $request_instance . ', ' . $response_instance . ');')->decreaseIdentation()->append('}'); return $name; }