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

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

Issue 9600050: Add IDL capability to json_schema_compiler. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Patch Set 1 Created 8 years, 9 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 | Annotate | Revision Log
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 import os.path 5 import os.path
6 import re 6 import re
7 import copy 7 import copy
8 8
9 class Model(object): 9 class Model(object):
10 """Model of all namespaces that comprise an API. 10 """Model of all namespaces that comprise an API.
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after
83 self.from_client = True 83 self.from_client = True
84 self.properties = {} 84 self.properties = {}
85 self.functions = {} 85 self.functions = {}
86 self.parent = parent 86 self.parent = parent
87 for function_json in json.get('functions', []): 87 for function_json in json.get('functions', []):
88 if not function_json.get('nocompile', False): 88 if not function_json.get('nocompile', False):
89 self.functions[function_json['name']] = Function(self, function_json) 89 self.functions[function_json['name']] = Function(self, function_json)
90 props = [] 90 props = []
91 for prop_name, prop_json in json.get('properties', {}).items(): 91 for prop_name, prop_json in json.get('properties', {}).items():
92 # TODO(calamity): support functions (callbacks) as properties. The model 92 # TODO(calamity): support functions (callbacks) as properties. The model
93 # doesn't support it yet because to h/cc generators don't -- this is 93 # doesn't support it yet because the h/cc generators don't -- this is
94 # because we'd need to hook it into a base::Callback or something. 94 # because we'd need to hook it into a base::Callback or something.
95 # 95 #
96 # However, pragmatically it's not necessary to support them anyway, since 96 # However, pragmatically it's not necessary to support them anyway, since
97 # the instances of functions-on-properties in the extension APIs are all 97 # the instances of functions-on-properties in the extension APIs are all
98 # handled in pure Javascript on the render process (and .: never reach 98 # handled in pure Javascript on the render process (and .: never reach
99 # C++ let alone the browser). 99 # C++ let alone the browser).
100 if prop_json.get('type') == 'function': 100 if prop_json.get('type') == 'function':
101 continue 101 continue
102 props.append(Property(self, prop_name, prop_json, 102 props.append(Property(self, prop_name, prop_json,
103 from_json=True, 103 from_json=True,
(...skipping 217 matching lines...) Expand 10 before | Expand all | Expand 10 after
321 """Returns the hierarchy of the given model entity.""" 321 """Returns the hierarchy of the given model entity."""
322 hierarchy = [] 322 hierarchy = []
323 while entity: 323 while entity:
324 try: 324 try:
325 hierarchy.append(entity.name) 325 hierarchy.append(entity.name)
326 except AttributeError: 326 except AttributeError:
327 hierarchy.append(repr(entity)) 327 hierarchy.append(repr(entity))
328 entity = entity.parent 328 entity = entity.parent
329 hierarchy.reverse() 329 hierarchy.reverse()
330 return hierarchy 330 return hierarchy
331
OLDNEW
« tools/json_schema_compiler/idl_schema.py ('K') | « tools/json_schema_compiler/json_schema.py ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698