/**
  * @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;
 }