File indexing completed on 2025-01-31 10:11:58
0001 #ifndef GOOGLE_PROTOBUF_COMPILER_JAVA_IMMUTABLE_FIELD_GENERATOR_H__
0002 #define GOOGLE_PROTOBUF_COMPILER_JAVA_IMMUTABLE_FIELD_GENERATOR_H__
0003
0004 #include <string>
0005
0006 #include "google/protobuf/io/printer.h"
0007
0008 namespace google {
0009 namespace protobuf {
0010 namespace compiler {
0011 namespace java {
0012
0013 class ImmutableFieldLiteGenerator {
0014 public:
0015 ImmutableFieldLiteGenerator() = default;
0016 ImmutableFieldLiteGenerator(const ImmutableFieldLiteGenerator&) = delete;
0017 ImmutableFieldLiteGenerator& operator=(const ImmutableFieldLiteGenerator&) =
0018 delete;
0019 virtual ~ImmutableFieldLiteGenerator() = default;
0020
0021 virtual int GetNumBitsForMessage() const = 0;
0022 virtual void GenerateInterfaceMembers(io::Printer* printer) const = 0;
0023 virtual void GenerateMembers(io::Printer* printer) const = 0;
0024 virtual void GenerateBuilderMembers(io::Printer* printer) const = 0;
0025 virtual void GenerateInitializationCode(io::Printer* printer) const = 0;
0026 virtual void GenerateFieldInfo(io::Printer* printer,
0027 std::vector<uint16_t>* output) const = 0;
0028 virtual void GenerateKotlinDslMembers(io::Printer* printer) const = 0;
0029
0030 virtual std::string GetBoxedType() const = 0;
0031 };
0032
0033 }
0034 }
0035 }
0036 }
0037
0038 #endif