gn2bp: Add getSanitizer factory method

* This will return a sanitizer according to the script which the target uses.

Test: update_results.sh
Change-Id: I0b519ff39c3983c94a804766355b7051320d8961
diff --git a/tools/gn2bp/gen_android_bp b/tools/gn2bp/gen_android_bp
index a61b780..a96a3f5 100755
--- a/tools/gn2bp/gen_android_bp
+++ b/tools/gn2bp/gen_android_bp
@@ -618,6 +618,12 @@
 
   blueprint.add_module(module)
 
+def getSanitizer(target):
+  if target.script == "//build/write_buildflag_header.py":
+    return WriteBuildFlagHeaderSanitizer(target)
+  else:
+    return BaseActionSanitizer(target)
+
 
 class BaseActionSanitizer():
   def __init__(self, target):
@@ -667,14 +673,13 @@
     filename = re.sub('^\.\./\.\./', '', filename)
 
   def get_args(self):
-    if self.target.script == "//build/write_buildflag_header.py":
-      # write_buildflag_header.py writes result to args.genDir/args.output
-      # So, override args.genDir by '.' so that args.output=$(out) works
-      self._set_arg_value('--gen-dir', '.')
-      self._set_arg_value('--output', '$(out)')
-
     return self.target.args
 
+class WriteBuildFlagHeaderSanitizer(BaseActionSanitizer):
+  def get_args(self):
+    self._set_arg_value('--gen-dir', '.')
+    self._set_arg_value('--output', '$(out)')
+    return super().get_args()
 
 def create_action_foreach_modules(blueprint, target):
   """ The following assumes that rebase_path exists in the args.
@@ -713,7 +718,7 @@
   bp_module_name = label_to_module_name(target.name)
   module = Module('cc_genrule', bp_module_name, target.name)
 
-  sanitizer = BaseActionSanitizer(target)
+  sanitizer = getSanitizer(target)
   target.args = sanitizer.get_args()
 
   if target.script == '//build/write_build_date_header.py':