47
47
class MessageFieldGenerator : public FieldGenerator {
49
explicit MessageFieldGenerator(const FieldDescriptor* descriptor);
49
explicit MessageFieldGenerator(const FieldDescriptor* descriptor,
50
int messageBitIndex, int builderBitIndex);
50
51
~MessageFieldGenerator();
52
53
// implements FieldGenerator ---------------------------------------
54
int GetNumBitsForMessage() const;
55
int GetNumBitsForBuilder() const;
56
void GenerateInterfaceMembers(io::Printer* printer) const;
53
57
void GenerateMembers(io::Printer* printer) const;
54
58
void GenerateBuilderMembers(io::Printer* printer) const;
55
59
void GenerateInitializationCode(io::Printer* printer) const;
60
void GenerateBuilderClearCode(io::Printer* printer) const;
56
61
void GenerateMergingCode(io::Printer* printer) const;
57
62
void GenerateBuildingCode(io::Printer* printer) const;
58
63
void GenerateParsingCode(io::Printer* printer) const;
59
64
void GenerateSerializationCode(io::Printer* printer) const;
60
65
void GenerateSerializedSizeCode(io::Printer* printer) const;
66
void GenerateFieldBuilderInitializationCode(io::Printer* printer) const;
67
void GenerateEqualsCode(io::Printer* printer) const;
68
void GenerateHashCode(io::Printer* printer) const;
62
70
string GetBoxedType() const;
65
73
const FieldDescriptor* descriptor_;
66
74
map<string, string> variables_;
75
const int messageBitIndex_;
76
const int builderBitIndex_;
68
78
GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(MessageFieldGenerator);
80
void PrintNestedBuilderCondition(io::Printer* printer,
81
const char* regular_case, const char* nested_builder_case) const;
82
void PrintNestedBuilderFunction(io::Printer* printer,
83
const char* method_prototype, const char* regular_case,
84
const char* nested_builder_case,
85
const char* trailing_code) const;
71
88
class RepeatedMessageFieldGenerator : public FieldGenerator {
73
explicit RepeatedMessageFieldGenerator(const FieldDescriptor* descriptor);
90
explicit RepeatedMessageFieldGenerator(const FieldDescriptor* descriptor,
91
int messageBitIndex, int builderBitIndex);
74
92
~RepeatedMessageFieldGenerator();
76
94
// implements FieldGenerator ---------------------------------------
95
int GetNumBitsForMessage() const;
96
int GetNumBitsForBuilder() const;
97
void GenerateInterfaceMembers(io::Printer* printer) const;
77
98
void GenerateMembers(io::Printer* printer) const;
78
99
void GenerateBuilderMembers(io::Printer* printer) const;
79
100
void GenerateInitializationCode(io::Printer* printer) const;
101
void GenerateBuilderClearCode(io::Printer* printer) const;
80
102
void GenerateMergingCode(io::Printer* printer) const;
81
103
void GenerateBuildingCode(io::Printer* printer) const;
82
104
void GenerateParsingCode(io::Printer* printer) const;
83
105
void GenerateSerializationCode(io::Printer* printer) const;
84
106
void GenerateSerializedSizeCode(io::Printer* printer) const;
107
void GenerateFieldBuilderInitializationCode(io::Printer* printer) const;
108
void GenerateEqualsCode(io::Printer* printer) const;
109
void GenerateHashCode(io::Printer* printer) const;
86
111
string GetBoxedType() const;
89
114
const FieldDescriptor* descriptor_;
90
115
map<string, string> variables_;
116
const int messageBitIndex_;
117
const int builderBitIndex_;
92
119
GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(RepeatedMessageFieldGenerator);
121
void PrintNestedBuilderCondition(io::Printer* printer,
122
const char* regular_case, const char* nested_builder_case) const;
123
void PrintNestedBuilderFunction(io::Printer* printer,
124
const char* method_prototype, const char* regular_case,
125
const char* nested_builder_case,
126
const char* trailing_code) const;
95
129
} // namespace java