| OLD | NEW |
| 1 // Protocol Buffers - Google's data interchange format | 1 // Protocol Buffers - Google's data interchange format |
| 2 // Copyright 2008 Google Inc. All rights reserved. | 2 // Copyright 2008 Google Inc. All rights reserved. |
| 3 // http://code.google.com/p/protobuf/ | 3 // https://developers.google.com/protocol-buffers/ |
| 4 // | 4 // |
| 5 // Redistribution and use in source and binary forms, with or without | 5 // Redistribution and use in source and binary forms, with or without |
| 6 // modification, are permitted provided that the following conditions are | 6 // modification, are permitted provided that the following conditions are |
| 7 // met: | 7 // met: |
| 8 // | 8 // |
| 9 // * Redistributions of source code must retain the above copyright | 9 // * Redistributions of source code must retain the above copyright |
| 10 // notice, this list of conditions and the following disclaimer. | 10 // notice, this list of conditions and the following disclaimer. |
| 11 // * Redistributions in binary form must reproduce the above | 11 // * Redistributions in binary form must reproduce the above |
| 12 // copyright notice, this list of conditions and the following disclaimer | 12 // copyright notice, this list of conditions and the following disclaimer |
| 13 // in the documentation and/or other materials provided with the | 13 // in the documentation and/or other materials provided with the |
| (...skipping 20 matching lines...) Expand all Loading... |
| 34 | 34 |
| 35 #ifndef GOOGLE_PROTOBUF_COMPILER_JAVA_PRIMITIVE_FIELD_H__ | 35 #ifndef GOOGLE_PROTOBUF_COMPILER_JAVA_PRIMITIVE_FIELD_H__ |
| 36 #define GOOGLE_PROTOBUF_COMPILER_JAVA_PRIMITIVE_FIELD_H__ | 36 #define GOOGLE_PROTOBUF_COMPILER_JAVA_PRIMITIVE_FIELD_H__ |
| 37 | 37 |
| 38 #include <map> | 38 #include <map> |
| 39 #include <string> | 39 #include <string> |
| 40 #include <google/protobuf/compiler/java/java_field.h> | 40 #include <google/protobuf/compiler/java/java_field.h> |
| 41 | 41 |
| 42 namespace google { | 42 namespace google { |
| 43 namespace protobuf { | 43 namespace protobuf { |
| 44 namespace compiler { |
| 45 namespace java { |
| 46 class Context; // context.h |
| 47 class ClassNameResolver; // name_resolver.h |
| 48 } |
| 49 } |
| 50 } |
| 51 |
| 52 namespace protobuf { |
| 44 namespace compiler { | 53 namespace compiler { |
| 45 namespace java { | 54 namespace java { |
| 46 | 55 |
| 47 class PrimitiveFieldGenerator : public FieldGenerator { | 56 class ImmutablePrimitiveFieldGenerator : public ImmutableFieldGenerator { |
| 48 public: | 57 public: |
| 49 explicit PrimitiveFieldGenerator(const FieldDescriptor* descriptor, | 58 explicit ImmutablePrimitiveFieldGenerator( |
| 50 int messageBitIndex, int builderBitIndex); | 59 const FieldDescriptor* descriptor, int messageBitIndex, |
| 51 ~PrimitiveFieldGenerator(); | 60 int builderBitIndex, Context* context); |
| 61 ~ImmutablePrimitiveFieldGenerator(); |
| 52 | 62 |
| 53 // implements FieldGenerator --------------------------------------- | 63 // implements ImmutableFieldGenerator --------------------------------------- |
| 54 int GetNumBitsForMessage() const; | 64 int GetNumBitsForMessage() const; |
| 55 int GetNumBitsForBuilder() const; | 65 int GetNumBitsForBuilder() const; |
| 56 void GenerateInterfaceMembers(io::Printer* printer) const; | 66 void GenerateInterfaceMembers(io::Printer* printer) const; |
| 57 void GenerateMembers(io::Printer* printer) const; | 67 void GenerateMembers(io::Printer* printer) const; |
| 58 void GenerateBuilderMembers(io::Printer* printer) const; | 68 void GenerateBuilderMembers(io::Printer* printer) const; |
| 59 void GenerateInitializationCode(io::Printer* printer) const; | 69 void GenerateInitializationCode(io::Printer* printer) const; |
| 60 void GenerateBuilderClearCode(io::Printer* printer) const; | 70 void GenerateBuilderClearCode(io::Printer* printer) const; |
| 61 void GenerateMergingCode(io::Printer* printer) const; | 71 void GenerateMergingCode(io::Printer* printer) const; |
| 62 void GenerateBuildingCode(io::Printer* printer) const; | 72 void GenerateBuildingCode(io::Printer* printer) const; |
| 63 void GenerateParsingCode(io::Printer* printer) const; | 73 void GenerateParsingCode(io::Printer* printer) const; |
| 64 void GenerateParsingDoneCode(io::Printer* printer) const; | 74 void GenerateParsingDoneCode(io::Printer* printer) const; |
| 65 void GenerateSerializationCode(io::Printer* printer) const; | 75 void GenerateSerializationCode(io::Printer* printer) const; |
| 66 void GenerateSerializedSizeCode(io::Printer* printer) const; | 76 void GenerateSerializedSizeCode(io::Printer* printer) const; |
| 67 void GenerateFieldBuilderInitializationCode(io::Printer* printer) const; | 77 void GenerateFieldBuilderInitializationCode(io::Printer* printer) const; |
| 68 void GenerateEqualsCode(io::Printer* printer) const; | 78 void GenerateEqualsCode(io::Printer* printer) const; |
| 69 void GenerateHashCode(io::Printer* printer) const; | 79 void GenerateHashCode(io::Printer* printer) const; |
| 70 | 80 |
| 71 string GetBoxedType() const; | 81 string GetBoxedType() const; |
| 72 | 82 |
| 73 private: | 83 protected: |
| 74 const FieldDescriptor* descriptor_; | 84 const FieldDescriptor* descriptor_; |
| 75 map<string, string> variables_; | 85 map<string, string> variables_; |
| 76 const int messageBitIndex_; | 86 const int messageBitIndex_; |
| 77 const int builderBitIndex_; | 87 const int builderBitIndex_; |
| 88 Context* context_; |
| 89 ClassNameResolver* name_resolver_; |
| 78 | 90 |
| 79 GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(PrimitiveFieldGenerator); | 91 private: |
| 92 GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(ImmutablePrimitiveFieldGenerator); |
| 80 }; | 93 }; |
| 81 | 94 |
| 82 class RepeatedPrimitiveFieldGenerator : public FieldGenerator { | 95 class ImmutablePrimitiveOneofFieldGenerator |
| 96 : public ImmutablePrimitiveFieldGenerator { |
| 83 public: | 97 public: |
| 84 explicit RepeatedPrimitiveFieldGenerator(const FieldDescriptor* descriptor, | 98 ImmutablePrimitiveOneofFieldGenerator( |
| 85 int messageBitIndex, int builderBitIndex); | 99 const FieldDescriptor* descriptor, int messageBitIndex, |
| 86 ~RepeatedPrimitiveFieldGenerator(); | 100 int builderBitIndex, Context* context); |
| 101 ~ImmutablePrimitiveOneofFieldGenerator(); |
| 87 | 102 |
| 88 // implements FieldGenerator --------------------------------------- | 103 void GenerateMembers(io::Printer* printer) const; |
| 104 void GenerateBuilderMembers(io::Printer* printer) const; |
| 105 void GenerateBuildingCode(io::Printer* printer) const; |
| 106 void GenerateMergingCode(io::Printer* printer) const; |
| 107 void GenerateParsingCode(io::Printer* printer) const; |
| 108 void GenerateSerializationCode(io::Printer* printer) const; |
| 109 void GenerateSerializedSizeCode(io::Printer* printer) const; |
| 110 |
| 111 private: |
| 112 GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(ImmutablePrimitiveOneofFieldGenerator); |
| 113 }; |
| 114 |
| 115 class RepeatedImmutablePrimitiveFieldGenerator |
| 116 : public ImmutableFieldGenerator { |
| 117 public: |
| 118 explicit RepeatedImmutablePrimitiveFieldGenerator( |
| 119 const FieldDescriptor* descriptor, int messageBitIndex, |
| 120 int builderBitIndex, Context* context); |
| 121 virtual ~RepeatedImmutablePrimitiveFieldGenerator(); |
| 122 |
| 123 // implements ImmutableFieldGenerator --------------------------------------- |
| 89 int GetNumBitsForMessage() const; | 124 int GetNumBitsForMessage() const; |
| 90 int GetNumBitsForBuilder() const; | 125 int GetNumBitsForBuilder() const; |
| 91 void GenerateInterfaceMembers(io::Printer* printer) const; | 126 void GenerateInterfaceMembers(io::Printer* printer) const; |
| 92 void GenerateMembers(io::Printer* printer) const; | 127 void GenerateMembers(io::Printer* printer) const; |
| 93 void GenerateBuilderMembers(io::Printer* printer) const; | 128 void GenerateBuilderMembers(io::Printer* printer) const; |
| 94 void GenerateInitializationCode(io::Printer* printer) const; | 129 void GenerateInitializationCode(io::Printer* printer) const; |
| 95 void GenerateBuilderClearCode(io::Printer* printer) const; | 130 void GenerateBuilderClearCode(io::Printer* printer) const; |
| 96 void GenerateMergingCode(io::Printer* printer) const; | 131 void GenerateMergingCode(io::Printer* printer) const; |
| 97 void GenerateBuildingCode(io::Printer* printer) const; | 132 void GenerateBuildingCode(io::Printer* printer) const; |
| 98 void GenerateParsingCode(io::Printer* printer) const; | 133 void GenerateParsingCode(io::Printer* printer) const; |
| 99 void GenerateParsingCodeFromPacked(io::Printer* printer) const; | 134 void GenerateParsingCodeFromPacked(io::Printer* printer) const; |
| 100 void GenerateParsingDoneCode(io::Printer* printer) const; | 135 void GenerateParsingDoneCode(io::Printer* printer) const; |
| 101 void GenerateSerializationCode(io::Printer* printer) const; | 136 void GenerateSerializationCode(io::Printer* printer) const; |
| 102 void GenerateSerializedSizeCode(io::Printer* printer) const; | 137 void GenerateSerializedSizeCode(io::Printer* printer) const; |
| 103 void GenerateFieldBuilderInitializationCode(io::Printer* printer) const; | 138 void GenerateFieldBuilderInitializationCode(io::Printer* printer) const; |
| 104 void GenerateEqualsCode(io::Printer* printer) const; | 139 void GenerateEqualsCode(io::Printer* printer) const; |
| 105 void GenerateHashCode(io::Printer* printer) const; | 140 void GenerateHashCode(io::Printer* printer) const; |
| 106 | 141 |
| 107 string GetBoxedType() const; | 142 string GetBoxedType() const; |
| 108 | 143 |
| 109 private: | 144 private: |
| 110 const FieldDescriptor* descriptor_; | 145 const FieldDescriptor* descriptor_; |
| 111 map<string, string> variables_; | 146 map<string, string> variables_; |
| 112 const int messageBitIndex_; | 147 const int messageBitIndex_; |
| 113 const int builderBitIndex_; | 148 const int builderBitIndex_; |
| 149 Context* context_; |
| 150 ClassNameResolver* name_resolver_; |
| 114 | 151 |
| 115 GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(RepeatedPrimitiveFieldGenerator); | 152 GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(RepeatedImmutablePrimitiveFieldGenerator); |
| 116 }; | 153 }; |
| 117 | 154 |
| 118 } // namespace java | 155 } // namespace java |
| 119 } // namespace compiler | 156 } // namespace compiler |
| 120 } // namespace protobuf | 157 } // namespace protobuf |
| 121 | 158 |
| 122 } // namespace google | 159 } // namespace google |
| 123 #endif // GOOGLE_PROTOBUF_COMPILER_JAVA_PRIMITIVE_FIELD_H__ | 160 #endif // GOOGLE_PROTOBUF_COMPILER_JAVA_PRIMITIVE_FIELD_H__ |
| OLD | NEW |