Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(89)

Side by Side Diff: build/android/gyp/java_cpp_enum.py

Issue 2792583002: 📱 Simplify naming of generated java enums IntDefs (Closed)
Patch Set: rebase Created 3 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 #!/usr/bin/env python 1 #!/usr/bin/env python
2 # 2 #
3 # Copyright 2014 The Chromium Authors. All rights reserved. 3 # Copyright 2014 The Chromium Authors. All rights reserved.
4 # Use of this source code is governed by a BSD-style license that can be 4 # Use of this source code is governed by a BSD-style license that can be
5 # found in the LICENSE file. 5 # found in the LICENSE file.
6 6
7 import collections 7 import collections
8 from datetime import date 8 from datetime import date
9 import re 9 import re
10 import optparse 10 import optparse
(...skipping 311 matching lines...) Expand 10 before | Expand all | Expand 10 after
322 // From 322 // From
323 // ${SOURCE_PATH} 323 // ${SOURCE_PATH}
324 324
325 package ${PACKAGE}; 325 package ${PACKAGE};
326 326
327 import android.support.annotation.IntDef; 327 import android.support.annotation.IntDef;
328 328
329 import java.lang.annotation.Retention; 329 import java.lang.annotation.Retention;
330 import java.lang.annotation.RetentionPolicy; 330 import java.lang.annotation.RetentionPolicy;
331 331
332 public class ${CLASS_NAME} { 332 @IntDef({
333 @IntDef({
334 ${INT_DEF} 333 ${INT_DEF}
335 }) 334 })
336 @Retention(RetentionPolicy.SOURCE) 335 @Retention(RetentionPolicy.SOURCE)
337 public @interface ${ANNOTATION} {} 336 public @interface ${CLASS_NAME} {
338 ${ENUM_ENTRIES} 337 ${ENUM_ENTRIES}
339 } 338 }
340 """) 339 """)
341 340
342 enum_template = Template(' public static final int ${NAME} = ${VALUE};') 341 enum_template = Template(' int ${NAME} = ${VALUE};')
343 enum_entries_string = [] 342 enum_entries_string = []
344 enum_names = [] 343 enum_names = []
345 for enum_name, enum_value in enum_definition.entries.iteritems(): 344 for enum_name, enum_value in enum_definition.entries.iteritems():
346 values = { 345 values = {
347 'NAME': enum_name, 346 'NAME': enum_name,
348 'VALUE': enum_value, 347 'VALUE': enum_value,
349 } 348 }
350 enum_comments = enum_definition.comments.get(enum_name) 349 enum_comments = enum_definition.comments.get(enum_name)
351 if enum_comments: 350 if enum_comments:
352 enum_comments_indent = ' * ' 351 enum_comments_indent = ' * '
353 comments_line_wrapper = textwrap.TextWrapper( 352 comments_line_wrapper = textwrap.TextWrapper(
354 initial_indent=enum_comments_indent, 353 initial_indent=enum_comments_indent,
355 subsequent_indent=enum_comments_indent, 354 subsequent_indent=enum_comments_indent,
356 width=100) 355 width=100)
357 enum_entries_string.append(' /**') 356 enum_entries_string.append(' /**')
358 enum_entries_string.append( 357 enum_entries_string.append(
359 '\n'.join(comments_line_wrapper.wrap(enum_comments))) 358 '\n'.join(comments_line_wrapper.wrap(enum_comments)))
360 enum_entries_string.append(' */') 359 enum_entries_string.append(' */')
361 enum_entries_string.append(enum_template.substitute(values)) 360 enum_entries_string.append(enum_template.substitute(values))
362 enum_names.append(enum_name) 361 enum_names.append(enum_definition.class_name + '.' + enum_name)
363 enum_entries_string = '\n'.join(enum_entries_string) 362 enum_entries_string = '\n'.join(enum_entries_string)
364 363
365 enum_names_indent = ' ' * 6 364 enum_names_indent = ' ' * 4
366 wrapper = textwrap.TextWrapper(initial_indent = enum_names_indent, 365 wrapper = textwrap.TextWrapper(initial_indent = enum_names_indent,
367 subsequent_indent = enum_names_indent, 366 subsequent_indent = enum_names_indent,
368 width = 100) 367 width = 100)
369 enum_names_string = '\n'.join(wrapper.wrap(', '.join(enum_names))) 368 enum_names_string = '\n'.join(wrapper.wrap(', '.join(enum_names)))
370 369
371 annotation_template = Template('${NAME}Enum')
372 annotation_values = { 'NAME': enum_definition.class_name, }
373 annotation_name = annotation_template.substitute(annotation_values)
374
375 values = { 370 values = {
376 'CLASS_NAME': enum_definition.class_name, 371 'CLASS_NAME': enum_definition.class_name,
377 'ENUM_ENTRIES': enum_entries_string, 372 'ENUM_ENTRIES': enum_entries_string,
378 'PACKAGE': enum_definition.enum_package, 373 'PACKAGE': enum_definition.enum_package,
379 'INT_DEF': enum_names_string, 374 'INT_DEF': enum_names_string,
380 'ANNOTATION': annotation_name,
381 'SCRIPT_NAME': GetScriptName(), 375 'SCRIPT_NAME': GetScriptName(),
382 'SOURCE_PATH': source_path, 376 'SOURCE_PATH': source_path,
383 'YEAR': str(date.today().year) 377 'YEAR': str(date.today().year)
384 } 378 }
385 return template.substitute(values) 379 return template.substitute(values)
386 380
387 381
388 def DoMain(argv): 382 def DoMain(argv):
389 usage = 'usage: %prog [options] [output_dir] input_file(s)...' 383 usage = 'usage: %prog [options] [output_dir] input_file(s)...'
390 parser = optparse.OptionParser(usage=usage) 384 parser = optparse.OptionParser(usage=usage)
(...skipping 12 matching lines...) Expand all
403 with zipfile.ZipFile(options.srcjar, 'w', zipfile.ZIP_STORED) as srcjar: 397 with zipfile.ZipFile(options.srcjar, 'w', zipfile.ZIP_STORED) as srcjar:
404 for output_path, data in DoGenerate(input_paths): 398 for output_path, data in DoGenerate(input_paths):
405 build_utils.AddToZipHermetic(srcjar, output_path, data=data) 399 build_utils.AddToZipHermetic(srcjar, output_path, data=data)
406 400
407 if options.depfile: 401 if options.depfile:
408 build_utils.WriteDepfile(options.depfile, options.srcjar) 402 build_utils.WriteDepfile(options.depfile, options.srcjar)
409 403
410 404
411 if __name__ == '__main__': 405 if __name__ == '__main__':
412 DoMain(sys.argv[1:]) 406 DoMain(sys.argv[1:])
OLDNEW
« no previous file with comments | « base/android/java/src/org/chromium/base/ApplicationStatus.java ('k') | build/android/gyp/java_cpp_enum_tests.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698