| OLD | NEW |
| 1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file |
| 2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
| 3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
| 4 | 4 |
| 5 part of protoc; | 5 part of protoc; |
| 6 | 6 |
| 7 class FileGenerator implements ProtobufContainer { | 7 class FileGenerator extends ProtobufContainer { |
| 8 final FileDescriptorProto _fileDescriptor; | 8 final FileDescriptorProto _fileDescriptor; |
| 9 final ProtobufContainer _parent; | 9 final ProtobufContainer _parent; |
| 10 final GenerationContext _context; | 10 final GenerationContext _context; |
| 11 | 11 |
| 12 final List<EnumGenerator> enumGenerators = <EnumGenerator>[]; | 12 final List<EnumGenerator> enumGenerators = <EnumGenerator>[]; |
| 13 final List<MessageGenerator> messageGenerators = <MessageGenerator>[]; | 13 final List<MessageGenerator> messageGenerators = <MessageGenerator>[]; |
| 14 final List<ExtensionGenerator> extensionGenerators = <ExtensionGenerator>[]; | 14 final List<ExtensionGenerator> extensionGenerators = <ExtensionGenerator>[]; |
| 15 | 15 |
| 16 FileGenerator(this._fileDescriptor, this._parent, this._context) { | 16 FileGenerator(this._fileDescriptor, this._parent, this._context) { |
| 17 _context.register(this); | 17 _context.register(this); |
| (...skipping 109 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 127 // protoc should never generate an import with an absolute path. | 127 // protoc should never generate an import with an absolute path. |
| 128 throw("FAILURE: Import with absolute path is not supported"); | 128 throw("FAILURE: Import with absolute path is not supported"); |
| 129 } | 129 } |
| 130 // Create a relative path from the current file to the import. | 130 // Create a relative path from the current file to the import. |
| 131 Uri relativeProtoPath = _relative(importPath, filePath); | 131 Uri relativeProtoPath = _relative(importPath, filePath); |
| 132 // Find the file generator for this import as it contains the | 132 // Find the file generator for this import as it contains the |
| 133 // package name. | 133 // package name. |
| 134 FileGenerator fileGenerator = _context.lookupFile(import); | 134 FileGenerator fileGenerator = _context.lookupFile(import); |
| 135 out.print("import '${_generatedFilePath(relativeProtoPath)}'"); | 135 out.print("import '${_generatedFilePath(relativeProtoPath)}'"); |
| 136 if (package != fileGenerator.package) { | 136 if (package != fileGenerator.package) { |
| 137 out.print(' as ${fileGenerator.package}'); | 137 out.print(' as ${fileGenerator.packageImportPrefix}'); |
| 138 } | 138 } |
| 139 out.println(';'); | 139 out.println(';'); |
| 140 } | 140 } |
| 141 out.println(''); | 141 out.println(''); |
| 142 | 142 |
| 143 // Initialize Field. | 143 // Initialize Field. |
| 144 for (MessageGenerator m in messageGenerators) { | 144 for (MessageGenerator m in messageGenerators) { |
| 145 m.initializeFields(); | 145 m.initializeFields(); |
| 146 } | 146 } |
| 147 | 147 |
| (...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 186 _registry[container.fqname] = container; | 186 _registry[container.fqname] = container; |
| 187 if (container is FileGenerator) { | 187 if (container is FileGenerator) { |
| 188 _files[container._fileDescriptor.name] = container; | 188 _files[container._fileDescriptor.name] = container; |
| 189 } | 189 } |
| 190 } | 190 } |
| 191 | 191 |
| 192 ProtobufContainer operator [](String fqname) => _registry[fqname]; | 192 ProtobufContainer operator [](String fqname) => _registry[fqname]; |
| 193 | 193 |
| 194 FileGenerator lookupFile(String name) => _files[name]; | 194 FileGenerator lookupFile(String name) => _files[name]; |
| 195 } | 195 } |
| OLD | NEW |