diff options
Diffstat (limited to 'php/src/Google/Protobuf/Internal/FieldDescriptorProto/Label.php')
-rw-r--r-- | php/src/Google/Protobuf/Internal/FieldDescriptorProto/Label.php | 27 |
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. |