internal_desc = $internal_desc; } /** * @return string Field name */ public function getName() { return $this->internal_desc->getName(); } /** * @return int Protobuf field number */ public function getNumber() { return $this->internal_desc->getNumber(); } /** * @return int */ public function getLabel() { return $this->internal_desc->getLabel(); } /** * @return int */ public function getType() { return $this->internal_desc->getType(); } /** * @return Descriptor Returns a descriptor for the field type if the field type is a message, otherwise throws \Exception * @throws \Exception */ public function getMessageType() { if ($this->getType() == GPBType::MESSAGE) { return $this->getPublicDescriptor($this->internal_desc->getMessageType()); } else { throw new \Exception("Cannot get message type for non-message field '" . $this->getName() . "'"); } } /** * @return EnumDescriptor Returns an enum descriptor if the field type is an enum, otherwise throws \Exception * @throws \Exception */ public function getEnumType() { if ($this->getType() == GPBType::ENUM) { return $this->getPublicDescriptor($this->internal_desc->getEnumType()); } else { throw new \Exception("Cannot get enum type for non-enum field '" . $this->getName() . "'"); } } /** * @return boolean */ public function isMap() { return $this->internal_desc->isMap(); } /** * @return boolean */ public function hasOptionalKeyword() { return $this->internal_desc->hasOptionalKeyword(); } }