| Index: third_party/protobuf/php/src/Google/Protobuf/descriptor.php
|
| diff --git a/third_party/protobuf/php/src/Google/Protobuf/descriptor.php b/third_party/protobuf/php/src/Google/Protobuf/descriptor.php
|
| deleted file mode 100644
|
| index ef6b9dcf47ecdfae147db9a5a39a745a33d4d54b..0000000000000000000000000000000000000000
|
| --- a/third_party/protobuf/php/src/Google/Protobuf/descriptor.php
|
| +++ /dev/null
|
| @@ -1,558 +0,0 @@
|
| -<?php
|
| -
|
| -// Protocol Buffers - Google's data interchange format
|
| -// Copyright 2008 Google Inc. All rights reserved.
|
| -// https://developers.google.com/protocol-buffers/
|
| -//
|
| -// Redistribution and use in source and binary forms, with or without
|
| -// modification, are permitted provided that the following conditions are
|
| -// met:
|
| -//
|
| -// * Redistributions of source code must retain the above copyright
|
| -// notice, this list of conditions and the following disclaimer.
|
| -// * Redistributions in binary form must reproduce the above
|
| -// copyright notice, this list of conditions and the following disclaimer
|
| -// in the documentation and/or other materials provided with the
|
| -// distribution.
|
| -// * Neither the name of Google Inc. nor the names of its
|
| -// contributors may be used to endorse or promote products derived from
|
| -// this software without specific prior written permission.
|
| -//
|
| -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
| -// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
| -// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
| -// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
| -// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
| -// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
| -// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
| -// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
| -// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
| -// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
| -// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
| -
|
| -namespace Google\Protobuf\Internal;
|
| -
|
| -use Google\Protobuf\Internal\GPBType;
|
| -use Google\Protobuf\Internal\MessageOptions;
|
| -
|
| -class FileDescriptor
|
| -{
|
| -
|
| - private $package;
|
| - private $message_type = [];
|
| - private $enum_type = [];
|
| -
|
| - public function setPackage($package)
|
| - {
|
| - $this->package = $package;
|
| - }
|
| -
|
| - public function getPackage()
|
| - {
|
| - return $this->package;
|
| - }
|
| -
|
| - public function getMessageType()
|
| - {
|
| - return $this->message_type;
|
| - }
|
| -
|
| - public function addMessageType($desc)
|
| - {
|
| - $this->message_type[] = $desc;
|
| - }
|
| -
|
| - public function getEnumType()
|
| - {
|
| - return $this->enum_type;
|
| - }
|
| -
|
| - public function addEnumType($desc)
|
| - {
|
| - $this->enum_type[]= $desc;
|
| - }
|
| -
|
| - public static function buildFromProto($proto)
|
| - {
|
| - $file = new FileDescriptor();
|
| - $file->setPackage($proto->getPackage());
|
| - foreach ($proto->getMessageType() as $message_proto) {
|
| - $file->addMessageType(Descriptor::buildFromProto(
|
| - $message_proto, $file->getPackage(), ""));
|
| - }
|
| - foreach ($proto->getEnumType() as $enum_proto) {
|
| - $file->getEnumType()[] =
|
| - $file->addEnumType(
|
| - EnumDescriptor::buildFromProto(
|
| - $enum_proto,
|
| - $file->getPackage(),
|
| - ""));
|
| - }
|
| - return $file;
|
| - }
|
| -}
|
| -
|
| -class Descriptor
|
| -{
|
| -
|
| - private $full_name;
|
| - private $field = [];
|
| - private $nested_type = [];
|
| - private $enum_type = [];
|
| - private $klass;
|
| - private $options;
|
| - private $oneof_decl = [];
|
| -
|
| - public function addOneofDecl($oneof)
|
| - {
|
| - $this->oneof_decl[] = $oneof;
|
| - }
|
| -
|
| - public function getOneofDecl()
|
| - {
|
| - return $this->oneof_decl;
|
| - }
|
| -
|
| - public function setFullName($full_name)
|
| - {
|
| - $this->full_name = $full_name;
|
| - }
|
| -
|
| - public function getFullName()
|
| - {
|
| - return $this->full_name;
|
| - }
|
| -
|
| - public function addField($field)
|
| - {
|
| - $this->field[$field->getNumber()] = $field;
|
| - }
|
| -
|
| - public function getField()
|
| - {
|
| - return $this->field;
|
| - }
|
| -
|
| - public function addNestedType($desc)
|
| - {
|
| - $this->nested_type[] = $desc;
|
| - }
|
| -
|
| - public function getNestedType()
|
| - {
|
| - return $this->nested_type;
|
| - }
|
| -
|
| - public function addEnumType($desc)
|
| - {
|
| - $this->enum_type[] = $desc;
|
| - }
|
| -
|
| - public function getEnumType()
|
| - {
|
| - return $this->enum_type;
|
| - }
|
| -
|
| - public function getFieldByNumber($number)
|
| - {
|
| - return $this->field[$number];
|
| - }
|
| -
|
| - public function setClass($klass)
|
| - {
|
| - $this->klass = $klass;
|
| - }
|
| -
|
| - public function getClass()
|
| - {
|
| - return $this->klass;
|
| - }
|
| -
|
| - public function setOptions($options)
|
| - {
|
| - $this->options = $options;
|
| - }
|
| -
|
| - public function getOptions()
|
| - {
|
| - return $this->options;
|
| - }
|
| -
|
| - public static function buildFromProto($proto, $package, $containing)
|
| - {
|
| - $desc = new Descriptor();
|
| -
|
| - $message_name_without_package = "";
|
| - $classname = "";
|
| - $fullname = "";
|
| - getFullClassName(
|
| - $proto,
|
| - $containing,
|
| - $package,
|
| - $message_name_without_package,
|
| - $classname,
|
| - $fullname);
|
| - $desc->setFullName($fullname);
|
| - $desc->setClass($classname);
|
| - $desc->setOptions($proto->getOptions());
|
| -
|
| - foreach ($proto->getField() as $field_proto) {
|
| - $desc->addField(FieldDescriptor::buildFromProto($field_proto));
|
| - }
|
| -
|
| - // Handle nested types.
|
| - foreach ($proto->getNestedType() as $nested_proto) {
|
| - $desc->addNestedType(Descriptor::buildFromProto(
|
| - $nested_proto, $package, $message_name_without_package));
|
| - }
|
| -
|
| - // Handle oneof fields.
|
| - foreach ($proto->getOneofDecl() as $oneof_proto) {
|
| - $desc->addOneofDecl(
|
| - OneofDescriptor::buildFromProto($oneof_proto, $desc));
|
| - }
|
| -
|
| - return $desc;
|
| - }
|
| -}
|
| -
|
| -function addPrefixIfSpecial(
|
| - $name,
|
| - $package)
|
| -{
|
| - if ($name === "Empty" && $package === "google.protobuf") {
|
| - return "GPBEmpty";
|
| - } else {
|
| - return $name;
|
| - }
|
| -}
|
| -
|
| -function getFullClassName(
|
| - $proto,
|
| - $containing,
|
| - $package,
|
| - &$message_name_without_package,
|
| - &$classname,
|
| - &$fullname)
|
| -{
|
| - // Full name needs to start with '.'.
|
| - $message_name_without_package =
|
| - addPrefixIfSpecial($proto->getName(), $package);
|
| - if ($containing !== "") {
|
| - $message_name_without_package =
|
| - $containing . "." . $message_name_without_package;
|
| - }
|
| - if ($package === "") {
|
| - $fullname = "." . $message_name_without_package;
|
| - } else {
|
| - $fullname = "." . $package . "." . $message_name_without_package;
|
| - }
|
| -
|
| - // Nested message class names are seperated by '_', and package names are
|
| - // seperated by '\'.
|
| - $class_name_without_package =
|
| - implode('_', array_map('ucwords',
|
| - explode('.', $message_name_without_package)));
|
| - if ($package === "") {
|
| - $classname = $class_name_without_package;
|
| - } else {
|
| - $classname =
|
| - implode('\\', array_map('ucwords', explode('.', $package))).
|
| - "\\".$class_name_without_package;
|
| - }
|
| -}
|
| -
|
| -class OneofDescriptor
|
| -{
|
| -
|
| - private $name;
|
| - private $fields;
|
| -
|
| - public function setName($name)
|
| - {
|
| - $this->name = $name;
|
| - }
|
| -
|
| - public function getName()
|
| - {
|
| - return $this->name;
|
| - }
|
| -
|
| - public function addField(&$field)
|
| - {
|
| - $this->fields[] = $field;
|
| - }
|
| -
|
| - public function getFields()
|
| - {
|
| - return $this->fields;
|
| - }
|
| -
|
| - public static function buildFromProto($oneof_proto)
|
| - {
|
| - $oneof = new OneofDescriptor();
|
| - $oneof->setName($oneof_proto->getName());
|
| - return $oneof;
|
| - }
|
| -}
|
| -
|
| -
|
| -class EnumDescriptor
|
| -{
|
| -
|
| - private $klass;
|
| - private $full_name;
|
| - private $value;
|
| -
|
| - public function setFullName($full_name)
|
| - {
|
| - $this->full_name = $full_name;
|
| - }
|
| -
|
| - public function getFullName()
|
| - {
|
| - return $this->full_name;
|
| - }
|
| -
|
| - public function addValue($number, $value)
|
| - {
|
| - $this->value[$number] = $value;
|
| - }
|
| -
|
| - public function setClass($klass)
|
| - {
|
| - $this->klass = $klass;
|
| - }
|
| -
|
| - public function getClass()
|
| - {
|
| - return $this->klass;
|
| - }
|
| -
|
| - public static function buildFromProto($proto, $package, $containing)
|
| - {
|
| - $desc = new EnumDescriptor();
|
| -
|
| - $enum_name_without_package = "";
|
| - $classname = "";
|
| - $fullname = "";
|
| - getFullClassName(
|
| - $proto,
|
| - $containing,
|
| - $package,
|
| - $enum_name_without_package,
|
| - $classname,
|
| - $fullname);
|
| - $desc->setFullName($fullname);
|
| - $desc->setClass($classname);
|
| -
|
| - return $desc;
|
| - }
|
| -}
|
| -
|
| -class EnumValueDescriptor
|
| -{
|
| -}
|
| -
|
| -class FieldDescriptor
|
| -{
|
| -
|
| - private $name;
|
| - private $setter;
|
| - private $getter;
|
| - private $number;
|
| - private $label;
|
| - private $type;
|
| - private $message_type;
|
| - private $enum_type;
|
| - private $packed;
|
| - private $is_map;
|
| - private $oneof_index = -1;
|
| -
|
| - public function setOneofIndex($index)
|
| - {
|
| - $this->oneof_index = $index;
|
| - }
|
| -
|
| - public function getOneofIndex()
|
| - {
|
| - return $this->oneof_index;
|
| - }
|
| -
|
| - public function setName($name)
|
| - {
|
| - $this->name = $name;
|
| - }
|
| -
|
| - public function getName()
|
| - {
|
| - return $this->name;
|
| - }
|
| -
|
| - public function setSetter($setter)
|
| - {
|
| - $this->setter = $setter;
|
| - }
|
| -
|
| - public function getSetter()
|
| - {
|
| - return $this->setter;
|
| - }
|
| -
|
| - public function setGetter($getter)
|
| - {
|
| - $this->getter = $getter;
|
| - }
|
| -
|
| - public function getGetter()
|
| - {
|
| - return $this->getter;
|
| - }
|
| -
|
| - public function setNumber($number)
|
| - {
|
| - $this->number = $number;
|
| - }
|
| -
|
| - public function getNumber()
|
| - {
|
| - return $this->number;
|
| - }
|
| -
|
| - public function setLabel($label)
|
| - {
|
| - $this->label = $label;
|
| - }
|
| -
|
| - public function getLabel()
|
| - {
|
| - return $this->label;
|
| - }
|
| -
|
| - public function isRepeated()
|
| - {
|
| - return $this->label === GPBLabel::REPEATED;
|
| - }
|
| -
|
| - public function setType($type)
|
| - {
|
| - $this->type = $type;
|
| - }
|
| -
|
| - public function getType()
|
| - {
|
| - return $this->type;
|
| - }
|
| -
|
| - public function setMessageType($message_type)
|
| - {
|
| - $this->message_type = $message_type;
|
| - }
|
| -
|
| - public function getMessageType()
|
| - {
|
| - return $this->message_type;
|
| - }
|
| -
|
| - public function setEnumType($enum_type)
|
| - {
|
| - $this->enum_type = $enum_type;
|
| - }
|
| -
|
| - public function getEnumType()
|
| - {
|
| - return $this->enum_type;
|
| - }
|
| -
|
| - public function setPacked($packed)
|
| - {
|
| - $this->packed = $packed;
|
| - }
|
| -
|
| - public function getPacked()
|
| - {
|
| - return $this->packed;
|
| - }
|
| -
|
| - public function isPackable()
|
| - {
|
| - return $this->isRepeated() && self::isTypePackable($this->type);
|
| - }
|
| -
|
| - public function isMap()
|
| - {
|
| - return $this->getType() == GPBType::MESSAGE &&
|
| - !is_null($this->getMessageType()->getOptions()) &&
|
| - $this->getMessageType()->getOptions()->getMapEntry();
|
| - }
|
| -
|
| - private static function isTypePackable($field_type)
|
| - {
|
| - return ($field_type !== GPBType::STRING &&
|
| - $field_type !== GPBType::GROUP &&
|
| - $field_type !== GPBType::MESSAGE &&
|
| - $field_type !== GPBType::BYTES);
|
| - }
|
| -
|
| - public static function getFieldDescriptor(
|
| - $name,
|
| - $label,
|
| - $type,
|
| - $number,
|
| - $oneof_index,
|
| - $packed,
|
| - $type_name = null)
|
| - {
|
| - $field = new FieldDescriptor();
|
| - $field->setName($name);
|
| - $camel_name = implode('', array_map('ucwords', explode('_', $name)));
|
| - $field->setGetter('get' . $camel_name);
|
| - $field->setSetter('set' . $camel_name);
|
| - $field->setType($type);
|
| - $field->setNumber($number);
|
| - $field->setLabel($label);
|
| - $field->setPacked($packed);
|
| - $field->setOneofIndex($oneof_index);
|
| -
|
| - // At this time, the message/enum type may have not been added to pool.
|
| - // So we use the type name as place holder and will replace it with the
|
| - // actual descriptor in cross building.
|
| - switch ($type) {
|
| - case GPBType::MESSAGE:
|
| - $field->setMessageType($type_name);
|
| - break;
|
| - case GPBType::ENUM:
|
| - $field->setEnumType($type_name);
|
| - break;
|
| - default:
|
| - break;
|
| - }
|
| -
|
| - return $field;
|
| - }
|
| -
|
| - public static function buildFromProto($proto)
|
| - {
|
| - $type_name = null;
|
| - switch ($proto->getType()) {
|
| - case GPBType::MESSAGE:
|
| - case GPBType::GROUP:
|
| - case GPBType::ENUM:
|
| - $type_name = $proto->getTypeName();
|
| - break;
|
| - default:
|
| - break;
|
| - }
|
| -
|
| - $oneof_index = $proto->hasOneofIndex() ? $proto->getOneofIndex() : -1;
|
| - $packed = false;
|
| - $options = $proto->getOptions();
|
| - if ($options !== null) {
|
| - $packed = $options->getPacked();
|
| - }
|
| -
|
| - return FieldDescriptor::getFieldDescriptor(
|
| - $proto->getName(), $proto->getLabel(), $proto->getType(),
|
| - $proto->getNumber(), $oneof_index, $packed, $type_name);
|
| - }
|
| -}
|
|
|