@@ -101,11 +101,14 @@ class Api extends Member with ApiParseUtil {
101
101
List <Enum ?> enums = [];
102
102
List <Type ?> types = [];
103
103
Map <String , List <String >> streamIdMap = {};
104
+ final String scriptLocation;
104
105
105
106
String ? get docs => null ;
106
107
107
108
String get name => 'api' ;
108
109
110
+ Api (this .scriptLocation);
111
+
109
112
void addProperty (String typeName, String propertyName, {String ? javadoc}) {
110
113
var t = types.firstWhere ((t) => t! .name == typeName)! ;
111
114
for (var f in t.fields) {
@@ -148,7 +151,8 @@ class Api extends Member with ApiParseUtil {
148
151
}
149
152
}
150
153
151
- gen.writeType ('$servicePackage .VmService' , (TypeWriter writer) {
154
+ gen.writeType ('$servicePackage .VmService' , scriptLocation,
155
+ (TypeWriter writer) {
152
156
writer.addImport ('com.google.gson.JsonArray' );
153
157
writer.addImport ('com.google.gson.JsonObject' );
154
158
writer.addImport ('com.google.gson.JsonPrimitive' );
@@ -311,11 +315,11 @@ class Api extends Member with ApiParseUtil {
311
315
if (docs != null ) docs = docs.trim ();
312
316
313
317
if (definition.startsWith ('class ' )) {
314
- types.add (Type (this , name, definition, docs));
318
+ types.add (Type (this , scriptLocation, name, definition, docs));
315
319
} else if (name.substring (0 , 1 ).toLowerCase () == name.substring (0 , 1 )) {
316
- methods.add (Method (name, definition, docs));
320
+ methods.add (Method (name, scriptLocation, definition, docs));
317
321
} else if (definition.startsWith ('enum ' )) {
318
- enums.add (Enum (name, definition, docs));
322
+ enums.add (Enum (name, scriptLocation, definition, docs));
319
323
} else {
320
324
throw 'unexpected entity: ${name }, ${definition }' ;
321
325
}
@@ -365,18 +369,19 @@ class Api extends Member with ApiParseUtil {
365
369
366
370
class Enum extends Member {
367
371
final String name;
372
+ final String scriptLocation;
368
373
final String ? docs;
369
374
370
375
List <EnumValue > enums = [];
371
376
372
- Enum (this .name, String definition, [this .docs]) {
377
+ Enum (this .name, this .scriptLocation, String definition, [this .docs]) {
373
378
_parse (Tokenizer (definition).tokenize ());
374
379
}
375
380
376
381
String get elementTypeName => '$servicePackage .element.$name ' ;
377
382
378
383
void generateEnum (JavaGenerator gen) {
379
- gen.writeType (elementTypeName, (TypeWriter writer) {
384
+ gen.writeType (elementTypeName, scriptLocation, (TypeWriter writer) {
380
385
writer.javadoc = convertDocLinks (docs);
381
386
writer.isEnum = true ;
382
387
enums.sort ((v1, v2) => v1.name! .compareTo (v2.name! ));
@@ -496,13 +501,14 @@ class MemberType extends Member {
496
501
497
502
class Method extends Member {
498
503
final String name;
504
+ final String scriptLocation;
499
505
final String ? docs;
500
506
501
507
MemberType returnType = MemberType ();
502
508
bool deprecated = false ;
503
509
List <MethodArg > args = [];
504
510
505
- Method (this .name, String definition, [this .docs]) {
511
+ Method (this .name, this .scriptLocation, String definition, [this .docs]) {
506
512
_parse (Tokenizer (definition).tokenize ());
507
513
}
508
514
@@ -521,7 +527,7 @@ class Method extends Member {
521
527
bool get hasOptionalArgs => args.any ((MethodArg arg) => arg.optional);
522
528
523
529
void generateConsumerInterface (JavaGenerator gen) {
524
- gen.writeType (consumerTypeName, (TypeWriter writer) {
530
+ gen.writeType (consumerTypeName, scriptLocation, (TypeWriter writer) {
525
531
writer.javadoc = convertDocLinks (returnType.docs);
526
532
writer.interfaceNames.add ('$servicePackage .consumer.Consumer' );
527
533
writer.isInterface = true ;
@@ -752,13 +758,15 @@ class TextOutputVisitor implements NodeVisitor {
752
758
753
759
class Type extends Member {
754
760
final Api parent;
761
+ final String scriptLocation;
755
762
String ? rawName;
756
763
String ? name;
757
764
String ? superName;
758
765
final String ? docs;
759
766
List <TypeField > fields = [];
760
767
761
- Type (this .parent, String categoryName, String definition, [this .docs]) {
768
+ Type (this .parent, this .scriptLocation, String categoryName, String definition,
769
+ [this .docs]) {
762
770
_parse (Tokenizer (definition).tokenize ());
763
771
}
764
772
@@ -787,7 +795,8 @@ class Type extends Member {
787
795
api.types.toList ()..retainWhere ((t) => t! .superName == name);
788
796
789
797
void generateElement (JavaGenerator gen) {
790
- gen.writeType ('$servicePackage .element.$name ' , (TypeWriter writer) {
798
+ gen.writeType ('$servicePackage .element.$name ' , scriptLocation,
799
+ (TypeWriter writer) {
791
800
if (fields.any ((f) => f.type.types.any ((t) => t.isArray))) {
792
801
writer.addImport ('com.google.gson.JsonObject' );
793
802
}
0 commit comments