webkit  2cdf99a9e3038c7e01b3c37e8ad903ecbe5eecf1
https://github.com/WebKit/webkit
javanano_params.h
Go to the documentation of this file.
1 // Protocol Buffers - Google's data interchange format
2 // Copyright 2010 Google Inc. All rights reserved.
3 // http://code.google.com/p/protobuf/
4 //
5 // Redistribution and use in source and binary forms, with or without
6 // modification, are permitted provided that the following conditions are
7 // met:
8 //
9 // * Redistributions of source code must retain the above copyright
10 // notice, this list of conditions and the following disclaimer.
11 // * Redistributions in binary form must reproduce the above
12 // copyright notice, this list of conditions and the following disclaimer
13 // in the documentation and/or other materials provided with the
14 // distribution.
15 // * Neither the name of Google Inc. nor the names of its
16 // contributors may be used to endorse or promote products derived from
17 // this software without specific prior written permission.
18 //
19 // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
20 // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
21 // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
22 // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
23 // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
24 // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
25 // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
26 // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
27 // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
28 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
29 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30 
31 // Author: wink@google.com (Wink Saville)
32 
33 #ifndef PROTOBUF_COMPILER_JAVANANO_JAVANANO_PARAMS_H_
34 #define PROTOBUF_COMPILER_JAVANANO_JAVANANO_PARAMS_H_
35 
36 #include <map>
37 #include <set>
39 
40 namespace google {
41 namespace protobuf {
42 namespace compiler {
43 namespace javanano {
44 
46 
47 // Parameters for used by the generators
48 class Params {
49  public:
50  typedef map<string, string> NameMap;
52  private:
53  string empty_;
54  string base_name_;
55  eMultipleFiles override_java_multiple_files_;
56  bool store_unknown_fields_;
57  NameMap java_packages_;
58  NameMap java_outer_classnames_;
59  NameSet java_multiple_files_;
60  bool generate_has_;
61  bool java_enum_style_;
62  bool optional_field_accessors_;
63  bool use_reference_types_for_primitives_;
64  bool generate_equals_;
65  bool ignore_services_;
66  bool parcelable_messages_;
67  bool reftypes_primitive_enums_;
68  bool generate_clear_;
69  bool generate_clone_;
70  bool generate_intdefs_;
71 
72  public:
73  Params(const string & base_name) :
74  empty_(""),
75  base_name_(base_name),
76  override_java_multiple_files_(JAVANANO_MUL_UNSET),
77  store_unknown_fields_(false),
78  generate_has_(false),
79  java_enum_style_(false),
80  optional_field_accessors_(false),
81  use_reference_types_for_primitives_(false),
82  generate_equals_(false),
83  ignore_services_(false),
84  parcelable_messages_(false),
85  reftypes_primitive_enums_(false),
86  generate_clear_(true),
87  generate_clone_(false),
88  generate_intdefs_(false) {
89  }
90 
91  const string& base_name() const {
92  return base_name_;
93  }
94 
95  bool has_java_package(const string& file_name) const {
96  return java_packages_.find(file_name)
97  != java_packages_.end();
98  }
99  void set_java_package(const string& file_name,
100  const string& java_package) {
101  java_packages_[file_name] = java_package;
102  }
103  const string& java_package(const string& file_name) const {
104  NameMap::const_iterator itr;
105 
106  itr = java_packages_.find(file_name);
107  if (itr == java_packages_.end()) {
108  return empty_;
109  } else {
110  return itr->second;
111  }
112  }
113  const NameMap& java_packages() {
114  return java_packages_;
115  }
116 
117  bool has_java_outer_classname(const string& file_name) const {
118  return java_outer_classnames_.find(file_name)
119  != java_outer_classnames_.end();
120  }
121  void set_java_outer_classname(const string& file_name,
122  const string& java_outer_classname) {
123  java_outer_classnames_[file_name] = java_outer_classname;
124  }
125  const string& java_outer_classname(const string& file_name) const {
126  NameMap::const_iterator itr;
127 
128  itr = java_outer_classnames_.find(file_name);
129  if (itr == java_outer_classnames_.end()) {
130  return empty_;
131  } else {
132  return itr->second;
133  }
134  }
135  const NameMap& java_outer_classnames() {
136  return java_outer_classnames_;
137  }
138 
140  if (java_multiple_files) {
141  override_java_multiple_files_ = JAVANANO_MUL_TRUE;
142  } else {
143  override_java_multiple_files_ = JAVANANO_MUL_FALSE;
144  }
145  }
147  override_java_multiple_files_ = JAVANANO_MUL_UNSET;
148  }
149 
150  void set_java_multiple_files(const string& file_name, bool value) {
151  if (value) {
152  java_multiple_files_.insert(file_name);
153  } else {
154  java_multiple_files_.erase(file_name);
155  }
156  }
157  bool java_multiple_files(const string& file_name) const {
158  switch (override_java_multiple_files_) {
159  case JAVANANO_MUL_FALSE:
160  return false;
161  case JAVANANO_MUL_TRUE:
162  return true;
163  default:
164  return java_multiple_files_.find(file_name)
165  != java_multiple_files_.end();
166  }
167  }
168 
170  store_unknown_fields_ = value;
171  }
172  bool store_unknown_fields() const {
173  return store_unknown_fields_;
174  }
175 
176  void set_generate_has(bool value) {
177  generate_has_ = value;
178  }
179  bool generate_has() const {
180  return generate_has_;
181  }
182 
184  java_enum_style_ = value;
185  }
186  bool java_enum_style() const {
187  return java_enum_style_;
188  }
189 
191  optional_field_accessors_ = value;
192  }
194  return optional_field_accessors_;
195  }
196 
198  use_reference_types_for_primitives_ = value;
199  }
201  return use_reference_types_for_primitives_;
202  }
203 
205  generate_equals_ = value;
206  }
207  bool generate_equals() const {
208  return generate_equals_;
209  }
210 
212  ignore_services_ = value;
213  }
214  bool ignore_services() const {
215  return ignore_services_;
216  }
217 
219  parcelable_messages_ = value;
220  }
221  bool parcelable_messages() const {
222  return parcelable_messages_;
223  }
224 
226  reftypes_primitive_enums_ = value;
227  }
229  return reftypes_primitive_enums_;
230  }
231 
233  generate_clear_ = value;
234  }
235  bool generate_clear() const {
236  return generate_clear_;
237  }
238 
240  generate_clone_ = value;
241  }
242  bool generate_clone() const {
243  return generate_clone_;
244  }
245 
247  generate_intdefs_ = value;
248  }
249  bool generate_intdefs() const {
250  return generate_intdefs_;
251  }
252 };
253 
254 } // namespace javanano
255 } // namespace compiler
256 } // namespace protobuf
257 } // namespace google
258 #endif // PROTOBUF_COMPILER_JAVANANO_JAVANANO_PARAMS_H_
Definition: upb.c:6604
bool generate_equals() const
Definition: javanano_params.h:207
Params(const string &base_name)
Definition: javanano_params.h:73
void set_java_package(const string &file_name, const string &java_package)
Definition: javanano_params.h:99
void set_ignore_services(bool value)
Definition: javanano_params.h:211
set< string > NameSet
Definition: javanano_params.h:51
void set_store_unknown_fields(bool value)
Definition: javanano_params.h:169
map< string, string > NameMap
Definition: javanano_params.h:50
bool generate_clone() const
Definition: javanano_params.h:242
const NameMap & java_packages()
Definition: javanano_params.h:113
Definition: javanano_params.h:48
bool has_java_outer_classname(const string &file_name) const
Definition: javanano_params.h:117
bool parcelable_messages() const
Definition: javanano_params.h:221
void set_use_reference_types_for_primitives(bool value)
Definition: javanano_params.h:197
bool has_java_package(const string &file_name) const
Definition: javanano_params.h:95
void set_generate_intdefs(bool value)
Definition: javanano_params.h:246
void set_java_multiple_files(const string &file_name, bool value)
Definition: javanano_params.h:150
const FieldDescriptor const OneofDescriptor value
Definition: descriptor.h:1717
void set_reftypes_primitive_enums(bool value)
Definition: javanano_params.h:225
const string & base_name() const
Definition: javanano_params.h:91
bool store_unknown_fields() const
Definition: javanano_params.h:172
EGLAttrib * value
Definition: eglext.h:120
bool generate_has() const
Definition: javanano_params.h:179
void set_generate_clear(bool value)
Definition: javanano_params.h:232
bool ignore_services() const
Definition: javanano_params.h:214
bool use_reference_types_for_primitives() const
Definition: javanano_params.h:200
void set_optional_field_accessors(bool value)
Definition: javanano_params.h:190
const string & java_package(const string &file_name) const
Definition: javanano_params.h:103
void set_override_java_multiple_files(bool java_multiple_files)
Definition: javanano_params.h:139
Definition: __init__.py:1
void set_generate_clone(bool value)
Definition: javanano_params.h:239
#define true
Definition: float-mm.c:6
EGLSetBlobFuncANDROID set
Definition: eglext.h:426
bool reftypes_primitive_enums() const
Definition: javanano_params.h:228
const NameMap & java_outer_classnames()
Definition: javanano_params.h:135
eMultipleFiles
Definition: javanano_params.h:45
bool generate_clear() const
Definition: javanano_params.h:235
void set_java_outer_classname(const string &file_name, const string &java_outer_classname)
Definition: javanano_params.h:121
#define false
Definition: float-mm.c:5
bool optional_field_accessors() const
Definition: javanano_params.h:193
void set_generate_has(bool value)
Definition: javanano_params.h:176
bool generate_intdefs() const
Definition: javanano_params.h:249
void set_java_enum_style(bool value)
Definition: javanano_params.h:183
Definition: gflags_completions.h:115
bool java_multiple_files(const string &file_name) const
Definition: javanano_params.h:157
const string & java_outer_classname(const string &file_name) const
Definition: javanano_params.h:125
void clear_override_java_multiple_files()
Definition: javanano_params.h:146
void set_parcelable_messages(bool value)
Definition: javanano_params.h:218
bool java_enum_style() const
Definition: javanano_params.h:186
void set_generate_equals(bool value)
Definition: javanano_params.h:204