class Descriptor
Same name in this branch
- 11.1.x vendor/google/protobuf/src/Google/Protobuf/Descriptor.php \Google\Protobuf\Descriptor
- 11.1.x vendor/google/protobuf/src/GPBMetadata/Google/Protobuf/Internal/Descriptor.php \GPBMetadata\Google\Protobuf\Internal\Descriptor
- 11.1.x vendor/symfony/console/Descriptor/Descriptor.php \Symfony\Component\Console\Descriptor\Descriptor
Hierarchy
- class \Google\Protobuf\Internal\Descriptor uses \Google\Protobuf\Internal\HasPublicDescriptorTrait
Expanded class hierarchy of Descriptor
2 files declare their use of Descriptor
- DescriptorPool.php in vendor/
google/ protobuf/ src/ Google/ Protobuf/ Internal/ DescriptorPool.php - MessageBuilderContext.php in vendor/
google/ protobuf/ src/ Google/ Protobuf/ Internal/ MessageBuilderContext.php
1 string reference to 'Descriptor'
- DescriptorHelper::getName in vendor/
symfony/ console/ Helper/ DescriptorHelper.php - Returns the canonical name of this helper.
File
-
vendor/
google/ protobuf/ src/ Google/ Protobuf/ Internal/ Descriptor.php, line 12
Namespace
Google\Protobuf\InternalView source
class Descriptor {
use HasPublicDescriptorTrait;
private $full_name;
private $field = [];
private $json_to_field = [];
private $name_to_field = [];
private $index_to_field = [];
private $nested_type = [];
private $enum_type = [];
private $klass;
private $legacy_klass;
private $previous_klass;
private $options;
private $oneof_decl = [];
public function __construct() {
$this->public_desc = new \Google\Protobuf\Descriptor($this);
}
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;
$this->json_to_field[$field->getJsonName()] = $field;
$this->name_to_field[$field->getName()] = $field;
$this->index_to_field[] = $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) {
if (!isset($this->field[$number])) {
return NULL;
}
else {
return $this->field[$number];
}
}
public function getFieldByJsonName($json_name) {
if (!isset($this->json_to_field[$json_name])) {
return NULL;
}
else {
return $this->json_to_field[$json_name];
}
}
public function getFieldByName($name) {
if (!isset($this->name_to_field[$name])) {
return NULL;
}
else {
return $this->name_to_field[$name];
}
}
public function getFieldByIndex($index) {
if (count($this->index_to_field) <= $index) {
return NULL;
}
else {
return $this->index_to_field[$index];
}
}
public function setClass($klass) {
$this->klass = $klass;
}
public function getClass() {
return $this->klass;
}
public function setLegacyClass($klass) {
$this->legacy_klass = $klass;
}
public function getLegacyClass() {
return $this->legacy_klass;
}
public function setPreviouslyUnreservedClass($klass) {
$this->previous_klass = $klass;
}
public function getPreviouslyUnreservedClass() {
return $this->previous_klass;
}
public function setOptions($options) {
$this->options = $options;
}
public function getOptions() {
return $this->options;
}
public static function buildFromProto($proto, $file_proto, $containing) {
$desc = new Descriptor();
$message_name_without_package = "";
$classname = "";
$legacy_classname = "";
$previous_classname = "";
$fullname = "";
GPBUtil::getFullClassName($proto, $containing, $file_proto, $message_name_without_package, $classname, $legacy_classname, $fullname, $previous_classname);
$desc->setFullName($fullname);
$desc->setClass($classname);
$desc->setLegacyClass($legacy_classname);
$desc->setPreviouslyUnreservedClass($previous_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, $file_proto, $message_name_without_package));
}
// Handle nested enum.
foreach ($proto->getEnumType() as $enum_proto) {
$desc->addEnumType(EnumDescriptor::buildFromProto($enum_proto, $file_proto, $message_name_without_package));
}
// Handle oneof fields.
$index = 0;
foreach ($proto->getOneofDecl() as $oneof_proto) {
$desc->addOneofDecl(OneofDescriptor::buildFromProto($oneof_proto, $desc, $index));
$index++;
}
return $desc;
}
}