<?php
namespace google\protobuf;

// @@protoc_insertion_point(namespace:.google.protobuf.UninterpretedOption)

/**
 * Generated by the protocol buffer compiler.  DO NOT EDIT!
 * source: google/protobuf/descriptor.proto
 *
 * A message representing a option the parser does not recognize. This only
 * appears in options protos created by the compiler::Parser class.
 * DescriptorPool resolves these when building Descriptor objects. Therefore,
 * options protos in descriptor objects (e.g. returned by Descriptor::options(),
 * or produced by Descriptor::CopyTo()) will never have UninterpretedOptions
 * in them.
 *
 * -*- magic methods -*-
 *
 * @method array getName()
 * @method void appendName(\google\protobuf\UninterpretedOption\NamePart $value)
 * @method string getIdentifierValue()
 * @method void setIdentifierValue(string $value)
 * @method string getPositiveIntValue()
 * @method void setPositiveIntValue(string $value)
 * @method string getNegativeIntValue()
 * @method void setNegativeIntValue(string $value)
 * @method string getDoubleValue()
 * @method void setDoubleValue(string $value)
 * @method string getStringValue()
 * @method void setStringValue(string $value)
 * @method string getAggregateValue()
 * @method void setAggregateValue(string $value)
 */
class UninterpretedOption extends \ProtocolBuffers\Message
{
  // @@protoc_insertion_point(traits:.google.protobuf.UninterpretedOption)
  
  /**
   * @var array $name
   * @tag 2
   * @label optional
   * @type \ProtocolBuffers::TYPE_MESSAGE
   * @see \google\protobuf\UninterpretedOption\NamePart
   **/
  protected $name;
  
  /**
   * The value of the uninterpreted option, in whatever type the tokenizer
   * identified it as during parsing. Exactly one of these should be set.
   *
   * @var string $identifier_value
   * @tag 3
   * @label optional
   * @type \ProtocolBuffers::TYPE_STRING
   **/
  protected $identifier_value;
  
  /**
   * @var string $positive_int_value
   * @tag 4
   * @label optional
   * @type \ProtocolBuffers::TYPE_UINT64
   **/
  protected $positive_int_value;
  
  /**
   * @var string $negative_int_value
   * @tag 5
   * @label optional
   * @type \ProtocolBuffers::TYPE_INT64
   **/
  protected $negative_int_value;
  
  /**
   * @var string $double_value
   * @tag 6
   * @label optional
   * @type \ProtocolBuffers::TYPE_DOUBLE
   **/
  protected $double_value;
  
  /**
   * @var string $string_value
   * @tag 7
   * @label optional
   * @type \ProtocolBuffers::TYPE_BYTES
   **/
  protected $string_value;
  
  /**
   * @var string $aggregate_value
   * @tag 8
   * @label optional
   * @type \ProtocolBuffers::TYPE_STRING
   **/
  protected $aggregate_value;
  
  
  // @@protoc_insertion_point(properties_scope:.google.protobuf.UninterpretedOption)

  // @@protoc_insertion_point(class_scope:.google.protobuf.UninterpretedOption)

  /**
   * get descriptor for protocol buffers
   * 
   * @return \ProtocolBuffersDescriptor
   */
  public static function getDescriptor()
  {
    static $descriptor;
    
    if (!isset($descriptor)) {
      $desc = new \ProtocolBuffers\DescriptorBuilder();
      $desc->addField(2, new \ProtocolBuffers\FieldDescriptor(array(
        "type"     => \ProtocolBuffers::TYPE_MESSAGE,
        "name"     => "name",
        "required" => false,
        "optional" => false,
        "repeated" => true,
        "packable" => false,
        "default"  => null,
        "message" => '\google\protobuf\UninterpretedOption\NamePart',
      )));
      $desc->addField(3, new \ProtocolBuffers\FieldDescriptor(array(
        "type"     => \ProtocolBuffers::TYPE_STRING,
        "name"     => "identifier_value",
        "required" => false,
        "optional" => true,
        "repeated" => false,
        "packable" => false,
        "default"  => "",
      )));
      $desc->addField(4, new \ProtocolBuffers\FieldDescriptor(array(
        "type"     => \ProtocolBuffers::TYPE_UINT64,
        "name"     => "positive_int_value",
        "required" => false,
        "optional" => true,
        "repeated" => false,
        "packable" => false,
        "default"  => null,
      )));
      $desc->addField(5, new \ProtocolBuffers\FieldDescriptor(array(
        "type"     => \ProtocolBuffers::TYPE_INT64,
        "name"     => "negative_int_value",
        "required" => false,
        "optional" => true,
        "repeated" => false,
        "packable" => false,
        "default"  => null,
      )));
      $desc->addField(6, new \ProtocolBuffers\FieldDescriptor(array(
        "type"     => \ProtocolBuffers::TYPE_DOUBLE,
        "name"     => "double_value",
        "required" => false,
        "optional" => true,
        "repeated" => false,
        "packable" => false,
        "default"  => null,
      )));
      $desc->addField(7, new \ProtocolBuffers\FieldDescriptor(array(
        "type"     => \ProtocolBuffers::TYPE_BYTES,
        "name"     => "string_value",
        "required" => false,
        "optional" => true,
        "repeated" => false,
        "packable" => false,
        "default"  => null,
      )));
      $desc->addField(8, new \ProtocolBuffers\FieldDescriptor(array(
        "type"     => \ProtocolBuffers::TYPE_STRING,
        "name"     => "aggregate_value",
        "required" => false,
        "optional" => true,
        "repeated" => false,
        "packable" => false,
        "default"  => "",
      )));
      // @@protoc_insertion_point(builder_scope:.google.protobuf.UninterpretedOption)

      $descriptor = $desc->build();
    }
    return $descriptor;
  }

}
