示例#1
0
 public function getEnumValueAsString(EnumValueDescriptorProto $value)
 {
     return $value->getName();
 }
示例#2
0
 /**
  * @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;
 }