Loading tools/aapt2/cmd/Link.cpp +2 −1 Original line number Original line Diff line number Diff line Loading @@ -1252,7 +1252,8 @@ class Linker { return false; return false; } } ClassDefinition::WriteJavaFile(manifest_class.get(), package_utf8, true, &fout); ClassDefinition::WriteJavaFile(manifest_class.get(), package_utf8, true, false /* strip_api_annotations */, &fout); fout.Flush(); fout.Flush(); if (fout.HadError()) { if (fout.HadError()) { Loading tools/aapt2/java/AnnotationProcessor.cpp +4 −1 Original line number Original line Diff line number Diff line Loading @@ -110,7 +110,7 @@ void AnnotationProcessor::AppendNewLine() { } } } } void AnnotationProcessor::Print(Printer* printer) const { void AnnotationProcessor::Print(Printer* printer, bool strip_api_annotations) const { if (has_comments_) { if (has_comments_) { std::string result = comment_.str(); std::string result = comment_.str(); for (const StringPiece& line : util::Tokenize(result, '\n')) { for (const StringPiece& line : util::Tokenize(result, '\n')) { Loading @@ -123,6 +123,9 @@ void AnnotationProcessor::Print(Printer* printer) const { printer->Println("@Deprecated"); printer->Println("@Deprecated"); } } if (strip_api_annotations) { return; } for (const AnnotationRule& rule : sAnnotationRules) { for (const AnnotationRule& rule : sAnnotationRules) { if (annotation_bit_mask_ & rule.bit_mask) { if (annotation_bit_mask_ & rule.bit_mask) { printer->Println(rule.annotation); printer->Println(rule.annotation); Loading tools/aapt2/java/AnnotationProcessor.h +1 −1 Original line number Original line Diff line number Diff line Loading @@ -64,7 +64,7 @@ class AnnotationProcessor { void AppendNewLine(); void AppendNewLine(); // Writes the comments and annotations to the Printer. // Writes the comments and annotations to the Printer. void Print(text::Printer* printer) const; void Print(text::Printer* printer, bool strip_api_annotations = false) const; private: private: std::stringstream comment_; std::stringstream comment_; Loading tools/aapt2/java/AnnotationProcessor_test.cpp +15 −0 Original line number Original line Diff line number Diff line Loading @@ -76,6 +76,21 @@ TEST(AnnotationProcessorTest, EmitsTestApiAnnotationAndRemovesFromComment) { EXPECT_THAT(annotations, HasSubstr("This is a test API")); EXPECT_THAT(annotations, HasSubstr("This is a test API")); } } TEST(AnnotationProcessorTest, NotEmitSystemApiAnnotation) { AnnotationProcessor processor; processor.AppendComment("@SystemApi This is a system API"); std::string annotations; StringOutputStream out(&annotations); Printer printer(&out); processor.Print(&printer, true /* strip_api_annotations */); out.Flush(); EXPECT_THAT(annotations, Not(HasSubstr("@android.annotation.SystemApi"))); EXPECT_THAT(annotations, Not(HasSubstr("@SystemApi"))); EXPECT_THAT(annotations, HasSubstr("This is a system API")); } TEST(AnnotationProcessor, ExtractsFirstSentence) { TEST(AnnotationProcessor, ExtractsFirstSentence) { EXPECT_THAT(AnnotationProcessor::ExtractFirstSentence("This is the only sentence"), EXPECT_THAT(AnnotationProcessor::ExtractFirstSentence("This is the only sentence"), Eq("This is the only sentence")); Eq("This is the only sentence")); Loading tools/aapt2/java/ClassDefinition.cpp +8 −8 Original line number Original line Diff line number Diff line Loading @@ -23,15 +23,15 @@ using ::android::StringPiece; namespace aapt { namespace aapt { void ClassMember::Print(bool /*final*/, Printer* printer) const { void ClassMember::Print(bool /*final*/, Printer* printer, bool strip_api_annotations) const { processor_.Print(printer); processor_.Print(printer, strip_api_annotations); } } void MethodDefinition::AppendStatement(const StringPiece& statement) { void MethodDefinition::AppendStatement(const StringPiece& statement) { statements_.push_back(statement.to_string()); statements_.push_back(statement.to_string()); } } void MethodDefinition::Print(bool final, Printer* printer) const { void MethodDefinition::Print(bool final, Printer* printer, bool) const { printer->Print(signature_).Println(" {"); printer->Print(signature_).Println(" {"); printer->Indent(); printer->Indent(); for (const auto& statement : statements_) { for (const auto& statement : statements_) { Loading Loading @@ -74,12 +74,12 @@ bool ClassDefinition::empty() const { return true; return true; } } void ClassDefinition::Print(bool final, Printer* printer) const { void ClassDefinition::Print(bool final, Printer* printer, bool strip_api_annotations) const { if (empty() && !create_if_empty_) { if (empty() && !create_if_empty_) { return; return; } } ClassMember::Print(final, printer); ClassMember::Print(final, printer, strip_api_annotations); printer->Print("public "); printer->Print("public "); if (qualifier_ == ClassQualifier::kStatic) { if (qualifier_ == ClassQualifier::kStatic) { Loading @@ -93,7 +93,7 @@ void ClassDefinition::Print(bool final, Printer* printer) const { // and takes precedence over a previous member with the same name. The overridden member is // and takes precedence over a previous member with the same name. The overridden member is // set to nullptr. // set to nullptr. if (member != nullptr) { if (member != nullptr) { member->Print(final, printer); member->Print(final, printer, strip_api_annotations); printer->Println(); printer->Println(); } } } } Loading @@ -111,11 +111,11 @@ constexpr static const char* sWarningHeader = " */\n\n"; " */\n\n"; void ClassDefinition::WriteJavaFile(const ClassDefinition* def, const StringPiece& package, void ClassDefinition::WriteJavaFile(const ClassDefinition* def, const StringPiece& package, bool final, io::OutputStream* out) { bool final, bool strip_api_annotations, io::OutputStream* out) { Printer printer(out); Printer printer(out); printer.Print(sWarningHeader).Print("package ").Print(package).Println(";"); printer.Print(sWarningHeader).Print("package ").Print(package).Println(";"); printer.Println(); printer.Println(); def->Print(final, &printer); def->Print(final, &printer, strip_api_annotations); } } } // namespace aapt } // namespace aapt Loading
tools/aapt2/cmd/Link.cpp +2 −1 Original line number Original line Diff line number Diff line Loading @@ -1252,7 +1252,8 @@ class Linker { return false; return false; } } ClassDefinition::WriteJavaFile(manifest_class.get(), package_utf8, true, &fout); ClassDefinition::WriteJavaFile(manifest_class.get(), package_utf8, true, false /* strip_api_annotations */, &fout); fout.Flush(); fout.Flush(); if (fout.HadError()) { if (fout.HadError()) { Loading
tools/aapt2/java/AnnotationProcessor.cpp +4 −1 Original line number Original line Diff line number Diff line Loading @@ -110,7 +110,7 @@ void AnnotationProcessor::AppendNewLine() { } } } } void AnnotationProcessor::Print(Printer* printer) const { void AnnotationProcessor::Print(Printer* printer, bool strip_api_annotations) const { if (has_comments_) { if (has_comments_) { std::string result = comment_.str(); std::string result = comment_.str(); for (const StringPiece& line : util::Tokenize(result, '\n')) { for (const StringPiece& line : util::Tokenize(result, '\n')) { Loading @@ -123,6 +123,9 @@ void AnnotationProcessor::Print(Printer* printer) const { printer->Println("@Deprecated"); printer->Println("@Deprecated"); } } if (strip_api_annotations) { return; } for (const AnnotationRule& rule : sAnnotationRules) { for (const AnnotationRule& rule : sAnnotationRules) { if (annotation_bit_mask_ & rule.bit_mask) { if (annotation_bit_mask_ & rule.bit_mask) { printer->Println(rule.annotation); printer->Println(rule.annotation); Loading
tools/aapt2/java/AnnotationProcessor.h +1 −1 Original line number Original line Diff line number Diff line Loading @@ -64,7 +64,7 @@ class AnnotationProcessor { void AppendNewLine(); void AppendNewLine(); // Writes the comments and annotations to the Printer. // Writes the comments and annotations to the Printer. void Print(text::Printer* printer) const; void Print(text::Printer* printer, bool strip_api_annotations = false) const; private: private: std::stringstream comment_; std::stringstream comment_; Loading
tools/aapt2/java/AnnotationProcessor_test.cpp +15 −0 Original line number Original line Diff line number Diff line Loading @@ -76,6 +76,21 @@ TEST(AnnotationProcessorTest, EmitsTestApiAnnotationAndRemovesFromComment) { EXPECT_THAT(annotations, HasSubstr("This is a test API")); EXPECT_THAT(annotations, HasSubstr("This is a test API")); } } TEST(AnnotationProcessorTest, NotEmitSystemApiAnnotation) { AnnotationProcessor processor; processor.AppendComment("@SystemApi This is a system API"); std::string annotations; StringOutputStream out(&annotations); Printer printer(&out); processor.Print(&printer, true /* strip_api_annotations */); out.Flush(); EXPECT_THAT(annotations, Not(HasSubstr("@android.annotation.SystemApi"))); EXPECT_THAT(annotations, Not(HasSubstr("@SystemApi"))); EXPECT_THAT(annotations, HasSubstr("This is a system API")); } TEST(AnnotationProcessor, ExtractsFirstSentence) { TEST(AnnotationProcessor, ExtractsFirstSentence) { EXPECT_THAT(AnnotationProcessor::ExtractFirstSentence("This is the only sentence"), EXPECT_THAT(AnnotationProcessor::ExtractFirstSentence("This is the only sentence"), Eq("This is the only sentence")); Eq("This is the only sentence")); Loading
tools/aapt2/java/ClassDefinition.cpp +8 −8 Original line number Original line Diff line number Diff line Loading @@ -23,15 +23,15 @@ using ::android::StringPiece; namespace aapt { namespace aapt { void ClassMember::Print(bool /*final*/, Printer* printer) const { void ClassMember::Print(bool /*final*/, Printer* printer, bool strip_api_annotations) const { processor_.Print(printer); processor_.Print(printer, strip_api_annotations); } } void MethodDefinition::AppendStatement(const StringPiece& statement) { void MethodDefinition::AppendStatement(const StringPiece& statement) { statements_.push_back(statement.to_string()); statements_.push_back(statement.to_string()); } } void MethodDefinition::Print(bool final, Printer* printer) const { void MethodDefinition::Print(bool final, Printer* printer, bool) const { printer->Print(signature_).Println(" {"); printer->Print(signature_).Println(" {"); printer->Indent(); printer->Indent(); for (const auto& statement : statements_) { for (const auto& statement : statements_) { Loading Loading @@ -74,12 +74,12 @@ bool ClassDefinition::empty() const { return true; return true; } } void ClassDefinition::Print(bool final, Printer* printer) const { void ClassDefinition::Print(bool final, Printer* printer, bool strip_api_annotations) const { if (empty() && !create_if_empty_) { if (empty() && !create_if_empty_) { return; return; } } ClassMember::Print(final, printer); ClassMember::Print(final, printer, strip_api_annotations); printer->Print("public "); printer->Print("public "); if (qualifier_ == ClassQualifier::kStatic) { if (qualifier_ == ClassQualifier::kStatic) { Loading @@ -93,7 +93,7 @@ void ClassDefinition::Print(bool final, Printer* printer) const { // and takes precedence over a previous member with the same name. The overridden member is // and takes precedence over a previous member with the same name. The overridden member is // set to nullptr. // set to nullptr. if (member != nullptr) { if (member != nullptr) { member->Print(final, printer); member->Print(final, printer, strip_api_annotations); printer->Println(); printer->Println(); } } } } Loading @@ -111,11 +111,11 @@ constexpr static const char* sWarningHeader = " */\n\n"; " */\n\n"; void ClassDefinition::WriteJavaFile(const ClassDefinition* def, const StringPiece& package, void ClassDefinition::WriteJavaFile(const ClassDefinition* def, const StringPiece& package, bool final, io::OutputStream* out) { bool final, bool strip_api_annotations, io::OutputStream* out) { Printer printer(out); Printer printer(out); printer.Print(sWarningHeader).Print("package ").Print(package).Println(";"); printer.Print(sWarningHeader).Print("package ").Print(package).Println(";"); printer.Println(); printer.Println(); def->Print(final, &printer); def->Print(final, &printer, strip_api_annotations); } } } // namespace aapt } // namespace aapt