| Index: tools/json_schema_compiler/schema_loader.py
|
| diff --git a/tools/json_schema_compiler/schema_loader.py b/tools/json_schema_compiler/schema_loader.py
|
| index 261e8d0a72a5bd5c784118ed7e79e96bce5d6bf0..b8969910c6b693a6eed4c2da1e07f01d73b84997 100644
|
| --- a/tools/json_schema_compiler/schema_loader.py
|
| +++ b/tools/json_schema_compiler/schema_loader.py
|
| @@ -51,6 +51,18 @@ class SchemaLoader(object):
|
| self._include_rules = [(path, cpp_namespace_pattern)]
|
| self._include_rules.extend(include_rules)
|
|
|
| + def ResolveNamespace(self, full_namespace):
|
| + filenames = GenerateFilenames(full_namespace)
|
| + for path, cpp_namespace in self._include_rules:
|
| + for filename in reversed(filenames):
|
| + filepath = os.path.join(path, filename);
|
| + if os.path.exists(os.path.join(self._root, filepath)):
|
| + return Model().AddNamespace(
|
| + self.LoadSchema(filepath)[0],
|
| + filepath,
|
| + environment=CppNamespaceEnvironment(cpp_namespace))
|
| + return None
|
| +
|
| def ResolveType(self, full_name, default_namespace):
|
| name_parts = full_name.rsplit('.', 1)
|
| if len(name_parts) == 1:
|
| @@ -58,17 +70,9 @@ class SchemaLoader(object):
|
| return None
|
| return default_namespace
|
| full_namespace, type_name = full_name.rsplit('.', 1)
|
| - filenames = GenerateFilenames(full_namespace)
|
| - for path, namespace in self._include_rules:
|
| - for filename in reversed(filenames):
|
| - filepath = os.path.join(path, filename);
|
| - if os.path.exists(os.path.join(self._root, filepath)):
|
| - namespace = Model().AddNamespace(
|
| - self.LoadSchema(filepath)[0],
|
| - filepath,
|
| - environment=CppNamespaceEnvironment(namespace))
|
| - if type_name in namespace.types:
|
| - return namespace
|
| + namespace = self.ResolveNamespace(full_namespace)
|
| + if namespace and type_name in namespace.types:
|
| + return namespace
|
| return None
|
|
|
| def LoadSchema(self, schema):
|
|
|