aboutsummaryrefslogtreecommitdiff
path: root/php/src/Google/Protobuf/Internal/FieldDescriptorProto/Label.php
diff options
context:
space:
mode:
Diffstat (limited to 'php/src/Google/Protobuf/Internal/FieldDescriptorProto/Label.php')
-rw-r--r--php/src/Google/Protobuf/Internal/FieldDescriptorProto/Label.php27
1 files changed, 27 insertions, 0 deletions
diff --git a/php/src/Google/Protobuf/Internal/FieldDescriptorProto/Label.php b/php/src/Google/Protobuf/Internal/FieldDescriptorProto/Label.php
index b105088e6..f10505724 100644
--- a/php/src/Google/Protobuf/Internal/FieldDescriptorProto/Label.php
+++ b/php/src/Google/Protobuf/Internal/FieldDescriptorProto/Label.php
@@ -4,6 +4,8 @@
namespace Google\Protobuf\Internal\FieldDescriptorProto;
+use UnexpectedValueException;
+
/**
* Protobuf type <code>google.protobuf.FieldDescriptorProto.Label</code>
*/
@@ -23,6 +25,31 @@ class Label
* Generated from protobuf enum <code>LABEL_REPEATED = 3;</code>
*/
const LABEL_REPEATED = 3;
+
+ private static $valueToName = [
+ self::LABEL_OPTIONAL => 'LABEL_OPTIONAL',
+ self::LABEL_REQUIRED => 'LABEL_REQUIRED',
+ self::LABEL_REPEATED => 'LABEL_REPEATED',
+ ];
+
+ public static function name($value)
+ {
+ if (!isset(self::$valueToName[$value])) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no name defined for value %s', __CLASS__, $value));
+ }
+ return self::$valueToName[$value];
+ }
+
+ public static function value($name)
+ {
+ $const = __CLASS__ . '::' . strtoupper($name);
+ if (!defined($const)) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no value defined for name %s', __CLASS__, $name));
+ }
+ return constant($const);
+ }
}
// Adding a class alias for backwards compatibility with the previous class name.