public function getEnumValueAsString(EnumValueDescriptorProto $value) { return $value->getName(); }
/** * @param integer $number * @param string $name * * @return \google\protobuf\EnumValueDescriptorProto */ protected function createEnumValueDescriptorProto($number, $name) { $field = new EnumValueDescriptorProto(); $field->setName($name); $field->setNumber($number); return $field; }
/** * @param \Protobuf\Compiler\Entity $entity * @param EnumValueDescriptorProto $value * * @return string */ public function generateMethod(Entity $entity, EnumValueDescriptorProto $value) { $body = []; $name = $value->getName(); $number = $value->getNumber(); $class = $entity->getNamespacedName(); $args = var_export($name, true) . ', self::' . $name . '_VALUE'; $body[] = 'if (self::$' . $name . ' !== null) {'; $body[] = ' return self::$' . $name . ';'; $body[] = '}'; $body[] = null; $body[] = 'return self::$' . $name . ' = new self(' . $args . ');'; $method = MethodGenerator::fromArray(['static' => true, 'name' => $name, 'body' => implode(PHP_EOL, $body), 'docblock' => ['tags' => [['name' => 'return', 'description' => $class]]]]); $method->getDocblock()->setWordWrap(false); return $method; }