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

Unified Diff: grit/format/policy_templates/writers/json_writer.py

Issue 7994004: Initial source commit to grit-i18n project. (Closed) Base URL: http://grit-i18n.googlecode.com/svn/trunk/
Patch Set: Created 9 years, 3 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
Index: grit/format/policy_templates/writers/json_writer.py
===================================================================
--- grit/format/policy_templates/writers/json_writer.py (revision 0)
+++ grit/format/policy_templates/writers/json_writer.py (revision 0)
@@ -0,0 +1,72 @@
+# Copyright (c) 2011 The Chromium Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+
+from xml.dom import minidom
+from grit.format.policy_templates.writers import template_writer
+
+
+def GetWriter(config):
+ '''Factory method for creating JsonWriter objects.
+ See the constructor of TemplateWriter for description of
+ arguments.
+ '''
+ return JsonWriter(['linux'], config)
+
+
+class JsonWriter(template_writer.TemplateWriter):
+ '''Class for generating policy files in JSON format (for Linux). The
+ generated files will define all the supported policies with example values
+ set for them. This class is used by PolicyTemplateGenerator to write .json
+ files.
+ '''
+
+ def PreprocessPolicies(self, policy_list):
+ return self.FlattenGroupsAndSortPolicies(policy_list)
+
+ def WritePolicy(self, policy):
+ example_value = policy['example_value']
+ if policy['type'] == 'string':
+ example_value_str = '"' + example_value + '"'
+ elif policy['type'] == 'int':
+ example_value_str = str(example_value)
+ elif policy['type'] == 'list':
+ if example_value == []:
+ example_value_str = '[]'
+ else:
+ example_value_str = '["%s"]' % '", "'.join(example_value)
+ elif policy['type'] == 'main':
+ if example_value == True:
+ example_value_str = 'true'
+ else:
+ example_value_str = 'false'
+ elif policy['type'] == 'string-enum':
+ example_value_str = '"%s"' % example_value;
+ elif policy['type'] == 'int-enum':
+ example_value_str = str(example_value)
+ else:
+ raise Exception('unknown policy type %s:' % policy['type'])
+
+ # Add comme to the end of the previous line.
+ if not self._first_written:
+ self._out[-1] += ','
+
+ line = ' "%s": %s' % (policy['name'], example_value_str)
+ self._out.append(line)
+
+ self._first_written = False
+
+ def BeginTemplate(self):
+ self._out.append('{')
+
+ def EndTemplate(self):
+ self._out.append('}')
+
+ def Init(self):
+ self._out = []
+ # The following boolean member is true until the first policy is written.
+ self._first_written = True
+
+ def GetTemplateText(self):
+ return '\n'.join(self._out)
Property changes on: grit/format/policy_templates/writers/json_writer.py
___________________________________________________________________
Added: svn:eol-style
+ LF

Powered by Google App Engine
This is Rietveld 408576698