Update PHP descriptors (#3391)
* Add descriptors test * Update descriptors tests * Add public descriptors * Add test_desriptors.proto to test script * Update composer files * Remove references to GPBType, update tests to be compatible with c * Update for c extension compatibility * Remove nested enums for descriptor, update tests * Strip leading '.' from descriptor name * Update tests with test for getClass, fix OneofDescriptor * Add new files to Makefile.ampull/3459/head
parent
1ab5adbdec
commit
21b0e5587c
17 changed files with 617 additions and 21 deletions
@ -0,0 +1,100 @@ |
||||
<?php |
||||
|
||||
// Protocol Buffers - Google's data interchange format |
||||
// Copyright 2017 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; |
||||
|
||||
use Google\Protobuf\Internal\GetPublicDescriptorTrait; |
||||
|
||||
class Descriptor |
||||
{ |
||||
use GetPublicDescriptorTrait; |
||||
|
||||
private $internal_desc; |
||||
|
||||
/** |
||||
* @internal |
||||
*/ |
||||
public function __construct($internal_desc) |
||||
{ |
||||
$this->internal_desc = $internal_desc; |
||||
} |
||||
|
||||
/** |
||||
* @return string Full protobuf message name |
||||
*/ |
||||
public function getFullName() |
||||
{ |
||||
return trim($this->internal_desc->getFullName(), "."); |
||||
} |
||||
|
||||
/** |
||||
* @return string PHP class name |
||||
*/ |
||||
public function getClass() |
||||
{ |
||||
return $this->internal_desc->getClass(); |
||||
} |
||||
|
||||
/** |
||||
* @param int $index Must be >= 0 and < getFieldCount() |
||||
* @return FieldDescriptor |
||||
*/ |
||||
public function getField($index) |
||||
{ |
||||
return $this->getPublicDescriptor($this->internal_desc->getFieldByIndex($index)); |
||||
} |
||||
|
||||
/** |
||||
* @return int Number of fields in message |
||||
*/ |
||||
public function getFieldCount() |
||||
{ |
||||
return count($this->internal_desc->getField()); |
||||
} |
||||
|
||||
/** |
||||
* @param int $index Must be >= 0 and < getOneofDeclCount() |
||||
* @return OneofDescriptor |
||||
*/ |
||||
public function getOneofDecl($index) |
||||
{ |
||||
return $this->getPublicDescriptor($this->internal_desc->getOneofDecl()[$index]); |
||||
} |
||||
|
||||
/** |
||||
* @return int Number of oneofs in message |
||||
*/ |
||||
public function getOneofDeclCount() |
||||
{ |
||||
return count($this->internal_desc->getOneofDecl()); |
||||
} |
||||
} |
@ -0,0 +1,76 @@ |
||||
<?php |
||||
|
||||
// Protocol Buffers - Google's data interchange format |
||||
// Copyright 2017 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; |
||||
|
||||
class DescriptorPool |
||||
{ |
||||
private static $pool; |
||||
|
||||
private $internal_pool; |
||||
|
||||
/** |
||||
* @return DescriptorPool |
||||
*/ |
||||
public static function getGeneratedPool() |
||||
{ |
||||
if (!isset(self::$pool)) { |
||||
self::$pool = new DescriptorPool(\Google\Protobuf\Internal\DescriptorPool::getGeneratedPool()); |
||||
} |
||||
return self::$pool; |
||||
} |
||||
|
||||
private function __construct($internal_pool) |
||||
{ |
||||
$this->internal_pool = $internal_pool; |
||||
} |
||||
|
||||
/** |
||||
* @param string $className A fully qualified protobuf class name |
||||
* @return Descriptor |
||||
*/ |
||||
public function getDescriptorByClassName($className) |
||||
{ |
||||
$desc = $this->internal_pool->getDescriptorByClassName($className); |
||||
return is_null($desc) ? null : $desc->getPublicDescriptor(); |
||||
} |
||||
|
||||
/** |
||||
* @param string $className A fully qualified protobuf class name |
||||
* @return EnumDescriptor |
||||
*/ |
||||
public function getEnumDescriptorByClassName($className) |
||||
{ |
||||
$desc = $this->internal_pool->getEnumDescriptorByClassName($className); |
||||
return is_null($desc) ? null : $desc->getPublicDescriptor(); |
||||
} |
||||
} |
@ -0,0 +1,79 @@ |
||||
<?php |
||||
|
||||
// Protocol Buffers - Google's data interchange format |
||||
// Copyright 2017 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; |
||||
|
||||
class EnumDescriptor |
||||
{ |
||||
private $internal_desc; |
||||
|
||||
/** |
||||
* @internal |
||||
*/ |
||||
public function __construct($internal_desc) |
||||
{ |
||||
$this->internal_desc = $internal_desc; |
||||
} |
||||
|
||||
/** |
||||
* @return string Full protobuf message name |
||||
*/ |
||||
public function getFullName() |
||||
{ |
||||
return $this->internal_desc->getFullName(); |
||||
} |
||||
|
||||
/** |
||||
* @return string PHP class name |
||||
*/ |
||||
public function getClass() |
||||
{ |
||||
return $this->internal_desc->getClass(); |
||||
} |
||||
|
||||
/** |
||||
* @param int $index Must be >= 0 and < getValueCount() |
||||
* @return EnumValueDescriptor |
||||
*/ |
||||
public function getValue($index) |
||||
{ |
||||
return $this->internal_desc->getValueDescriptorByIndex($index); |
||||
} |
||||
|
||||
/** |
||||
* @return int Number of values in enum |
||||
*/ |
||||
public function getValueCount() |
||||
{ |
||||
return $this->internal_desc->getValueCount(); |
||||
} |
||||
} |
@ -0,0 +1,117 @@ |
||||
<?php |
||||
|
||||
// Protocol Buffers - Google's data interchange format |
||||
// Copyright 2017 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; |
||||
|
||||
use Google\Protobuf\Internal\GetPublicDescriptorTrait; |
||||
use Google\Protobuf\Internal\GPBType; |
||||
|
||||
class FieldDescriptor |
||||
{ |
||||
use GetPublicDescriptorTrait; |
||||
|
||||
private $internal_desc; |
||||
|
||||
/** |
||||
* @internal |
||||
*/ |
||||
public function __construct($internal_desc) |
||||
{ |
||||
$this->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(); |
||||
} |
||||
} |
@ -0,0 +1,41 @@ |
||||
<?php |
||||
|
||||
// Protocol Buffers - Google's data interchange format |
||||
// Copyright 2017 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; |
||||
|
||||
trait GetPublicDescriptorTrait |
||||
{ |
||||
private function getPublicDescriptor($desc) |
||||
{ |
||||
return is_null($desc) ? null : $desc->getPublicDescriptor(); |
||||
} |
||||
} |
@ -0,0 +1,43 @@ |
||||
<?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; |
||||
|
||||
trait HasPublicDescriptorTrait |
||||
{ |
||||
private $public_desc; |
||||
|
||||
public function getPublicDescriptor() |
||||
{ |
||||
return $this->public_desc; |
||||
} |
||||
} |
@ -0,0 +1,75 @@ |
||||
<?php |
||||
|
||||
// Protocol Buffers - Google's data interchange format |
||||
// Copyright 2017 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; |
||||
|
||||
use Google\Protobuf\Internal\GetPublicDescriptorTrait; |
||||
|
||||
class OneofDescriptor |
||||
{ |
||||
use GetPublicDescriptorTrait; |
||||
|
||||
private $internal_desc; |
||||
|
||||
/** |
||||
* @internal |
||||
*/ |
||||
public function __construct($internal_desc) |
||||
{ |
||||
$this->internal_desc = $internal_desc; |
||||
} |
||||
|
||||
/** |
||||
* @return string The name of the oneof |
||||
*/ |
||||
public function getName() |
||||
{ |
||||
return $this->internal_desc->getName(); |
||||
} |
||||
|
||||
/** |
||||
* @param int $index Must be >= 0 and < getFieldCount() |
||||
* @return FieldDescriptor |
||||
*/ |
||||
public function getField($index) |
||||
{ |
||||
return $this->getPublicDescriptor($this->internal_desc->getFields()[$index]); |
||||
} |
||||
|
||||
/** |
||||
* @return int Number of fields in the oneof |
||||
*/ |
||||
public function getFieldCount() |
||||
{ |
||||
return count($this->internal_desc->getFields()); |
||||
} |
||||
} |
Loading…
Reference in new issue