Exemplo n.º 1
0
 protected function setupFullNameForMessage(DescriptorProto $message, $package_name = "")
 {
     $new_package_name = $package_name . "." . $message->getName();
     foreach ($message->getEnumType() as $enum) {
         $this->setupFullNameForEnum($enum, $new_package_name);
     }
     foreach ($message->getNestedType() as $m) {
         $this->setupFullNameForMessage($m, $new_package_name);
     }
     $message->full_name = $package_name . "." . $message->getName();
     $message->package_name = $package_name;
     MessagePool::register($message->full_name, $message);
     if (MyHelper::IsPackageNameOverriden($this->file)) {
         foreach ($message->getField() as $field) {
             /** @var $field FieldDescriptorProto */
             if ($field->getType() == \ProtocolBuffers::TYPE_MESSAGE || $field->getType() == \ProtocolBuffers::TYPE_ENUM) {
                 $name = $field->getTypeName();
                 $package = $this->file->getPackage();
                 if ($package) {
                     $name = str_replace($package, MyHelper::getPackageName($this->file), $name);
                 } else {
                     $name = MyHelper::getPackageName($this->file) . $name;
                 }
                 $name = preg_replace("/^\\.+/", ".", $name);
                 $field->setTypeName($name);
             }
         }
     }
 }
Exemplo n.º 2
0
 public function printExtension(Printer $printer, FieldDescriptorProto $field)
 {
     if (ExtensionPool::has($field->getExtendee(), $field->getNumber())) {
         // NOTE: already registered.
         return;
     }
     ExtensionPool::register($field->getExtendee(), $field->getNumber(), $field);
     $printer->put("\$registry->add('`message`', `extension`, new \\ProtocolBuffers\\FieldDescriptor(array(\n", "message", Helper::getExtendeeClassName($field), "extension", $field->getNumber());
     $printer->indent();
     $printer->put("\"type\"     => `type`,\n", "type", Helper::getFieldTypeName($field));
     $printer->put("\"name\"     => \"`name`\",\n", "name", $field->getName());
     $printer->put("\"required\" => `required`,\n", "required", FieldDescriptorProto\Label::isRequired($field) ? "true" : "false");
     $printer->put("\"optional\" => `optional`,\n", "optional", FieldDescriptorProto\Label::isOptional($field) ? "true" : "false");
     $printer->put("\"repeated\" => `repeated`,\n", "repeated", FieldDescriptorProto\Label::isRepeated($field) ? "true" : "false");
     $printer->put("\"packable\" => `packable`,\n", "packable", FieldDescriptorProto\Label::isPacked($field) ? "true" : "false");
     $printer->put("\"default\"  => `value`,\n", "value", $this->defaultValueAsString($field));
     if (FieldDescriptorProto\Type::isMessage($field)) {
         $name = $field->getTypeName();
         $descriptor = MessagePool::get($name);
         $printer->put("\"message\" => '`message`',\n", "message", Helper::getClassName($descriptor, true));
     }
     $printer->outdent();
     $printer->put(")));\n");
 }