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

Unified Diff: build/android/gyp/java_cpp_enum.py

Issue 659493003: Final step of the java_cpp_template -> java_cpp_enum migration. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: mmenke+yfriedman feedback + more aosp fixes + don't run tests as part of the build Created 6 years, 2 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « base/memory/memory_pressure_listener.h ('k') | build/android/gyp/java_cpp_enum_tests.py » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: build/android/gyp/java_cpp_enum.py
diff --git a/build/android/gyp/java_cpp_enum.py b/build/android/gyp/java_cpp_enum.py
index 6a1d5c1e4c39fa54a1c1b2550356a162c2dcb173..00bb6f35d7b08f678698cf94a199f91de795220c 100755
--- a/build/android/gyp/java_cpp_enum.py
+++ b/build/android/gyp/java_cpp_enum.py
@@ -14,17 +14,23 @@ import sys
from util import build_utils
class EnumDefinition(object):
- def __init__(self, class_name=None, class_package=None, entries=None):
- self.class_name = class_name
+ def __init__(self, original_enum_name=None, override_class_name=None,
+ class_package=None, entries=None):
+ self.original_enum_name = original_enum_name
+ self.override_class_name = override_class_name
self.class_package = class_package
self.entries = collections.OrderedDict(entries or [])
- self.prefix_to_strip = ''
+ self.prefix_to_strip = None
def AppendEntry(self, key, value):
if key in self.entries:
raise Exception('Multiple definitions of key %s found.' % key)
self.entries[key] = value
+ @property
+ def class_name(self):
+ return self.override_class_name or self.original_enum_name
+
def Finalize(self):
self._Validate()
self._AssignEntryIndices()
@@ -54,23 +60,31 @@ class EnumDefinition(object):
def _StripPrefix(self):
- if not self.prefix_to_strip:
- prefix_to_strip = re.sub('(?!^)([A-Z]+)', r'_\1', self.class_name).upper()
+ prefix_to_strip = self.prefix_to_strip
+ if not prefix_to_strip:
+ prefix_to_strip = self.original_enum_name
+ prefix_to_strip = re.sub('(?!^)([A-Z]+)', r'_\1', prefix_to_strip).upper()
prefix_to_strip += '_'
if not all([w.startswith(prefix_to_strip) for w in self.entries.keys()]):
prefix_to_strip = ''
- else:
- prefix_to_strip = self.prefix_to_strip
- entries = ((k.replace(prefix_to_strip, '', 1), v) for (k, v) in
- self.entries.iteritems())
- self.entries = collections.OrderedDict(entries)
+
+ entries = collections.OrderedDict()
+ for (k, v) in self.entries.iteritems():
+ stripped_key = k.replace(prefix_to_strip, '', 1)
+ if isinstance(v, basestring):
+ stripped_value = v.replace(prefix_to_strip, '', 1)
+ else:
+ stripped_value = v
+ entries[stripped_key] = stripped_value
+
+ self.entries = entries
class HeaderParser(object):
single_line_comment_re = re.compile(r'\s*//')
multi_line_comment_start_re = re.compile(r'\s*/\*')
enum_start_re = re.compile(r'^\s*enum\s+(\w+)\s+{\s*$')
enum_line_re = re.compile(r'^\s*(\w+)(\s*\=\s*([^,\n]+))?,?')
- enum_end_re = re.compile(r'^\s*}\s*;\s*$')
+ enum_end_re = re.compile(r'^\s*}\s*;\.*$')
generator_directive_re = re.compile(
r'^\s*//\s+GENERATED_JAVA_(\w+)\s*:\s*([\.\w]+)$')
@@ -109,6 +123,9 @@ class HeaderParser(object):
enum_value = enum_entry.groups()[2]
self._current_definition.AppendEntry(enum_key, enum_value)
+ def _GetCurrentEnumClassNameOverride(self):
+ return self._generator_directives.get('CLASS_NAME_OVERRIDE')
+
def _GetCurrentEnumPackageName(self):
return self._generator_directives.get('ENUM_PACKAGE')
@@ -127,8 +144,9 @@ class HeaderParser(object):
if enum_start:
if not self._GetCurrentEnumPackageName():
return
- self._current_definition = EnumDefinition()
- self._current_definition.class_name = enum_start.groups()[0]
+ self._current_definition = EnumDefinition(
+ original_enum_name=enum_start.groups()[0],
+ override_class_name=self._GetCurrentEnumClassNameOverride())
self._in_enum = True
elif generator_directive:
directive_name = generator_directive.groups()[0]
« no previous file with comments | « base/memory/memory_pressure_listener.h ('k') | build/android/gyp/java_cpp_enum_tests.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698