/** * Adds new message * * @param MessageDescriptor $message Message * * @return null */ public function addMessage(MessageDescriptor $message) { $this->_messages[$message->getName()] = $message; }
/** * Generates class description and write it to buffer * * @param MessageDescriptor $descriptor Message descriptor * @param CodeStringBuffer $buffer Buffer to write code to * * @return null */ private function _createClass(MessageDescriptor $descriptor, CodeStringBuffer $buffer) { foreach ($descriptor->getEnums() as $enum) { $this->_createEnum($enum, $buffer); } foreach ($descriptor->getNested() as $nested) { $this->_createClass($nested, $buffer); } $buffer->newline(); if ($this->_useNativeNamespaces) { $name = self::createTypeName($descriptor->getName()); $namespaceName = $this->_createNamespaceName($descriptor); $buffer->append('namespace ' . $namespaceName . ' {'); } else { $name = $this->_createClassName($descriptor); } $comment = new CommentStringBuffer(self::TAB, self::EOL); $path = $this->_createEmbeddedMessagePath($descriptor); if ($path) { $comment->append($descriptor->getName() . ' message embedded in ' . $path . ' message'); } else { $comment->append($descriptor->getName() . ' message'); } $buffer->append($comment); $buffer->append('class ' . $name . ' extends ProtobufMessage')->append('{')->increaseIdentation(); $this->_createClassConstructor($descriptor->getName(), $descriptor->getFields(), $buffer); $this->_createClassBody($descriptor->getFields(), $buffer); $buffer->decreaseIdentation()->append('}'); if ($this->_useNativeNamespaces) { $buffer->append('}'); } }
/** * Adds nested message * * @param MessageDescriptor $nested Message * * @return null */ public function addNested(MessageDescriptor $nested) { $this->_nested[$nested->getName()] = $nested; }