mirror of
https://github.com/dart-lang/sdk
synced 2024-09-30 04:48:37 +00:00
Add script location to generated code message
The previous message added to Java generated code was not helpful for finding the generating code. TEST=N/A Change-Id: Ie60202ac68e8790a422a47c6edfd75997cf32145 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/232024 Reviewed-by: Ben Konyi <bkonyi@google.com> Commit-Queue: Ben Konyi <bkonyi@google.com>
This commit is contained in:
parent
23b954f067
commit
ba50128769
|
@ -13,7 +13,7 @@
|
|||
*/
|
||||
package org.dartlang.vm.service.consumer;
|
||||
|
||||
// This is a generated file.
|
||||
// This file is generated by the script: pkg/vm_service/tool/generate.dart in dart-lang/sdk.
|
||||
|
||||
import org.dartlang.vm.service.element.Breakpoint;
|
||||
|
||||
|
|
|
@ -13,7 +13,7 @@
|
|||
*/
|
||||
package org.dartlang.vm.service.consumer;
|
||||
|
||||
// This is a generated file.
|
||||
// This file is generated by the script: pkg/vm_service/tool/generate.dart in dart-lang/sdk.
|
||||
|
||||
import org.dartlang.vm.service.element.CpuSamples;
|
||||
|
||||
|
|
|
@ -67,7 +67,12 @@ Future _generateDart(String appDirPath, List<Node> nodes) async {
|
|||
Future _generateJava(String appDirPath, List<Node> nodes) async {
|
||||
var srcDirPath = normalize(join(appDirPath, '..', 'java', 'src'));
|
||||
var generator = java.JavaGenerator(srcDirPath);
|
||||
java.api = java.Api();
|
||||
|
||||
final scriptPath = Platform.script.toFilePath();
|
||||
final kSdk = '/sdk/';
|
||||
final scriptLocation =
|
||||
scriptPath.substring(scriptPath.indexOf(kSdk) + kSdk.length);
|
||||
java.api = java.Api(scriptLocation);
|
||||
java.api.parse(nodes);
|
||||
java.api.generate(generator);
|
||||
|
||||
|
|
|
@ -101,11 +101,14 @@ class Api extends Member with ApiParseUtil {
|
|||
List<Enum?> enums = [];
|
||||
List<Type?> types = [];
|
||||
Map<String, List<String>> streamIdMap = {};
|
||||
final String scriptLocation;
|
||||
|
||||
String? get docs => null;
|
||||
|
||||
String get name => 'api';
|
||||
|
||||
Api(this.scriptLocation);
|
||||
|
||||
void addProperty(String typeName, String propertyName, {String? javadoc}) {
|
||||
var t = types.firstWhere((t) => t!.name == typeName)!;
|
||||
for (var f in t.fields) {
|
||||
|
@ -148,7 +151,8 @@ class Api extends Member with ApiParseUtil {
|
|||
}
|
||||
}
|
||||
|
||||
gen.writeType('$servicePackage.VmService', (TypeWriter writer) {
|
||||
gen.writeType('$servicePackage.VmService', scriptLocation,
|
||||
(TypeWriter writer) {
|
||||
writer.addImport('com.google.gson.JsonArray');
|
||||
writer.addImport('com.google.gson.JsonObject');
|
||||
writer.addImport('com.google.gson.JsonPrimitive');
|
||||
|
@ -311,11 +315,11 @@ class Api extends Member with ApiParseUtil {
|
|||
if (docs != null) docs = docs.trim();
|
||||
|
||||
if (definition.startsWith('class ')) {
|
||||
types.add(Type(this, name, definition, docs));
|
||||
types.add(Type(this, scriptLocation, name, definition, docs));
|
||||
} else if (name.substring(0, 1).toLowerCase() == name.substring(0, 1)) {
|
||||
methods.add(Method(name, definition, docs));
|
||||
methods.add(Method(name, scriptLocation, definition, docs));
|
||||
} else if (definition.startsWith('enum ')) {
|
||||
enums.add(Enum(name, definition, docs));
|
||||
enums.add(Enum(name, scriptLocation, definition, docs));
|
||||
} else {
|
||||
throw 'unexpected entity: ${name}, ${definition}';
|
||||
}
|
||||
|
@ -365,18 +369,19 @@ class Api extends Member with ApiParseUtil {
|
|||
|
||||
class Enum extends Member {
|
||||
final String name;
|
||||
final String scriptLocation;
|
||||
final String? docs;
|
||||
|
||||
List<EnumValue> enums = [];
|
||||
|
||||
Enum(this.name, String definition, [this.docs]) {
|
||||
Enum(this.name, this.scriptLocation, String definition, [this.docs]) {
|
||||
_parse(Tokenizer(definition).tokenize());
|
||||
}
|
||||
|
||||
String get elementTypeName => '$servicePackage.element.$name';
|
||||
|
||||
void generateEnum(JavaGenerator gen) {
|
||||
gen.writeType(elementTypeName, (TypeWriter writer) {
|
||||
gen.writeType(elementTypeName, scriptLocation, (TypeWriter writer) {
|
||||
writer.javadoc = convertDocLinks(docs);
|
||||
writer.isEnum = true;
|
||||
enums.sort((v1, v2) => v1.name!.compareTo(v2.name!));
|
||||
|
@ -496,13 +501,14 @@ class MemberType extends Member {
|
|||
|
||||
class Method extends Member {
|
||||
final String name;
|
||||
final String scriptLocation;
|
||||
final String? docs;
|
||||
|
||||
MemberType returnType = MemberType();
|
||||
bool deprecated = false;
|
||||
List<MethodArg> args = [];
|
||||
|
||||
Method(this.name, String definition, [this.docs]) {
|
||||
Method(this.name, this.scriptLocation, String definition, [this.docs]) {
|
||||
_parse(Tokenizer(definition).tokenize());
|
||||
}
|
||||
|
||||
|
@ -521,7 +527,7 @@ class Method extends Member {
|
|||
bool get hasOptionalArgs => args.any((MethodArg arg) => arg.optional);
|
||||
|
||||
void generateConsumerInterface(JavaGenerator gen) {
|
||||
gen.writeType(consumerTypeName, (TypeWriter writer) {
|
||||
gen.writeType(consumerTypeName, scriptLocation, (TypeWriter writer) {
|
||||
writer.javadoc = convertDocLinks(returnType.docs);
|
||||
writer.interfaceNames.add('$servicePackage.consumer.Consumer');
|
||||
writer.isInterface = true;
|
||||
|
@ -752,13 +758,15 @@ class TextOutputVisitor implements NodeVisitor {
|
|||
|
||||
class Type extends Member {
|
||||
final Api parent;
|
||||
final String scriptLocation;
|
||||
String? rawName;
|
||||
String? name;
|
||||
String? superName;
|
||||
final String? docs;
|
||||
List<TypeField> fields = [];
|
||||
|
||||
Type(this.parent, String categoryName, String definition, [this.docs]) {
|
||||
Type(this.parent, this.scriptLocation, String categoryName, String definition,
|
||||
[this.docs]) {
|
||||
_parse(Tokenizer(definition).tokenize());
|
||||
}
|
||||
|
||||
|
@ -787,7 +795,8 @@ class Type extends Member {
|
|||
api.types.toList()..retainWhere((t) => t!.superName == name);
|
||||
|
||||
void generateElement(JavaGenerator gen) {
|
||||
gen.writeType('$servicePackage.element.$name', (TypeWriter writer) {
|
||||
gen.writeType('$servicePackage.element.$name', scriptLocation,
|
||||
(TypeWriter writer) {
|
||||
if (fields.any((f) => f.type.types.any((t) => t.isArray))) {
|
||||
writer.addImport('com.google.gson.JsonObject');
|
||||
}
|
||||
|
|
|
@ -57,8 +57,8 @@ class JavaGenerator {
|
|||
Iterable<String> get allWrittenFiles => _generatedPaths;
|
||||
|
||||
/// Generate a Java class/interface in the given package
|
||||
void writeType(String typeName, WriteType write) {
|
||||
var classWriter = TypeWriter(typeName);
|
||||
void writeType(String typeName, scriptLocation, WriteType write) {
|
||||
var classWriter = TypeWriter(typeName, scriptLocation);
|
||||
write(classWriter);
|
||||
var pkgDirPath = join(srcDirPath, joinAll(pkgNameFor(typeName).split('.')));
|
||||
var pkgDir = Directory(pkgDirPath);
|
||||
|
@ -123,10 +123,12 @@ class TypeWriter {
|
|||
final StringBuffer _content = StringBuffer();
|
||||
final List<String> _fields = <String>[];
|
||||
final Map<String, String> _methods = Map<String, String>();
|
||||
final String scriptLocation;
|
||||
|
||||
TypeWriter(String typeName)
|
||||
TypeWriter(String typeName, scriptLocation)
|
||||
: this.pkgName = pkgNameFor(typeName),
|
||||
this.className = classNameFor(typeName);
|
||||
this.className = classNameFor(typeName),
|
||||
this.scriptLocation = scriptLocation;
|
||||
|
||||
String get kind {
|
||||
if (isInterface) return 'interface';
|
||||
|
@ -263,7 +265,8 @@ class TypeWriter {
|
|||
if (fileHeader != null) buffer.write(fileHeader);
|
||||
buffer.writeln('package $pkgName;');
|
||||
buffer.writeln();
|
||||
buffer.writeln('// This is a generated file.');
|
||||
buffer.writeln(
|
||||
'// This file is generated by the script: ${scriptLocation} in dart-lang/sdk.');
|
||||
buffer.writeln();
|
||||
addImport(superclassName);
|
||||
interfaceNames.forEach((t) => addImport(t));
|
||||
|
|
Loading…
Reference in a new issue