A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://github.com/protocolbuffers/protobuf/commit/0416c3e1073ac08fe99fbd964833bae70e3c6cd0 below:

Implement Protobuf Java Immutable API `nest_in_file_class` feature fo… · protocolbuffers/protobuf@0416c3e · GitHub

18 18

#include "absl/container/btree_set.h"

19 19

#include "absl/log/absl_check.h"

20 20

#include "absl/log/absl_log.h"

21 +

#include "absl/status/status.h"

21 22

#include "absl/strings/str_cat.h"

22 23

#include "absl/strings/string_view.h"

23 24

#include "google/protobuf/compiler/code_generator.h"

33 34

#include "google/protobuf/compiler/java/shared_code_generator.h"

34 35

#include "google/protobuf/compiler/retention.h"

35 36

#include "google/protobuf/compiler/versions.h"

37 +

#include "google/protobuf/descriptor.h"

36 38

#include "google/protobuf/descriptor.pb.h"

37 39

#include "google/protobuf/descriptor_visitor.h"

38 40

#include "google/protobuf/dynamic_message.h"

@@ -252,6 +254,19 @@ bool FileGenerator::Validate(std::string* error) {

252 254

"https://github.com/protocolbuffers/protobuf/blob/main/java/"

253 255

"lite.md";

254 256

}

257 +

google::protobuf::internal::VisitDescriptors(*file_, [&](const EnumDescriptor& enm) {

258 +

absl::Status status = ValidateNestInFileClassFeature(enm);

259 +

if (!status.ok()) {

260 +

absl::StrAppend(error, status.message());

261 +

}

262 +

});

263 + 264 +

google::protobuf::internal::VisitDescriptors(*file_, [&](const Descriptor& message) {

265 +

absl::Status status = ValidateNestInFileClassFeature(message);

266 +

if (!status.ok()) {

267 +

absl::StrAppend(error, status.message());

268 +

}

269 +

});

255 270 256 271

return error->empty();

257 272

}

@@ -338,17 +353,21 @@ void FileGenerator::Generate(io::Printer* printer) {

338 353 339 354

// -----------------------------------------------------------------

340 355 341 -

if (!MultipleJavaFiles(file_, immutable_api_)) {

342 -

for (int i = 0; i < file_->enum_type_count(); i++) {

356 +

for (int i = 0; i < file_->enum_type_count(); i++) {

357 +

if (NestedInFileClass(*file_->enum_type(i), immutable_api_)) {

343 358

generator_factory_->NewEnumGenerator(file_->enum_type(i))

344 359

->Generate(printer);

345 360

}

346 -

for (int i = 0; i < file_->message_type_count(); i++) {

361 +

}

362 +

for (int i = 0; i < file_->message_type_count(); i++) {

363 +

if (NestedInFileClass(*file_->message_type(i), immutable_api_)) {

347 364

message_generators_[i]->GenerateInterface(printer);

348 365

message_generators_[i]->Generate(printer);

349 366

}

350 -

if (HasGenericServices(file_, context_->EnforceLite())) {

351 -

for (int i = 0; i < file_->service_count(); i++) {

367 +

}

368 +

if (HasGenericServices(file_, context_->EnforceLite())) {

369 +

for (int i = 0; i < file_->service_count(); i++) {

370 +

if (NestedInFileClass(*file_->service(i), immutable_api_)) {

352 371

std::unique_ptr<ServiceGenerator> generator(

353 372

generator_factory_->NewServiceGenerator(file_->service(i)));

354 373

generator->Generate(printer);

@@ -564,38 +583,39 @@ void FileGenerator::GenerateSiblings(

564 583

const std::string& package_dir, GeneratorContext* context,

565 584

std::vector<std::string>* file_list,

566 585

std::vector<std::string>* annotation_list) {

567 -

if (MultipleJavaFiles(file_, immutable_api_)) {

568 -

for (int i = 0; i < file_->enum_type_count(); i++) {

569 -

std::unique_ptr<EnumGenerator> generator(

570 -

generator_factory_->NewEnumGenerator(file_->enum_type(i)));

571 -

GenerateSibling<EnumGenerator>(

572 -

package_dir, java_package_, file_->enum_type(i), context, file_list,

573 -

options_.annotate_code, annotation_list, "", generator.get(),

574 -

options_.opensource_runtime, &EnumGenerator::Generate);

575 -

}

576 -

for (int i = 0; i < file_->message_type_count(); i++) {

577 -

if (immutable_api_) {

578 -

GenerateSibling<MessageGenerator>(

579 -

package_dir, java_package_, file_->message_type(i), context,

580 -

file_list, options_.annotate_code, annotation_list, "OrBuilder",

581 -

message_generators_[i].get(), options_.opensource_runtime,

582 -

&MessageGenerator::GenerateInterface);

583 -

}

586 +

for (int i = 0; i < file_->enum_type_count(); i++) {

587 +

if (NestedInFileClass(*file_->enum_type(i), immutable_api_)) continue;

588 +

std::unique_ptr<EnumGenerator> generator(

589 +

generator_factory_->NewEnumGenerator(file_->enum_type(i)));

590 +

GenerateSibling<EnumGenerator>(

591 +

package_dir, java_package_, file_->enum_type(i), context, file_list,

592 +

options_.annotate_code, annotation_list, "", generator.get(),

593 +

options_.opensource_runtime, &EnumGenerator::Generate);

594 +

}

595 +

for (int i = 0; i < file_->message_type_count(); i++) {

596 +

if (NestedInFileClass(*file_->message_type(i), immutable_api_)) continue;

597 +

if (immutable_api_) {

584 598

GenerateSibling<MessageGenerator>(

585 599

package_dir, java_package_, file_->message_type(i), context,

586 -

file_list, options_.annotate_code, annotation_list, "",

600 +

file_list, options_.annotate_code, annotation_list, "OrBuilder",

587 601

message_generators_[i].get(), options_.opensource_runtime,

588 -

&MessageGenerator::Generate);

602 +

&MessageGenerator::GenerateInterface);

589 603

}

590 -

if (HasGenericServices(file_, context_->EnforceLite())) {

591 -

for (int i = 0; i < file_->service_count(); i++) {

592 -

std::unique_ptr<ServiceGenerator> generator(

593 -

generator_factory_->NewServiceGenerator(file_->service(i)));

594 -

GenerateSibling<ServiceGenerator>(

595 -

package_dir, java_package_, file_->service(i), context, file_list,

596 -

options_.annotate_code, annotation_list, "", generator.get(),

597 -

options_.opensource_runtime, &ServiceGenerator::Generate);

598 -

}

604 +

GenerateSibling<MessageGenerator>(

605 +

package_dir, java_package_, file_->message_type(i), context, file_list,

606 +

options_.annotate_code, annotation_list, "",

607 +

message_generators_[i].get(), options_.opensource_runtime,

608 +

&MessageGenerator::Generate);

609 +

}

610 +

if (HasGenericServices(file_, context_->EnforceLite())) {

611 +

for (int i = 0; i < file_->service_count(); i++) {

612 +

if (NestedInFileClass(*file_->service(i), immutable_api_)) continue;

613 +

std::unique_ptr<ServiceGenerator> generator(

614 +

generator_factory_->NewServiceGenerator(file_->service(i)));

615 +

GenerateSibling<ServiceGenerator>(

616 +

package_dir, java_package_, file_->service(i), context, file_list,

617 +

options_.annotate_code, annotation_list, "", generator.get(),

618 +

options_.opensource_runtime, &ServiceGenerator::Generate);

599 619

}

600 620

}

601 621

}


RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4