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

Side by Side Diff: tools/json_schema_compiler/dart_generator.py

Issue 23549025: Clean up JSON Schema Compiler. (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Removed enum test and added blank lines. Created 7 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 unified diff | Download patch
OLDNEW
1 # Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 # Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can be 2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file. 3 # found in the LICENSE file.
4 """ 4 """
5 Generator language component for compiler.py that adds Dart language support. 5 Generator language component for compiler.py that adds Dart language support.
6 """ 6 """
7 7
8 from code import Code 8 from code import Code
9 from model import * 9 from model import Function, PropertyType
10 from schema_util import * 10 from schema_util import StripNamespace
11 11
12 import os 12 import os
13 from datetime import datetime 13 from datetime import datetime
14 14
15 LICENSE = ( 15 LICENSE = (
16 """// Copyright (c) %s, the Dart project authors. Please see the AUTHORS file 16 """// Copyright (c) %s, the Dart project authors. Please see the AUTHORS file
17 // for details. All rights reserved. Use of this source code is governed by a 17 // for details. All rights reserved. Use of this source code is governed by a
18 // BSD-style license that can be found in the LICENSE file.""" % 18 // BSD-style license that can be found in the LICENSE file.""" %
19 datetime.now().year) 19 datetime.now().year)
20 20
21 class DartGenerator(object): 21 class DartGenerator(object):
22 def __init__(self, dart_overrides_dir=None): 22 def __init__(self, dart_overrides_dir=None):
23 self._dart_overrides_dir = dart_overrides_dir 23 self._dart_overrides_dir = dart_overrides_dir
24 24
25 def Generate(self, namespace): 25 def Generate(self, namespace):
26 return _Generator(namespace, self._dart_overrides_dir).Generate() 26 return _Generator(namespace, self._dart_overrides_dir).Generate()
27 27
28
28 class _Generator(object): 29 class _Generator(object):
29 """A .dart generator for a namespace. 30 """A .dart generator for a namespace.
30 """ 31 """
31 32
32 def __init__(self, namespace, dart_overrides_dir=None): 33 def __init__(self, namespace, dart_overrides_dir=None):
33 self._namespace = namespace 34 self._namespace = namespace
34 # TODO(sashab): Once inline type definitions start being added to 35 # TODO(sashab): Once inline type definitions start being added to
35 # self._types, make a _FindType(self, type_) function that looks at 36 # self._types, make a _FindType(self, type_) function that looks at
36 # self._namespace.types. 37 # self._namespace.types.
37 self._types = namespace.types 38 self._types = namespace.types
(...skipping 233 matching lines...) Expand 10 before | Expand all | Expand 10 after
271 c.Comment(line, comment_prefix='/// ') 272 c.Comment(line, comment_prefix='/// ')
272 return c 273 return c
273 274
274 def _GenerateFunction(self, f): 275 def _GenerateFunction(self, f):
275 """Returns the Code object for the given function. 276 """Returns the Code object for the given function.
276 """ 277 """
277 c = Code() 278 c = Code()
278 c.Concat(self._GenerateDocumentation(f)) 279 c.Concat(self._GenerateDocumentation(f))
279 280
280 if not self._NeedsProxiedCallback(f): 281 if not self._NeedsProxiedCallback(f):
281 c.Append("%s => %s;" % (self._GenerateFunctionSignature(f), 282 c.Append("%s => %s;" % (self._GenerateFunctionSignature(f),
282 self._GenerateProxyCall(f))) 283 self._GenerateProxyCall(f)))
283 return c 284 return c
284 285
285 (c.Sblock("%s {" % self._GenerateFunctionSignature(f)) 286 (c.Sblock("%s {" % self._GenerateFunctionSignature(f))
286 .Concat(self._GenerateProxiedFunction(f.callback, f.callback.name)) 287 .Concat(self._GenerateProxiedFunction(f.callback, f.callback.name))
287 .Append('%s;' % self._GenerateProxyCall(f)) 288 .Append('%s;' % self._GenerateProxyCall(f))
288 .Eblock('}') 289 .Eblock('}')
289 ) 290 )
290 291
291 return c 292 return c
292 293
293 def _GenerateProxiedFunction(self, f, callback_name): 294 def _GenerateProxiedFunction(self, f, callback_name):
(...skipping 459 matching lines...) Expand 10 before | Expand all | Expand 10 after
753 return 'Object' 754 return 'Object'
754 elif prop_type is PropertyType.FUNCTION: 755 elif prop_type is PropertyType.FUNCTION:
755 return 'Function' 756 return 'Function'
756 elif prop_type is PropertyType.ARRAY: 757 elif prop_type is PropertyType.ARRAY:
757 return 'List<%s>' % self._GetDartType(type_.item_type) 758 return 'List<%s>' % self._GetDartType(type_.item_type)
758 elif prop_type is PropertyType.BINARY: 759 elif prop_type is PropertyType.BINARY:
759 return 'String' 760 return 'String'
760 else: 761 else:
761 raise NotImplementedError(prop_type) 762 raise NotImplementedError(prop_type)
762 763
OLDNEW
« no previous file with comments | « tools/json_schema_compiler/cpp_util.py ('k') | tools/json_schema_compiler/dart_generator_test.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698