2310 def Emit(self, emitter, auxiliary_dir):
2311
2312 def massage_path(path):
2313
2314 return path.replace('\\', '/')
2315
2316 library_emitter = emitter.FileEmitter(self._dart_path)
2317 library_file_dir = os.path.dirname(self._dart_path)
2318 auxiliary_dir = os.path.relpath(auxiliary_dir, library_file_dir)
2319 emitters = library_emitter.Emit(
2320 self._template,
2321 AUXILIARY_DIR=massage_path(auxiliary_dir),
2322 NULLABLE='?')
2323 if isinstance(emitters, tuple):
2324 imports_emitter, map_emitter = emitters
2325 else:
2326 imports_emitter, map_emitter = emitters, None
2327
2328 for path in sorted(self._paths):
2329 relpath = os.path.relpath(path, library_file_dir)
2330 imports_emitter.Emit("part '$PATH';\n", PATH=massage_path(relpath))
2331
2332
2333 if map_emitter:
2334 items = list(self._typeMap.items())
2335 items.sort()
2336 for (idl_name, dart_name) in items:
2337 map_emitter.Emit(
2338 " '$IDL_NAME': () => $DART_NAME.instanceRuntimeType,\n",
2339 IDL_NAME=idl_name,
2340 DART_NAME=dart_name)
2341
2342
2343
2344
2345