// Generated by the protocol buffer compiler.  DO NOT EDIT!
// source: google/protobuf/util/internal/testdata/oneofs.proto

#include <google/protobuf/util/internal/testdata/oneofs.pb.h>

#include <algorithm>

#include <google/protobuf/stubs/common.h>
#include <google/protobuf/stubs/port.h>
#include <google/protobuf/io/coded_stream.h>
#include <google/protobuf/wire_format_lite_inl.h>
#include <google/protobuf/descriptor.h>
#include <google/protobuf/generated_message_reflection.h>
#include <google/protobuf/reflection_ops.h>
#include <google/protobuf/wire_format.h>
// This is a temporary google only hack
#ifdef GOOGLE_PROTOBUF_ENFORCE_UNIQUENESS
#include "third_party/protobuf/version.h"
#endif
// @@protoc_insertion_point(includes)

namespace protobuf_google_2fprotobuf_2fany_2eproto {
extern PROTOBUF_INTERNAL_EXPORT_protobuf_google_2fprotobuf_2fany_2eproto ::google::protobuf::internal::SCCInfo<0> scc_info_Any;
}  // namespace protobuf_google_2fprotobuf_2fany_2eproto
namespace protobuf_google_2fprotobuf_2fstruct_2eproto {
extern PROTOBUF_INTERNAL_EXPORT_protobuf_google_2fprotobuf_2fstruct_2eproto ::google::protobuf::internal::SCCInfo<0> scc_info_ListValue;
}  // namespace protobuf_google_2fprotobuf_2fstruct_2eproto
namespace protobuf_google_2fprotobuf_2ftimestamp_2eproto {
extern PROTOBUF_INTERNAL_EXPORT_protobuf_google_2fprotobuf_2ftimestamp_2eproto ::google::protobuf::internal::SCCInfo<0> scc_info_Timestamp;
}  // namespace protobuf_google_2fprotobuf_2ftimestamp_2eproto
namespace protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2foneofs_2eproto {
extern PROTOBUF_INTERNAL_EXPORT_protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2foneofs_2eproto ::google::protobuf::internal::SCCInfo<0> scc_info_Data;
extern PROTOBUF_INTERNAL_EXPORT_protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2foneofs_2eproto ::google::protobuf::internal::SCCInfo<0> scc_info_MoreData;
}  // namespace protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2foneofs_2eproto
namespace google {
namespace protobuf {
namespace testing {
namespace oneofs {
class OneOfsRequestDefaultTypeInternal {
 public:
  ::google::protobuf::internal::ExplicitlyConstructed<OneOfsRequest>
      _instance;
  ::google::protobuf::internal::ArenaStringPtr str_data_;
  ::google::protobuf::int32 int_data_;
  const ::google::protobuf::testing::oneofs::Data* message_data_;
  const ::google::protobuf::testing::oneofs::MoreData* more_data_;
  const ::google::protobuf::Struct* struct_data_;
  const ::google::protobuf::Value* value_data_;
  const ::google::protobuf::ListValue* list_value_data_;
  const ::google::protobuf::Timestamp* ts_data_;
} _OneOfsRequest_default_instance_;
class RequestWithSimpleOneofDefaultTypeInternal {
 public:
  ::google::protobuf::internal::ExplicitlyConstructed<RequestWithSimpleOneof>
      _instance;
  ::google::protobuf::internal::ArenaStringPtr str_data_;
  ::google::protobuf::int32 int_data_;
  const ::google::protobuf::testing::oneofs::Data* message_data_;
  const ::google::protobuf::testing::oneofs::MoreData* more_data_;
} _RequestWithSimpleOneof_default_instance_;
class DataDefaultTypeInternal {
 public:
  ::google::protobuf::internal::ExplicitlyConstructed<Data>
      _instance;
} _Data_default_instance_;
class MoreDataDefaultTypeInternal {
 public:
  ::google::protobuf::internal::ExplicitlyConstructed<MoreData>
      _instance;
} _MoreData_default_instance_;
class ResponseDefaultTypeInternal {
 public:
  ::google::protobuf::internal::ExplicitlyConstructed<Response>
      _instance;
} _Response_default_instance_;
}  // namespace oneofs
}  // namespace testing
}  // namespace protobuf
}  // namespace google
namespace protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2foneofs_2eproto {
static void InitDefaultsOneOfsRequest() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::google::protobuf::testing::oneofs::_OneOfsRequest_default_instance_;
    new (ptr) ::google::protobuf::testing::oneofs::OneOfsRequest();
    ::google::protobuf::internal::OnShutdownDestroyMessage(ptr);
  }
  ::google::protobuf::testing::oneofs::OneOfsRequest::InitAsDefaultInstance();
}

::google::protobuf::internal::SCCInfo<5> scc_info_OneOfsRequest =
    {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 5, InitDefaultsOneOfsRequest}, {
      &protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2foneofs_2eproto::scc_info_Data.base,
      &protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2foneofs_2eproto::scc_info_MoreData.base,
      &protobuf_google_2fprotobuf_2fstruct_2eproto::scc_info_ListValue.base,
      &protobuf_google_2fprotobuf_2ftimestamp_2eproto::scc_info_Timestamp.base,
      &protobuf_google_2fprotobuf_2fany_2eproto::scc_info_Any.base,}};

static void InitDefaultsRequestWithSimpleOneof() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::google::protobuf::testing::oneofs::_RequestWithSimpleOneof_default_instance_;
    new (ptr) ::google::protobuf::testing::oneofs::RequestWithSimpleOneof();
    ::google::protobuf::internal::OnShutdownDestroyMessage(ptr);
  }
  ::google::protobuf::testing::oneofs::RequestWithSimpleOneof::InitAsDefaultInstance();
}

::google::protobuf::internal::SCCInfo<2> scc_info_RequestWithSimpleOneof =
    {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 2, InitDefaultsRequestWithSimpleOneof}, {
      &protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2foneofs_2eproto::scc_info_Data.base,
      &protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2foneofs_2eproto::scc_info_MoreData.base,}};

static void InitDefaultsData() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::google::protobuf::testing::oneofs::_Data_default_instance_;
    new (ptr) ::google::protobuf::testing::oneofs::Data();
    ::google::protobuf::internal::OnShutdownDestroyMessage(ptr);
  }
  ::google::protobuf::testing::oneofs::Data::InitAsDefaultInstance();
}

::google::protobuf::internal::SCCInfo<0> scc_info_Data =
    {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 0, InitDefaultsData}, {}};

static void InitDefaultsMoreData() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::google::protobuf::testing::oneofs::_MoreData_default_instance_;
    new (ptr) ::google::protobuf::testing::oneofs::MoreData();
    ::google::protobuf::internal::OnShutdownDestroyMessage(ptr);
  }
  ::google::protobuf::testing::oneofs::MoreData::InitAsDefaultInstance();
}

::google::protobuf::internal::SCCInfo<0> scc_info_MoreData =
    {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 0, InitDefaultsMoreData}, {}};

static void InitDefaultsResponse() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::google::protobuf::testing::oneofs::_Response_default_instance_;
    new (ptr) ::google::protobuf::testing::oneofs::Response();
    ::google::protobuf::internal::OnShutdownDestroyMessage(ptr);
  }
  ::google::protobuf::testing::oneofs::Response::InitAsDefaultInstance();
}

::google::protobuf::internal::SCCInfo<0> scc_info_Response =
    {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 0, InitDefaultsResponse}, {}};

void InitDefaults() {
  ::google::protobuf::internal::InitSCC(&scc_info_OneOfsRequest.base);
  ::google::protobuf::internal::InitSCC(&scc_info_RequestWithSimpleOneof.base);
  ::google::protobuf::internal::InitSCC(&scc_info_Data.base);
  ::google::protobuf::internal::InitSCC(&scc_info_MoreData.base);
  ::google::protobuf::internal::InitSCC(&scc_info_Response.base);
}

::google::protobuf::Metadata file_level_metadata[5];

const ::google::protobuf::uint32 TableStruct::offsets[] GOOGLE_PROTOBUF_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
  ~0u,  // no _has_bits_
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::google::protobuf::testing::oneofs::OneOfsRequest, _internal_metadata_),
  ~0u,  // no _extensions_
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::google::protobuf::testing::oneofs::OneOfsRequest, _oneof_case_[0]),
  ~0u,  // no _weak_field_map_
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::google::protobuf::testing::oneofs::OneOfsRequest, value_),
  offsetof(::google::protobuf::testing::oneofs::OneOfsRequestDefaultTypeInternal, str_data_),
  offsetof(::google::protobuf::testing::oneofs::OneOfsRequestDefaultTypeInternal, int_data_),
  offsetof(::google::protobuf::testing::oneofs::OneOfsRequestDefaultTypeInternal, message_data_),
  offsetof(::google::protobuf::testing::oneofs::OneOfsRequestDefaultTypeInternal, more_data_),
  offsetof(::google::protobuf::testing::oneofs::OneOfsRequestDefaultTypeInternal, struct_data_),
  offsetof(::google::protobuf::testing::oneofs::OneOfsRequestDefaultTypeInternal, value_data_),
  offsetof(::google::protobuf::testing::oneofs::OneOfsRequestDefaultTypeInternal, list_value_data_),
  offsetof(::google::protobuf::testing::oneofs::OneOfsRequestDefaultTypeInternal, ts_data_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::google::protobuf::testing::oneofs::OneOfsRequest, any_data_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::google::protobuf::testing::oneofs::OneOfsRequest, data_),
  ~0u,  // no _has_bits_
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::google::protobuf::testing::oneofs::RequestWithSimpleOneof, _internal_metadata_),
  ~0u,  // no _extensions_
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::google::protobuf::testing::oneofs::RequestWithSimpleOneof, _oneof_case_[0]),
  ~0u,  // no _weak_field_map_
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::google::protobuf::testing::oneofs::RequestWithSimpleOneof, value_),
  offsetof(::google::protobuf::testing::oneofs::RequestWithSimpleOneofDefaultTypeInternal, str_data_),
  offsetof(::google::protobuf::testing::oneofs::RequestWithSimpleOneofDefaultTypeInternal, int_data_),
  offsetof(::google::protobuf::testing::oneofs::RequestWithSimpleOneofDefaultTypeInternal, message_data_),
  offsetof(::google::protobuf::testing::oneofs::RequestWithSimpleOneofDefaultTypeInternal, more_data_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::google::protobuf::testing::oneofs::RequestWithSimpleOneof, data_),
  ~0u,  // no _has_bits_
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::google::protobuf::testing::oneofs::Data, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::google::protobuf::testing::oneofs::Data, data_value_),
  ~0u,  // no _has_bits_
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::google::protobuf::testing::oneofs::MoreData, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::google::protobuf::testing::oneofs::MoreData, str_value_),
  ~0u,  // no _has_bits_
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::google::protobuf::testing::oneofs::Response, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::google::protobuf::testing::oneofs::Response, value_),
};
static const ::google::protobuf::internal::MigrationSchema schemas[] GOOGLE_PROTOBUF_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
  { 0, -1, sizeof(::google::protobuf::testing::oneofs::OneOfsRequest)},
  { 16, -1, sizeof(::google::protobuf::testing::oneofs::RequestWithSimpleOneof)},
  { 27, -1, sizeof(::google::protobuf::testing::oneofs::Data)},
  { 33, -1, sizeof(::google::protobuf::testing::oneofs::MoreData)},
  { 39, -1, sizeof(::google::protobuf::testing::oneofs::Response)},
};

static ::google::protobuf::Message const * const file_default_instances[] = {
  reinterpret_cast<const ::google::protobuf::Message*>(&::google::protobuf::testing::oneofs::_OneOfsRequest_default_instance_),
  reinterpret_cast<const ::google::protobuf::Message*>(&::google::protobuf::testing::oneofs::_RequestWithSimpleOneof_default_instance_),
  reinterpret_cast<const ::google::protobuf::Message*>(&::google::protobuf::testing::oneofs::_Data_default_instance_),
  reinterpret_cast<const ::google::protobuf::Message*>(&::google::protobuf::testing::oneofs::_MoreData_default_instance_),
  reinterpret_cast<const ::google::protobuf::Message*>(&::google::protobuf::testing::oneofs::_Response_default_instance_),
};

void protobuf_AssignDescriptors() {
  AddDescriptors();
  AssignDescriptors(
      "google/protobuf/util/internal/testdata/oneofs.proto", schemas, file_default_instances, TableStruct::offsets,
      file_level_metadata, NULL, NULL);
}

void protobuf_AssignDescriptorsOnce() {
  static ::google::protobuf::internal::once_flag once;
  ::google::protobuf::internal::call_once(once, protobuf_AssignDescriptors);
}

void protobuf_RegisterTypes(const ::std::string&) GOOGLE_PROTOBUF_ATTRIBUTE_COLD;
void protobuf_RegisterTypes(const ::std::string&) {
  protobuf_AssignDescriptorsOnce();
  ::google::protobuf::internal::RegisterAllTypes(file_level_metadata, 5);
}

void AddDescriptorsImpl() {
  InitDefaults();
  static const char descriptor[] GOOGLE_PROTOBUF_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
      "\n3google/protobuf/util/internal/testdata"
      "/oneofs.proto\022\036google.protobuf.testing.o"
      "neofs\032\031google/protobuf/any.proto\032\034google"
      "/protobuf/struct.proto\032\037google/protobuf/"
      "timestamp.proto\"\267\003\n\rOneOfsRequest\022\r\n\005val"
      "ue\030\001 \001(\t\022\022\n\010str_data\030\002 \001(\tH\000\022\022\n\010int_data"
      "\030\003 \001(\005H\000\022<\n\014message_data\030\004 \001(\0132$.google."
      "protobuf.testing.oneofs.DataH\000\022=\n\tmore_d"
      "ata\030\005 \001(\0132(.google.protobuf.testing.oneo"
      "fs.MoreDataH\000\022.\n\013struct_data\030\006 \001(\0132\027.goo"
      "gle.protobuf.StructH\000\022,\n\nvalue_data\030\007 \001("
      "\0132\026.google.protobuf.ValueH\000\0225\n\017list_valu"
      "e_data\030\010 \001(\0132\032.google.protobuf.ListValue"
      "H\000\022-\n\007ts_data\030\t \001(\0132\032.google.protobuf.Ti"
      "mestampH\000\022&\n\010any_data\030\023 \001(\0132\024.google.pro"
      "tobuf.AnyB\006\n\004data\"\324\001\n\026RequestWithSimpleO"
      "neof\022\r\n\005value\030\001 \001(\t\022\022\n\010str_data\030\002 \001(\tH\000\022"
      "\022\n\010int_data\030\003 \001(\005H\000\022<\n\014message_data\030\004 \001("
      "\0132$.google.protobuf.testing.oneofs.DataH"
      "\000\022=\n\tmore_data\030\005 \001(\0132(.google.protobuf.t"
      "esting.oneofs.MoreDataH\000B\006\n\004data\"\032\n\004Data"
      "\022\022\n\ndata_value\030\001 \001(\005\"\035\n\010MoreData\022\021\n\tstr_"
      "value\030\001 \001(\t\"\031\n\010Response\022\r\n\005value\030\001 \001(\tb\006"
      "proto3"
  };
  ::google::protobuf::DescriptorPool::InternalAddGeneratedFile(
      descriptor, 926);
  ::google::protobuf::MessageFactory::InternalRegisterGeneratedFile(
    "google/protobuf/util/internal/testdata/oneofs.proto", &protobuf_RegisterTypes);
  ::protobuf_google_2fprotobuf_2fany_2eproto::AddDescriptors();
  ::protobuf_google_2fprotobuf_2fstruct_2eproto::AddDescriptors();
  ::protobuf_google_2fprotobuf_2ftimestamp_2eproto::AddDescriptors();
}

void AddDescriptors() {
  static ::google::protobuf::internal::once_flag once;
  ::google::protobuf::internal::call_once(once, AddDescriptorsImpl);
}
// Force AddDescriptors() to be called at dynamic initialization time.
struct StaticDescriptorInitializer {
  StaticDescriptorInitializer() {
    AddDescriptors();
  }
} static_descriptor_initializer;
}  // namespace protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2foneofs_2eproto
namespace google {
namespace protobuf {
namespace testing {
namespace oneofs {

// ===================================================================

void OneOfsRequest::InitAsDefaultInstance() {
  ::google::protobuf::testing::oneofs::_OneOfsRequest_default_instance_.str_data_.UnsafeSetDefault(
      &::google::protobuf::internal::GetEmptyStringAlreadyInited());
  ::google::protobuf::testing::oneofs::_OneOfsRequest_default_instance_.int_data_ = 0;
  ::google::protobuf::testing::oneofs::_OneOfsRequest_default_instance_.message_data_ = const_cast< ::google::protobuf::testing::oneofs::Data*>(
      ::google::protobuf::testing::oneofs::Data::internal_default_instance());
  ::google::protobuf::testing::oneofs::_OneOfsRequest_default_instance_.more_data_ = const_cast< ::google::protobuf::testing::oneofs::MoreData*>(
      ::google::protobuf::testing::oneofs::MoreData::internal_default_instance());
  ::google::protobuf::testing::oneofs::_OneOfsRequest_default_instance_.struct_data_ = const_cast< ::google::protobuf::Struct*>(
      ::google::protobuf::Struct::internal_default_instance());
  ::google::protobuf::testing::oneofs::_OneOfsRequest_default_instance_.value_data_ = const_cast< ::google::protobuf::Value*>(
      ::google::protobuf::Value::internal_default_instance());
  ::google::protobuf::testing::oneofs::_OneOfsRequest_default_instance_.list_value_data_ = const_cast< ::google::protobuf::ListValue*>(
      ::google::protobuf::ListValue::internal_default_instance());
  ::google::protobuf::testing::oneofs::_OneOfsRequest_default_instance_.ts_data_ = const_cast< ::google::protobuf::Timestamp*>(
      ::google::protobuf::Timestamp::internal_default_instance());
  ::google::protobuf::testing::oneofs::_OneOfsRequest_default_instance_._instance.get_mutable()->any_data_ = const_cast< ::google::protobuf::Any*>(
      ::google::protobuf::Any::internal_default_instance());
}
void OneOfsRequest::set_allocated_message_data(::google::protobuf::testing::oneofs::Data* message_data) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  clear_data();
  if (message_data) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      message_data = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, message_data, submessage_arena);
    }
    set_has_message_data();
    data_.message_data_ = message_data;
  }
  // @@protoc_insertion_point(field_set_allocated:google.protobuf.testing.oneofs.OneOfsRequest.message_data)
}
void OneOfsRequest::set_allocated_more_data(::google::protobuf::testing::oneofs::MoreData* more_data) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  clear_data();
  if (more_data) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      more_data = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, more_data, submessage_arena);
    }
    set_has_more_data();
    data_.more_data_ = more_data;
  }
  // @@protoc_insertion_point(field_set_allocated:google.protobuf.testing.oneofs.OneOfsRequest.more_data)
}
void OneOfsRequest::set_allocated_struct_data(::google::protobuf::Struct* struct_data) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  clear_data();
  if (struct_data) {
    ::google::protobuf::Arena* submessage_arena =
      reinterpret_cast<::google::protobuf::MessageLite*>(struct_data)->GetArena();
    if (message_arena != submessage_arena) {
      struct_data = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, struct_data, submessage_arena);
    }
    set_has_struct_data();
    data_.struct_data_ = struct_data;
  }
  // @@protoc_insertion_point(field_set_allocated:google.protobuf.testing.oneofs.OneOfsRequest.struct_data)
}
void OneOfsRequest::clear_struct_data() {
  if (has_struct_data()) {
    delete data_.struct_data_;
    clear_has_data();
  }
}
void OneOfsRequest::set_allocated_value_data(::google::protobuf::Value* value_data) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  clear_data();
  if (value_data) {
    ::google::protobuf::Arena* submessage_arena =
      reinterpret_cast<::google::protobuf::MessageLite*>(value_data)->GetArena();
    if (message_arena != submessage_arena) {
      value_data = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, value_data, submessage_arena);
    }
    set_has_value_data();
    data_.value_data_ = value_data;
  }
  // @@protoc_insertion_point(field_set_allocated:google.protobuf.testing.oneofs.OneOfsRequest.value_data)
}
void OneOfsRequest::clear_value_data() {
  if (has_value_data()) {
    delete data_.value_data_;
    clear_has_data();
  }
}
void OneOfsRequest::set_allocated_list_value_data(::google::protobuf::ListValue* list_value_data) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  clear_data();
  if (list_value_data) {
    ::google::protobuf::Arena* submessage_arena =
      reinterpret_cast<::google::protobuf::MessageLite*>(list_value_data)->GetArena();
    if (message_arena != submessage_arena) {
      list_value_data = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, list_value_data, submessage_arena);
    }
    set_has_list_value_data();
    data_.list_value_data_ = list_value_data;
  }
  // @@protoc_insertion_point(field_set_allocated:google.protobuf.testing.oneofs.OneOfsRequest.list_value_data)
}
void OneOfsRequest::clear_list_value_data() {
  if (has_list_value_data()) {
    delete data_.list_value_data_;
    clear_has_data();
  }
}
void OneOfsRequest::set_allocated_ts_data(::google::protobuf::Timestamp* ts_data) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  clear_data();
  if (ts_data) {
    ::google::protobuf::Arena* submessage_arena =
      reinterpret_cast<::google::protobuf::MessageLite*>(ts_data)->GetArena();
    if (message_arena != submessage_arena) {
      ts_data = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, ts_data, submessage_arena);
    }
    set_has_ts_data();
    data_.ts_data_ = ts_data;
  }
  // @@protoc_insertion_point(field_set_allocated:google.protobuf.testing.oneofs.OneOfsRequest.ts_data)
}
void OneOfsRequest::clear_ts_data() {
  if (has_ts_data()) {
    delete data_.ts_data_;
    clear_has_data();
  }
}
void OneOfsRequest::clear_any_data() {
  if (GetArenaNoVirtual() == NULL && any_data_ != NULL) {
    delete any_data_;
  }
  any_data_ = NULL;
}
#if !defined(_MSC_VER) || _MSC_VER >= 1900
const int OneOfsRequest::kValueFieldNumber;
const int OneOfsRequest::kStrDataFieldNumber;
const int OneOfsRequest::kIntDataFieldNumber;
const int OneOfsRequest::kMessageDataFieldNumber;
const int OneOfsRequest::kMoreDataFieldNumber;
const int OneOfsRequest::kStructDataFieldNumber;
const int OneOfsRequest::kValueDataFieldNumber;
const int OneOfsRequest::kListValueDataFieldNumber;
const int OneOfsRequest::kTsDataFieldNumber;
const int OneOfsRequest::kAnyDataFieldNumber;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900

OneOfsRequest::OneOfsRequest()
  : ::google::protobuf::Message(), _internal_metadata_(NULL) {
  ::google::protobuf::internal::InitSCC(
      &protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2foneofs_2eproto::scc_info_OneOfsRequest.base);
  SharedCtor();
  // @@protoc_insertion_point(constructor:google.protobuf.testing.oneofs.OneOfsRequest)
}
OneOfsRequest::OneOfsRequest(const OneOfsRequest& from)
  : ::google::protobuf::Message(),
      _internal_metadata_(NULL) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  value_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.value().size() > 0) {
    value_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.value_);
  }
  if (from.has_any_data()) {
    any_data_ = new ::google::protobuf::Any(*from.any_data_);
  } else {
    any_data_ = NULL;
  }
  clear_has_data();
  switch (from.data_case()) {
    case kStrData: {
      set_str_data(from.str_data());
      break;
    }
    case kIntData: {
      set_int_data(from.int_data());
      break;
    }
    case kMessageData: {
      mutable_message_data()->::google::protobuf::testing::oneofs::Data::MergeFrom(from.message_data());
      break;
    }
    case kMoreData: {
      mutable_more_data()->::google::protobuf::testing::oneofs::MoreData::MergeFrom(from.more_data());
      break;
    }
    case kStructData: {
      mutable_struct_data()->::google::protobuf::Struct::MergeFrom(from.struct_data());
      break;
    }
    case kValueData: {
      mutable_value_data()->::google::protobuf::Value::MergeFrom(from.value_data());
      break;
    }
    case kListValueData: {
      mutable_list_value_data()->::google::protobuf::ListValue::MergeFrom(from.list_value_data());
      break;
    }
    case kTsData: {
      mutable_ts_data()->::google::protobuf::Timestamp::MergeFrom(from.ts_data());
      break;
    }
    case DATA_NOT_SET: {
      break;
    }
  }
  // @@protoc_insertion_point(copy_constructor:google.protobuf.testing.oneofs.OneOfsRequest)
}

void OneOfsRequest::SharedCtor() {
  value_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  any_data_ = NULL;
  clear_has_data();
}

OneOfsRequest::~OneOfsRequest() {
  // @@protoc_insertion_point(destructor:google.protobuf.testing.oneofs.OneOfsRequest)
  SharedDtor();
}

void OneOfsRequest::SharedDtor() {
  value_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (this != internal_default_instance()) delete any_data_;
  if (has_data()) {
    clear_data();
  }
}

void OneOfsRequest::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const ::google::protobuf::Descriptor* OneOfsRequest::descriptor() {
  ::protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2foneofs_2eproto::protobuf_AssignDescriptorsOnce();
  return ::protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2foneofs_2eproto::file_level_metadata[kIndexInFileMessages].descriptor;
}

const OneOfsRequest& OneOfsRequest::default_instance() {
  ::google::protobuf::internal::InitSCC(&protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2foneofs_2eproto::scc_info_OneOfsRequest.base);
  return *internal_default_instance();
}


void OneOfsRequest::clear_data() {
// @@protoc_insertion_point(one_of_clear_start:google.protobuf.testing.oneofs.OneOfsRequest)
  switch (data_case()) {
    case kStrData: {
      data_.str_data_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
      break;
    }
    case kIntData: {
      // No need to clear
      break;
    }
    case kMessageData: {
      delete data_.message_data_;
      break;
    }
    case kMoreData: {
      delete data_.more_data_;
      break;
    }
    case kStructData: {
      delete data_.struct_data_;
      break;
    }
    case kValueData: {
      delete data_.value_data_;
      break;
    }
    case kListValueData: {
      delete data_.list_value_data_;
      break;
    }
    case kTsData: {
      delete data_.ts_data_;
      break;
    }
    case DATA_NOT_SET: {
      break;
    }
  }
  _oneof_case_[0] = DATA_NOT_SET;
}


void OneOfsRequest::Clear() {
// @@protoc_insertion_point(message_clear_start:google.protobuf.testing.oneofs.OneOfsRequest)
  ::google::protobuf::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  value_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (GetArenaNoVirtual() == NULL && any_data_ != NULL) {
    delete any_data_;
  }
  any_data_ = NULL;
  clear_data();
  _internal_metadata_.Clear();
}

bool OneOfsRequest::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  // @@protoc_insertion_point(parse_start:google.protobuf.testing.oneofs.OneOfsRequest)
  for (;;) {
    ::std::pair<::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(16383u);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // string value = 1;
      case 1: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(10u /* 10 & 0xFF */)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_value()));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            this->value().data(), static_cast<int>(this->value().length()),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "google.protobuf.testing.oneofs.OneOfsRequest.value"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // string str_data = 2;
      case 2: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(18u /* 18 & 0xFF */)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_str_data()));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            this->str_data().data(), static_cast<int>(this->str_data().length()),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "google.protobuf.testing.oneofs.OneOfsRequest.str_data"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // int32 int_data = 3;
      case 3: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(24u /* 24 & 0xFF */)) {
          clear_data();
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
                 input, &data_.int_data_)));
          set_has_int_data();
        } else {
          goto handle_unusual;
        }
        break;
      }

      // .google.protobuf.testing.oneofs.Data message_data = 4;
      case 4: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(34u /* 34 & 0xFF */)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
               input, mutable_message_data()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // .google.protobuf.testing.oneofs.MoreData more_data = 5;
      case 5: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(42u /* 42 & 0xFF */)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
               input, mutable_more_data()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // .google.protobuf.Struct struct_data = 6;
      case 6: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(50u /* 50 & 0xFF */)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
               input, mutable_struct_data()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // .google.protobuf.Value value_data = 7;
      case 7: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(58u /* 58 & 0xFF */)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
               input, mutable_value_data()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // .google.protobuf.ListValue list_value_data = 8;
      case 8: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(66u /* 66 & 0xFF */)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
               input, mutable_list_value_data()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // .google.protobuf.Timestamp ts_data = 9;
      case 9: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(74u /* 74 & 0xFF */)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
               input, mutable_ts_data()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // .google.protobuf.Any any_data = 19;
      case 19: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(154u /* 154 & 0xFF */)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
               input, mutable_any_data()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormat::SkipField(
              input, tag, _internal_metadata_.mutable_unknown_fields()));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:google.protobuf.testing.oneofs.OneOfsRequest)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:google.protobuf.testing.oneofs.OneOfsRequest)
  return false;
#undef DO_
}

void OneOfsRequest::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:google.protobuf.testing.oneofs.OneOfsRequest)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // string value = 1;
  if (this->value().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->value().data(), static_cast<int>(this->value().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "google.protobuf.testing.oneofs.OneOfsRequest.value");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      1, this->value(), output);
  }

  // string str_data = 2;
  if (has_str_data()) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->str_data().data(), static_cast<int>(this->str_data().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "google.protobuf.testing.oneofs.OneOfsRequest.str_data");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      2, this->str_data(), output);
  }

  // int32 int_data = 3;
  if (has_int_data()) {
    ::google::protobuf::internal::WireFormatLite::WriteInt32(3, this->int_data(), output);
  }

  // .google.protobuf.testing.oneofs.Data message_data = 4;
  if (has_message_data()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      4, this->_internal_message_data(), output);
  }

  // .google.protobuf.testing.oneofs.MoreData more_data = 5;
  if (has_more_data()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      5, this->_internal_more_data(), output);
  }

  // .google.protobuf.Struct struct_data = 6;
  if (has_struct_data()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      6, this->_internal_struct_data(), output);
  }

  // .google.protobuf.Value value_data = 7;
  if (has_value_data()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      7, this->_internal_value_data(), output);
  }

  // .google.protobuf.ListValue list_value_data = 8;
  if (has_list_value_data()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      8, this->_internal_list_value_data(), output);
  }

  // .google.protobuf.Timestamp ts_data = 9;
  if (has_ts_data()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      9, this->_internal_ts_data(), output);
  }

  // .google.protobuf.Any any_data = 19;
  if (this->has_any_data()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      19, this->_internal_any_data(), output);
  }

  if ((_internal_metadata_.have_unknown_fields() &&  ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
        (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()), output);
  }
  // @@protoc_insertion_point(serialize_end:google.protobuf.testing.oneofs.OneOfsRequest)
}

::google::protobuf::uint8* OneOfsRequest::InternalSerializeWithCachedSizesToArray(
    bool deterministic, ::google::protobuf::uint8* target) const {
  (void)deterministic; // Unused
  // @@protoc_insertion_point(serialize_to_array_start:google.protobuf.testing.oneofs.OneOfsRequest)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // string value = 1;
  if (this->value().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->value().data(), static_cast<int>(this->value().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "google.protobuf.testing.oneofs.OneOfsRequest.value");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        1, this->value(), target);
  }

  // string str_data = 2;
  if (has_str_data()) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->str_data().data(), static_cast<int>(this->str_data().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "google.protobuf.testing.oneofs.OneOfsRequest.str_data");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        2, this->str_data(), target);
  }

  // int32 int_data = 3;
  if (has_int_data()) {
    target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(3, this->int_data(), target);
  }

  // .google.protobuf.testing.oneofs.Data message_data = 4;
  if (has_message_data()) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageToArray(
        4, this->_internal_message_data(), deterministic, target);
  }

  // .google.protobuf.testing.oneofs.MoreData more_data = 5;
  if (has_more_data()) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageToArray(
        5, this->_internal_more_data(), deterministic, target);
  }

  // .google.protobuf.Struct struct_data = 6;
  if (has_struct_data()) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageToArray(
        6, this->_internal_struct_data(), deterministic, target);
  }

  // .google.protobuf.Value value_data = 7;
  if (has_value_data()) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageToArray(
        7, this->_internal_value_data(), deterministic, target);
  }

  // .google.protobuf.ListValue list_value_data = 8;
  if (has_list_value_data()) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageToArray(
        8, this->_internal_list_value_data(), deterministic, target);
  }

  // .google.protobuf.Timestamp ts_data = 9;
  if (has_ts_data()) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageToArray(
        9, this->_internal_ts_data(), deterministic, target);
  }

  // .google.protobuf.Any any_data = 19;
  if (this->has_any_data()) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageToArray(
        19, this->_internal_any_data(), deterministic, target);
  }

  if ((_internal_metadata_.have_unknown_fields() &&  ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
        (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:google.protobuf.testing.oneofs.OneOfsRequest)
  return target;
}

size_t OneOfsRequest::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:google.protobuf.testing.oneofs.OneOfsRequest)
  size_t total_size = 0;

  if ((_internal_metadata_.have_unknown_fields() &&  ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
    total_size +=
      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
        (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()));
  }
  // string value = 1;
  if (this->value().size() > 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->value());
  }

  // .google.protobuf.Any any_data = 19;
  if (this->has_any_data()) {
    total_size += 2 +
      ::google::protobuf::internal::WireFormatLite::MessageSize(
        *any_data_);
  }

  switch (data_case()) {
    // string str_data = 2;
    case kStrData: {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::StringSize(
          this->str_data());
      break;
    }
    // int32 int_data = 3;
    case kIntData: {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::Int32Size(
          this->int_data());
      break;
    }
    // .google.protobuf.testing.oneofs.Data message_data = 4;
    case kMessageData: {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::MessageSize(
          *data_.message_data_);
      break;
    }
    // .google.protobuf.testing.oneofs.MoreData more_data = 5;
    case kMoreData: {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::MessageSize(
          *data_.more_data_);
      break;
    }
    // .google.protobuf.Struct struct_data = 6;
    case kStructData: {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::MessageSize(
          *data_.struct_data_);
      break;
    }
    // .google.protobuf.Value value_data = 7;
    case kValueData: {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::MessageSize(
          *data_.value_data_);
      break;
    }
    // .google.protobuf.ListValue list_value_data = 8;
    case kListValueData: {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::MessageSize(
          *data_.list_value_data_);
      break;
    }
    // .google.protobuf.Timestamp ts_data = 9;
    case kTsData: {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::MessageSize(
          *data_.ts_data_);
      break;
    }
    case DATA_NOT_SET: {
      break;
    }
  }
  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

void OneOfsRequest::MergeFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:google.protobuf.testing.oneofs.OneOfsRequest)
  GOOGLE_DCHECK_NE(&from, this);
  const OneOfsRequest* source =
      ::google::protobuf::internal::DynamicCastToGenerated<const OneOfsRequest>(
          &from);
  if (source == NULL) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:google.protobuf.testing.oneofs.OneOfsRequest)
    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:google.protobuf.testing.oneofs.OneOfsRequest)
    MergeFrom(*source);
  }
}

void OneOfsRequest::MergeFrom(const OneOfsRequest& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:google.protobuf.testing.oneofs.OneOfsRequest)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  if (from.value().size() > 0) {

    value_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.value_);
  }
  if (from.has_any_data()) {
    mutable_any_data()->::google::protobuf::Any::MergeFrom(from.any_data());
  }
  switch (from.data_case()) {
    case kStrData: {
      set_str_data(from.str_data());
      break;
    }
    case kIntData: {
      set_int_data(from.int_data());
      break;
    }
    case kMessageData: {
      mutable_message_data()->::google::protobuf::testing::oneofs::Data::MergeFrom(from.message_data());
      break;
    }
    case kMoreData: {
      mutable_more_data()->::google::protobuf::testing::oneofs::MoreData::MergeFrom(from.more_data());
      break;
    }
    case kStructData: {
      mutable_struct_data()->::google::protobuf::Struct::MergeFrom(from.struct_data());
      break;
    }
    case kValueData: {
      mutable_value_data()->::google::protobuf::Value::MergeFrom(from.value_data());
      break;
    }
    case kListValueData: {
      mutable_list_value_data()->::google::protobuf::ListValue::MergeFrom(from.list_value_data());
      break;
    }
    case kTsData: {
      mutable_ts_data()->::google::protobuf::Timestamp::MergeFrom(from.ts_data());
      break;
    }
    case DATA_NOT_SET: {
      break;
    }
  }
}

void OneOfsRequest::CopyFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:google.protobuf.testing.oneofs.OneOfsRequest)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void OneOfsRequest::CopyFrom(const OneOfsRequest& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:google.protobuf.testing.oneofs.OneOfsRequest)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool OneOfsRequest::IsInitialized() const {
  return true;
}

void OneOfsRequest::Swap(OneOfsRequest* other) {
  if (other == this) return;
  InternalSwap(other);
}
void OneOfsRequest::InternalSwap(OneOfsRequest* other) {
  using std::swap;
  value_.Swap(&other->value_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(),
    GetArenaNoVirtual());
  swap(any_data_, other->any_data_);
  swap(data_, other->data_);
  swap(_oneof_case_[0], other->_oneof_case_[0]);
  _internal_metadata_.Swap(&other->_internal_metadata_);
}

::google::protobuf::Metadata OneOfsRequest::GetMetadata() const {
  protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2foneofs_2eproto::protobuf_AssignDescriptorsOnce();
  return ::protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2foneofs_2eproto::file_level_metadata[kIndexInFileMessages];
}


// ===================================================================

void RequestWithSimpleOneof::InitAsDefaultInstance() {
  ::google::protobuf::testing::oneofs::_RequestWithSimpleOneof_default_instance_.str_data_.UnsafeSetDefault(
      &::google::protobuf::internal::GetEmptyStringAlreadyInited());
  ::google::protobuf::testing::oneofs::_RequestWithSimpleOneof_default_instance_.int_data_ = 0;
  ::google::protobuf::testing::oneofs::_RequestWithSimpleOneof_default_instance_.message_data_ = const_cast< ::google::protobuf::testing::oneofs::Data*>(
      ::google::protobuf::testing::oneofs::Data::internal_default_instance());
  ::google::protobuf::testing::oneofs::_RequestWithSimpleOneof_default_instance_.more_data_ = const_cast< ::google::protobuf::testing::oneofs::MoreData*>(
      ::google::protobuf::testing::oneofs::MoreData::internal_default_instance());
}
void RequestWithSimpleOneof::set_allocated_message_data(::google::protobuf::testing::oneofs::Data* message_data) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  clear_data();
  if (message_data) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      message_data = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, message_data, submessage_arena);
    }
    set_has_message_data();
    data_.message_data_ = message_data;
  }
  // @@protoc_insertion_point(field_set_allocated:google.protobuf.testing.oneofs.RequestWithSimpleOneof.message_data)
}
void RequestWithSimpleOneof::set_allocated_more_data(::google::protobuf::testing::oneofs::MoreData* more_data) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  clear_data();
  if (more_data) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      more_data = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, more_data, submessage_arena);
    }
    set_has_more_data();
    data_.more_data_ = more_data;
  }
  // @@protoc_insertion_point(field_set_allocated:google.protobuf.testing.oneofs.RequestWithSimpleOneof.more_data)
}
#if !defined(_MSC_VER) || _MSC_VER >= 1900
const int RequestWithSimpleOneof::kValueFieldNumber;
const int RequestWithSimpleOneof::kStrDataFieldNumber;
const int RequestWithSimpleOneof::kIntDataFieldNumber;
const int RequestWithSimpleOneof::kMessageDataFieldNumber;
const int RequestWithSimpleOneof::kMoreDataFieldNumber;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900

RequestWithSimpleOneof::RequestWithSimpleOneof()
  : ::google::protobuf::Message(), _internal_metadata_(NULL) {
  ::google::protobuf::internal::InitSCC(
      &protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2foneofs_2eproto::scc_info_RequestWithSimpleOneof.base);
  SharedCtor();
  // @@protoc_insertion_point(constructor:google.protobuf.testing.oneofs.RequestWithSimpleOneof)
}
RequestWithSimpleOneof::RequestWithSimpleOneof(const RequestWithSimpleOneof& from)
  : ::google::protobuf::Message(),
      _internal_metadata_(NULL) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  value_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.value().size() > 0) {
    value_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.value_);
  }
  clear_has_data();
  switch (from.data_case()) {
    case kStrData: {
      set_str_data(from.str_data());
      break;
    }
    case kIntData: {
      set_int_data(from.int_data());
      break;
    }
    case kMessageData: {
      mutable_message_data()->::google::protobuf::testing::oneofs::Data::MergeFrom(from.message_data());
      break;
    }
    case kMoreData: {
      mutable_more_data()->::google::protobuf::testing::oneofs::MoreData::MergeFrom(from.more_data());
      break;
    }
    case DATA_NOT_SET: {
      break;
    }
  }
  // @@protoc_insertion_point(copy_constructor:google.protobuf.testing.oneofs.RequestWithSimpleOneof)
}

void RequestWithSimpleOneof::SharedCtor() {
  value_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  clear_has_data();
}

RequestWithSimpleOneof::~RequestWithSimpleOneof() {
  // @@protoc_insertion_point(destructor:google.protobuf.testing.oneofs.RequestWithSimpleOneof)
  SharedDtor();
}

void RequestWithSimpleOneof::SharedDtor() {
  value_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (has_data()) {
    clear_data();
  }
}

void RequestWithSimpleOneof::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const ::google::protobuf::Descriptor* RequestWithSimpleOneof::descriptor() {
  ::protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2foneofs_2eproto::protobuf_AssignDescriptorsOnce();
  return ::protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2foneofs_2eproto::file_level_metadata[kIndexInFileMessages].descriptor;
}

const RequestWithSimpleOneof& RequestWithSimpleOneof::default_instance() {
  ::google::protobuf::internal::InitSCC(&protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2foneofs_2eproto::scc_info_RequestWithSimpleOneof.base);
  return *internal_default_instance();
}


void RequestWithSimpleOneof::clear_data() {
// @@protoc_insertion_point(one_of_clear_start:google.protobuf.testing.oneofs.RequestWithSimpleOneof)
  switch (data_case()) {
    case kStrData: {
      data_.str_data_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
      break;
    }
    case kIntData: {
      // No need to clear
      break;
    }
    case kMessageData: {
      delete data_.message_data_;
      break;
    }
    case kMoreData: {
      delete data_.more_data_;
      break;
    }
    case DATA_NOT_SET: {
      break;
    }
  }
  _oneof_case_[0] = DATA_NOT_SET;
}


void RequestWithSimpleOneof::Clear() {
// @@protoc_insertion_point(message_clear_start:google.protobuf.testing.oneofs.RequestWithSimpleOneof)
  ::google::protobuf::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  value_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  clear_data();
  _internal_metadata_.Clear();
}

bool RequestWithSimpleOneof::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  // @@protoc_insertion_point(parse_start:google.protobuf.testing.oneofs.RequestWithSimpleOneof)
  for (;;) {
    ::std::pair<::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // string value = 1;
      case 1: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(10u /* 10 & 0xFF */)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_value()));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            this->value().data(), static_cast<int>(this->value().length()),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "google.protobuf.testing.oneofs.RequestWithSimpleOneof.value"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // string str_data = 2;
      case 2: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(18u /* 18 & 0xFF */)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_str_data()));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            this->str_data().data(), static_cast<int>(this->str_data().length()),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "google.protobuf.testing.oneofs.RequestWithSimpleOneof.str_data"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // int32 int_data = 3;
      case 3: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(24u /* 24 & 0xFF */)) {
          clear_data();
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
                 input, &data_.int_data_)));
          set_has_int_data();
        } else {
          goto handle_unusual;
        }
        break;
      }

      // .google.protobuf.testing.oneofs.Data message_data = 4;
      case 4: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(34u /* 34 & 0xFF */)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
               input, mutable_message_data()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // .google.protobuf.testing.oneofs.MoreData more_data = 5;
      case 5: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(42u /* 42 & 0xFF */)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
               input, mutable_more_data()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormat::SkipField(
              input, tag, _internal_metadata_.mutable_unknown_fields()));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:google.protobuf.testing.oneofs.RequestWithSimpleOneof)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:google.protobuf.testing.oneofs.RequestWithSimpleOneof)
  return false;
#undef DO_
}

void RequestWithSimpleOneof::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:google.protobuf.testing.oneofs.RequestWithSimpleOneof)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // string value = 1;
  if (this->value().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->value().data(), static_cast<int>(this->value().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "google.protobuf.testing.oneofs.RequestWithSimpleOneof.value");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      1, this->value(), output);
  }

  // string str_data = 2;
  if (has_str_data()) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->str_data().data(), static_cast<int>(this->str_data().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "google.protobuf.testing.oneofs.RequestWithSimpleOneof.str_data");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      2, this->str_data(), output);
  }

  // int32 int_data = 3;
  if (has_int_data()) {
    ::google::protobuf::internal::WireFormatLite::WriteInt32(3, this->int_data(), output);
  }

  // .google.protobuf.testing.oneofs.Data message_data = 4;
  if (has_message_data()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      4, this->_internal_message_data(), output);
  }

  // .google.protobuf.testing.oneofs.MoreData more_data = 5;
  if (has_more_data()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      5, this->_internal_more_data(), output);
  }

  if ((_internal_metadata_.have_unknown_fields() &&  ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
        (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()), output);
  }
  // @@protoc_insertion_point(serialize_end:google.protobuf.testing.oneofs.RequestWithSimpleOneof)
}

::google::protobuf::uint8* RequestWithSimpleOneof::InternalSerializeWithCachedSizesToArray(
    bool deterministic, ::google::protobuf::uint8* target) const {
  (void)deterministic; // Unused
  // @@protoc_insertion_point(serialize_to_array_start:google.protobuf.testing.oneofs.RequestWithSimpleOneof)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // string value = 1;
  if (this->value().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->value().data(), static_cast<int>(this->value().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "google.protobuf.testing.oneofs.RequestWithSimpleOneof.value");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        1, this->value(), target);
  }

  // string str_data = 2;
  if (has_str_data()) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->str_data().data(), static_cast<int>(this->str_data().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "google.protobuf.testing.oneofs.RequestWithSimpleOneof.str_data");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        2, this->str_data(), target);
  }

  // int32 int_data = 3;
  if (has_int_data()) {
    target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(3, this->int_data(), target);
  }

  // .google.protobuf.testing.oneofs.Data message_data = 4;
  if (has_message_data()) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageToArray(
        4, this->_internal_message_data(), deterministic, target);
  }

  // .google.protobuf.testing.oneofs.MoreData more_data = 5;
  if (has_more_data()) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageToArray(
        5, this->_internal_more_data(), deterministic, target);
  }

  if ((_internal_metadata_.have_unknown_fields() &&  ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
        (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:google.protobuf.testing.oneofs.RequestWithSimpleOneof)
  return target;
}

size_t RequestWithSimpleOneof::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:google.protobuf.testing.oneofs.RequestWithSimpleOneof)
  size_t total_size = 0;

  if ((_internal_metadata_.have_unknown_fields() &&  ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
    total_size +=
      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
        (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()));
  }
  // string value = 1;
  if (this->value().size() > 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->value());
  }

  switch (data_case()) {
    // string str_data = 2;
    case kStrData: {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::StringSize(
          this->str_data());
      break;
    }
    // int32 int_data = 3;
    case kIntData: {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::Int32Size(
          this->int_data());
      break;
    }
    // .google.protobuf.testing.oneofs.Data message_data = 4;
    case kMessageData: {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::MessageSize(
          *data_.message_data_);
      break;
    }
    // .google.protobuf.testing.oneofs.MoreData more_data = 5;
    case kMoreData: {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::MessageSize(
          *data_.more_data_);
      break;
    }
    case DATA_NOT_SET: {
      break;
    }
  }
  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

void RequestWithSimpleOneof::MergeFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:google.protobuf.testing.oneofs.RequestWithSimpleOneof)
  GOOGLE_DCHECK_NE(&from, this);
  const RequestWithSimpleOneof* source =
      ::google::protobuf::internal::DynamicCastToGenerated<const RequestWithSimpleOneof>(
          &from);
  if (source == NULL) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:google.protobuf.testing.oneofs.RequestWithSimpleOneof)
    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:google.protobuf.testing.oneofs.RequestWithSimpleOneof)
    MergeFrom(*source);
  }
}

void RequestWithSimpleOneof::MergeFrom(const RequestWithSimpleOneof& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:google.protobuf.testing.oneofs.RequestWithSimpleOneof)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  if (from.value().size() > 0) {

    value_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.value_);
  }
  switch (from.data_case()) {
    case kStrData: {
      set_str_data(from.str_data());
      break;
    }
    case kIntData: {
      set_int_data(from.int_data());
      break;
    }
    case kMessageData: {
      mutable_message_data()->::google::protobuf::testing::oneofs::Data::MergeFrom(from.message_data());
      break;
    }
    case kMoreData: {
      mutable_more_data()->::google::protobuf::testing::oneofs::MoreData::MergeFrom(from.more_data());
      break;
    }
    case DATA_NOT_SET: {
      break;
    }
  }
}

void RequestWithSimpleOneof::CopyFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:google.protobuf.testing.oneofs.RequestWithSimpleOneof)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void RequestWithSimpleOneof::CopyFrom(const RequestWithSimpleOneof& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:google.protobuf.testing.oneofs.RequestWithSimpleOneof)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool RequestWithSimpleOneof::IsInitialized() const {
  return true;
}

void RequestWithSimpleOneof::Swap(RequestWithSimpleOneof* other) {
  if (other == this) return;
  InternalSwap(other);
}
void RequestWithSimpleOneof::InternalSwap(RequestWithSimpleOneof* other) {
  using std::swap;
  value_.Swap(&other->value_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(),
    GetArenaNoVirtual());
  swap(data_, other->data_);
  swap(_oneof_case_[0], other->_oneof_case_[0]);
  _internal_metadata_.Swap(&other->_internal_metadata_);
}

::google::protobuf::Metadata RequestWithSimpleOneof::GetMetadata() const {
  protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2foneofs_2eproto::protobuf_AssignDescriptorsOnce();
  return ::protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2foneofs_2eproto::file_level_metadata[kIndexInFileMessages];
}


// ===================================================================

void Data::InitAsDefaultInstance() {
}
#if !defined(_MSC_VER) || _MSC_VER >= 1900
const int Data::kDataValueFieldNumber;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900

Data::Data()
  : ::google::protobuf::Message(), _internal_metadata_(NULL) {
  ::google::protobuf::internal::InitSCC(
      &protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2foneofs_2eproto::scc_info_Data.base);
  SharedCtor();
  // @@protoc_insertion_point(constructor:google.protobuf.testing.oneofs.Data)
}
Data::Data(const Data& from)
  : ::google::protobuf::Message(),
      _internal_metadata_(NULL) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  data_value_ = from.data_value_;
  // @@protoc_insertion_point(copy_constructor:google.protobuf.testing.oneofs.Data)
}

void Data::SharedCtor() {
  data_value_ = 0;
}

Data::~Data() {
  // @@protoc_insertion_point(destructor:google.protobuf.testing.oneofs.Data)
  SharedDtor();
}

void Data::SharedDtor() {
}

void Data::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const ::google::protobuf::Descriptor* Data::descriptor() {
  ::protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2foneofs_2eproto::protobuf_AssignDescriptorsOnce();
  return ::protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2foneofs_2eproto::file_level_metadata[kIndexInFileMessages].descriptor;
}

const Data& Data::default_instance() {
  ::google::protobuf::internal::InitSCC(&protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2foneofs_2eproto::scc_info_Data.base);
  return *internal_default_instance();
}


void Data::Clear() {
// @@protoc_insertion_point(message_clear_start:google.protobuf.testing.oneofs.Data)
  ::google::protobuf::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  data_value_ = 0;
  _internal_metadata_.Clear();
}

bool Data::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  // @@protoc_insertion_point(parse_start:google.protobuf.testing.oneofs.Data)
  for (;;) {
    ::std::pair<::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // int32 data_value = 1;
      case 1: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(8u /* 8 & 0xFF */)) {

          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
                 input, &data_value_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormat::SkipField(
              input, tag, _internal_metadata_.mutable_unknown_fields()));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:google.protobuf.testing.oneofs.Data)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:google.protobuf.testing.oneofs.Data)
  return false;
#undef DO_
}

void Data::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:google.protobuf.testing.oneofs.Data)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // int32 data_value = 1;
  if (this->data_value() != 0) {
    ::google::protobuf::internal::WireFormatLite::WriteInt32(1, this->data_value(), output);
  }

  if ((_internal_metadata_.have_unknown_fields() &&  ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
        (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()), output);
  }
  // @@protoc_insertion_point(serialize_end:google.protobuf.testing.oneofs.Data)
}

::google::protobuf::uint8* Data::InternalSerializeWithCachedSizesToArray(
    bool deterministic, ::google::protobuf::uint8* target) const {
  (void)deterministic; // Unused
  // @@protoc_insertion_point(serialize_to_array_start:google.protobuf.testing.oneofs.Data)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // int32 data_value = 1;
  if (this->data_value() != 0) {
    target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(1, this->data_value(), target);
  }

  if ((_internal_metadata_.have_unknown_fields() &&  ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
        (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:google.protobuf.testing.oneofs.Data)
  return target;
}

size_t Data::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:google.protobuf.testing.oneofs.Data)
  size_t total_size = 0;

  if ((_internal_metadata_.have_unknown_fields() &&  ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
    total_size +=
      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
        (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()));
  }
  // int32 data_value = 1;
  if (this->data_value() != 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::Int32Size(
        this->data_value());
  }

  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

void Data::MergeFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:google.protobuf.testing.oneofs.Data)
  GOOGLE_DCHECK_NE(&from, this);
  const Data* source =
      ::google::protobuf::internal::DynamicCastToGenerated<const Data>(
          &from);
  if (source == NULL) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:google.protobuf.testing.oneofs.Data)
    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:google.protobuf.testing.oneofs.Data)
    MergeFrom(*source);
  }
}

void Data::MergeFrom(const Data& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:google.protobuf.testing.oneofs.Data)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  if (from.data_value() != 0) {
    set_data_value(from.data_value());
  }
}

void Data::CopyFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:google.protobuf.testing.oneofs.Data)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void Data::CopyFrom(const Data& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:google.protobuf.testing.oneofs.Data)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool Data::IsInitialized() const {
  return true;
}

void Data::Swap(Data* other) {
  if (other == this) return;
  InternalSwap(other);
}
void Data::InternalSwap(Data* other) {
  using std::swap;
  swap(data_value_, other->data_value_);
  _internal_metadata_.Swap(&other->_internal_metadata_);
}

::google::protobuf::Metadata Data::GetMetadata() const {
  protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2foneofs_2eproto::protobuf_AssignDescriptorsOnce();
  return ::protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2foneofs_2eproto::file_level_metadata[kIndexInFileMessages];
}


// ===================================================================

void MoreData::InitAsDefaultInstance() {
}
#if !defined(_MSC_VER) || _MSC_VER >= 1900
const int MoreData::kStrValueFieldNumber;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900

MoreData::MoreData()
  : ::google::protobuf::Message(), _internal_metadata_(NULL) {
  ::google::protobuf::internal::InitSCC(
      &protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2foneofs_2eproto::scc_info_MoreData.base);
  SharedCtor();
  // @@protoc_insertion_point(constructor:google.protobuf.testing.oneofs.MoreData)
}
MoreData::MoreData(const MoreData& from)
  : ::google::protobuf::Message(),
      _internal_metadata_(NULL) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  str_value_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.str_value().size() > 0) {
    str_value_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.str_value_);
  }
  // @@protoc_insertion_point(copy_constructor:google.protobuf.testing.oneofs.MoreData)
}

void MoreData::SharedCtor() {
  str_value_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}

MoreData::~MoreData() {
  // @@protoc_insertion_point(destructor:google.protobuf.testing.oneofs.MoreData)
  SharedDtor();
}

void MoreData::SharedDtor() {
  str_value_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}

void MoreData::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const ::google::protobuf::Descriptor* MoreData::descriptor() {
  ::protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2foneofs_2eproto::protobuf_AssignDescriptorsOnce();
  return ::protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2foneofs_2eproto::file_level_metadata[kIndexInFileMessages].descriptor;
}

const MoreData& MoreData::default_instance() {
  ::google::protobuf::internal::InitSCC(&protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2foneofs_2eproto::scc_info_MoreData.base);
  return *internal_default_instance();
}


void MoreData::Clear() {
// @@protoc_insertion_point(message_clear_start:google.protobuf.testing.oneofs.MoreData)
  ::google::protobuf::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  str_value_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  _internal_metadata_.Clear();
}

bool MoreData::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  // @@protoc_insertion_point(parse_start:google.protobuf.testing.oneofs.MoreData)
  for (;;) {
    ::std::pair<::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // string str_value = 1;
      case 1: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(10u /* 10 & 0xFF */)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_str_value()));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            this->str_value().data(), static_cast<int>(this->str_value().length()),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "google.protobuf.testing.oneofs.MoreData.str_value"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormat::SkipField(
              input, tag, _internal_metadata_.mutable_unknown_fields()));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:google.protobuf.testing.oneofs.MoreData)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:google.protobuf.testing.oneofs.MoreData)
  return false;
#undef DO_
}

void MoreData::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:google.protobuf.testing.oneofs.MoreData)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // string str_value = 1;
  if (this->str_value().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->str_value().data(), static_cast<int>(this->str_value().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "google.protobuf.testing.oneofs.MoreData.str_value");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      1, this->str_value(), output);
  }

  if ((_internal_metadata_.have_unknown_fields() &&  ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
        (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()), output);
  }
  // @@protoc_insertion_point(serialize_end:google.protobuf.testing.oneofs.MoreData)
}

::google::protobuf::uint8* MoreData::InternalSerializeWithCachedSizesToArray(
    bool deterministic, ::google::protobuf::uint8* target) const {
  (void)deterministic; // Unused
  // @@protoc_insertion_point(serialize_to_array_start:google.protobuf.testing.oneofs.MoreData)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // string str_value = 1;
  if (this->str_value().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->str_value().data(), static_cast<int>(this->str_value().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "google.protobuf.testing.oneofs.MoreData.str_value");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        1, this->str_value(), target);
  }

  if ((_internal_metadata_.have_unknown_fields() &&  ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
        (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:google.protobuf.testing.oneofs.MoreData)
  return target;
}

size_t MoreData::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:google.protobuf.testing.oneofs.MoreData)
  size_t total_size = 0;

  if ((_internal_metadata_.have_unknown_fields() &&  ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
    total_size +=
      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
        (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()));
  }
  // string str_value = 1;
  if (this->str_value().size() > 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->str_value());
  }

  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

void MoreData::MergeFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:google.protobuf.testing.oneofs.MoreData)
  GOOGLE_DCHECK_NE(&from, this);
  const MoreData* source =
      ::google::protobuf::internal::DynamicCastToGenerated<const MoreData>(
          &from);
  if (source == NULL) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:google.protobuf.testing.oneofs.MoreData)
    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:google.protobuf.testing.oneofs.MoreData)
    MergeFrom(*source);
  }
}

void MoreData::MergeFrom(const MoreData& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:google.protobuf.testing.oneofs.MoreData)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  if (from.str_value().size() > 0) {

    str_value_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.str_value_);
  }
}

void MoreData::CopyFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:google.protobuf.testing.oneofs.MoreData)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void MoreData::CopyFrom(const MoreData& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:google.protobuf.testing.oneofs.MoreData)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool MoreData::IsInitialized() const {
  return true;
}

void MoreData::Swap(MoreData* other) {
  if (other == this) return;
  InternalSwap(other);
}
void MoreData::InternalSwap(MoreData* other) {
  using std::swap;
  str_value_.Swap(&other->str_value_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(),
    GetArenaNoVirtual());
  _internal_metadata_.Swap(&other->_internal_metadata_);
}

::google::protobuf::Metadata MoreData::GetMetadata() const {
  protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2foneofs_2eproto::protobuf_AssignDescriptorsOnce();
  return ::protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2foneofs_2eproto::file_level_metadata[kIndexInFileMessages];
}


// ===================================================================

void Response::InitAsDefaultInstance() {
}
#if !defined(_MSC_VER) || _MSC_VER >= 1900
const int Response::kValueFieldNumber;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900

Response::Response()
  : ::google::protobuf::Message(), _internal_metadata_(NULL) {
  ::google::protobuf::internal::InitSCC(
      &protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2foneofs_2eproto::scc_info_Response.base);
  SharedCtor();
  // @@protoc_insertion_point(constructor:google.protobuf.testing.oneofs.Response)
}
Response::Response(const Response& from)
  : ::google::protobuf::Message(),
      _internal_metadata_(NULL) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  value_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.value().size() > 0) {
    value_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.value_);
  }
  // @@protoc_insertion_point(copy_constructor:google.protobuf.testing.oneofs.Response)
}

void Response::SharedCtor() {
  value_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}

Response::~Response() {
  // @@protoc_insertion_point(destructor:google.protobuf.testing.oneofs.Response)
  SharedDtor();
}

void Response::SharedDtor() {
  value_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}

void Response::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const ::google::protobuf::Descriptor* Response::descriptor() {
  ::protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2foneofs_2eproto::protobuf_AssignDescriptorsOnce();
  return ::protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2foneofs_2eproto::file_level_metadata[kIndexInFileMessages].descriptor;
}

const Response& Response::default_instance() {
  ::google::protobuf::internal::InitSCC(&protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2foneofs_2eproto::scc_info_Response.base);
  return *internal_default_instance();
}


void Response::Clear() {
// @@protoc_insertion_point(message_clear_start:google.protobuf.testing.oneofs.Response)
  ::google::protobuf::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  value_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  _internal_metadata_.Clear();
}

bool Response::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  // @@protoc_insertion_point(parse_start:google.protobuf.testing.oneofs.Response)
  for (;;) {
    ::std::pair<::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // string value = 1;
      case 1: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(10u /* 10 & 0xFF */)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_value()));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            this->value().data(), static_cast<int>(this->value().length()),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "google.protobuf.testing.oneofs.Response.value"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormat::SkipField(
              input, tag, _internal_metadata_.mutable_unknown_fields()));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:google.protobuf.testing.oneofs.Response)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:google.protobuf.testing.oneofs.Response)
  return false;
#undef DO_
}

void Response::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:google.protobuf.testing.oneofs.Response)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // string value = 1;
  if (this->value().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->value().data(), static_cast<int>(this->value().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "google.protobuf.testing.oneofs.Response.value");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      1, this->value(), output);
  }

  if ((_internal_metadata_.have_unknown_fields() &&  ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
        (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()), output);
  }
  // @@protoc_insertion_point(serialize_end:google.protobuf.testing.oneofs.Response)
}

::google::protobuf::uint8* Response::InternalSerializeWithCachedSizesToArray(
    bool deterministic, ::google::protobuf::uint8* target) const {
  (void)deterministic; // Unused
  // @@protoc_insertion_point(serialize_to_array_start:google.protobuf.testing.oneofs.Response)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // string value = 1;
  if (this->value().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->value().data(), static_cast<int>(this->value().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "google.protobuf.testing.oneofs.Response.value");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        1, this->value(), target);
  }

  if ((_internal_metadata_.have_unknown_fields() &&  ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
        (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:google.protobuf.testing.oneofs.Response)
  return target;
}

size_t Response::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:google.protobuf.testing.oneofs.Response)
  size_t total_size = 0;

  if ((_internal_metadata_.have_unknown_fields() &&  ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
    total_size +=
      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
        (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()));
  }
  // string value = 1;
  if (this->value().size() > 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->value());
  }

  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

void Response::MergeFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:google.protobuf.testing.oneofs.Response)
  GOOGLE_DCHECK_NE(&from, this);
  const Response* source =
      ::google::protobuf::internal::DynamicCastToGenerated<const Response>(
          &from);
  if (source == NULL) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:google.protobuf.testing.oneofs.Response)
    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:google.protobuf.testing.oneofs.Response)
    MergeFrom(*source);
  }
}

void Response::MergeFrom(const Response& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:google.protobuf.testing.oneofs.Response)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  if (from.value().size() > 0) {

    value_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.value_);
  }
}

void Response::CopyFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:google.protobuf.testing.oneofs.Response)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void Response::CopyFrom(const Response& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:google.protobuf.testing.oneofs.Response)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool Response::IsInitialized() const {
  return true;
}

void Response::Swap(Response* other) {
  if (other == this) return;
  InternalSwap(other);
}
void Response::InternalSwap(Response* other) {
  using std::swap;
  value_.Swap(&other->value_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(),
    GetArenaNoVirtual());
  _internal_metadata_.Swap(&other->_internal_metadata_);
}

::google::protobuf::Metadata Response::GetMetadata() const {
  protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2foneofs_2eproto::protobuf_AssignDescriptorsOnce();
  return ::protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2foneofs_2eproto::file_level_metadata[kIndexInFileMessages];
}


// @@protoc_insertion_point(namespace_scope)
}  // namespace oneofs
}  // namespace testing
}  // namespace protobuf
}  // namespace google
namespace google {
namespace protobuf {
template<> GOOGLE_PROTOBUF_ATTRIBUTE_NOINLINE ::google::protobuf::testing::oneofs::OneOfsRequest* Arena::CreateMaybeMessage< ::google::protobuf::testing::oneofs::OneOfsRequest >(Arena* arena) {
  return Arena::CreateInternal< ::google::protobuf::testing::oneofs::OneOfsRequest >(arena);
}
template<> GOOGLE_PROTOBUF_ATTRIBUTE_NOINLINE ::google::protobuf::testing::oneofs::RequestWithSimpleOneof* Arena::CreateMaybeMessage< ::google::protobuf::testing::oneofs::RequestWithSimpleOneof >(Arena* arena) {
  return Arena::CreateInternal< ::google::protobuf::testing::oneofs::RequestWithSimpleOneof >(arena);
}
template<> GOOGLE_PROTOBUF_ATTRIBUTE_NOINLINE ::google::protobuf::testing::oneofs::Data* Arena::CreateMaybeMessage< ::google::protobuf::testing::oneofs::Data >(Arena* arena) {
  return Arena::CreateInternal< ::google::protobuf::testing::oneofs::Data >(arena);
}
template<> GOOGLE_PROTOBUF_ATTRIBUTE_NOINLINE ::google::protobuf::testing::oneofs::MoreData* Arena::CreateMaybeMessage< ::google::protobuf::testing::oneofs::MoreData >(Arena* arena) {
  return Arena::CreateInternal< ::google::protobuf::testing::oneofs::MoreData >(arena);
}
template<> GOOGLE_PROTOBUF_ATTRIBUTE_NOINLINE ::google::protobuf::testing::oneofs::Response* Arena::CreateMaybeMessage< ::google::protobuf::testing::oneofs::Response >(Arena* arena) {
  return Arena::CreateInternal< ::google::protobuf::testing::oneofs::Response >(arena);
}
}  // namespace protobuf
}  // namespace google

// @@protoc_insertion_point(global_scope)
