43
43
namespace protobuf {
46
class Context; // context.h
47
class ClassNameResolver; // name_resolver.h
44
53
namespace compiler {
47
class EnumFieldGenerator : public FieldGenerator {
56
class ImmutableEnumFieldGenerator : public ImmutableFieldGenerator {
49
explicit EnumFieldGenerator(const FieldDescriptor* descriptor,
50
int messageBitIndex, int builderBitIndex);
51
~EnumFieldGenerator();
58
explicit ImmutableEnumFieldGenerator(
59
const FieldDescriptor* descriptor, int messageBitIndex,
60
int builderBitIndex, Context* context);
61
~ImmutableEnumFieldGenerator();
53
// implements FieldGenerator ---------------------------------------
63
// implements ImmutableFieldGenerator ---------------------------------------
54
64
int GetNumBitsForMessage() const;
55
65
int GetNumBitsForBuilder() const;
56
66
void GenerateInterfaceMembers(io::Printer* printer) const;
71
81
string GetBoxedType() const;
74
84
const FieldDescriptor* descriptor_;
75
85
map<string, string> variables_;
76
86
const int messageBitIndex_;
77
87
const int builderBitIndex_;
79
GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(EnumFieldGenerator);
82
class RepeatedEnumFieldGenerator : public FieldGenerator {
84
explicit RepeatedEnumFieldGenerator(const FieldDescriptor* descriptor,
85
int messageBitIndex, int builderBitIndex);
86
~RepeatedEnumFieldGenerator();
88
// implements FieldGenerator ---------------------------------------
89
ClassNameResolver* name_resolver_;
92
GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(ImmutableEnumFieldGenerator);
95
class ImmutableEnumOneofFieldGenerator : public ImmutableEnumFieldGenerator {
97
ImmutableEnumOneofFieldGenerator(
98
const FieldDescriptor* descriptor, int messageBitIndex,
99
int builderBitIndex, Context* context);
100
~ImmutableEnumOneofFieldGenerator();
102
void GenerateMembers(io::Printer* printer) const;
103
void GenerateBuilderMembers(io::Printer* printer) const;
104
void GenerateMergingCode(io::Printer* printer) const;
105
void GenerateBuildingCode(io::Printer* printer) const;
106
void GenerateParsingCode(io::Printer* printer) const;
107
void GenerateSerializationCode(io::Printer* printer) const;
108
void GenerateSerializedSizeCode(io::Printer* printer) const;
111
GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(ImmutableEnumOneofFieldGenerator);
114
class RepeatedImmutableEnumFieldGenerator : public ImmutableFieldGenerator {
116
explicit RepeatedImmutableEnumFieldGenerator(
117
const FieldDescriptor* descriptor, int messageBitIndex,
118
int builderBitIndex, Context* context);
119
~RepeatedImmutableEnumFieldGenerator();
121
// implements ImmutableFieldGenerator ---------------------------------------
89
122
int GetNumBitsForMessage() const;
90
123
int GetNumBitsForBuilder() const;
91
124
void GenerateInterfaceMembers(io::Printer* printer) const;
111
144
map<string, string> variables_;
112
145
const int messageBitIndex_;
113
146
const int builderBitIndex_;
148
ClassNameResolver* name_resolver_;
115
GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(RepeatedEnumFieldGenerator);
150
GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(RepeatedImmutableEnumFieldGenerator);
118
153
} // namespace java