Back to home page

EIC code displayed by LXR

 
 

    


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 }  // namespace java
0034 }  // namespace compiler
0035 }  // namespace protobuf
0036 }  // namespace google
0037 
0038 #endif  // GOOGLE_PROTOBUF_COMPILER_JAVA_IMMUTABLE_FIELD_GENERATOR_H__