OLD | NEW |
1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2014, 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 /** | 5 /** |
6 * Code generation for the file "AnalysisServer.java". | 6 * Code generation for the file "AnalysisServer.java". |
7 */ | 7 */ |
8 library java.generator.server; | 8 library java.generator.server; |
9 | 9 |
10 import 'api.dart'; | 10 import 'api.dart'; |
11 import 'codegen_java.dart'; | 11 import 'codegen_java.dart'; |
12 import 'codegen_tools.dart'; | 12 import 'codegen_tools.dart'; |
13 | 13 |
| 14 final GeneratedFile target = javaGeneratedFile( |
| 15 '../../../../editor/tools/plugins/com.google.dart.server/src/com/google/dart
/server/AnalysisServer.java', |
| 16 (Api api) => new CodegenAnalysisServer(api)); |
| 17 |
| 18 /** |
| 19 * Translate spec_input.html into AnalysisServer.java. |
| 20 */ |
| 21 main() { |
| 22 target.generate(); |
| 23 } |
| 24 |
14 class CodegenAnalysisServer extends CodegenJavaVisitor { | 25 class CodegenAnalysisServer extends CodegenJavaVisitor { |
15 CodegenAnalysisServer(Api api) : super(api); | 26 CodegenAnalysisServer(Api api) : super(api); |
16 | 27 |
| 28 /** |
| 29 * Get the name of the consumer class for responses to this request. |
| 30 */ |
| 31 String consumerName(Request request) { |
| 32 return camelJoin([request.method, 'consumer'], doCapitalize: true); |
| 33 } |
| 34 |
17 @override | 35 @override |
18 void visitApi() { | 36 void visitApi() { |
19 outputHeader(javaStyle: true); | 37 outputHeader(javaStyle: true); |
20 writeln('package com.google.dart.server;'); | 38 writeln('package com.google.dart.server;'); |
21 writeln(); | 39 writeln(); |
22 writeln('import com.google.dart.server.generated.types.*;'); | 40 writeln('import com.google.dart.server.generated.types.*;'); |
23 writeln(); | 41 writeln(); |
24 writeln('import java.util.List;'); | 42 writeln('import java.util.List;'); |
25 writeln('import java.util.Map;'); | 43 writeln('import java.util.Map;'); |
26 writeln(); | 44 writeln(); |
27 writeln( | 45 writeln('''/** |
28 '''/** | |
29 * The interface {@code AnalysisServer} defines the behavior of objects that int
erface to an | 46 * The interface {@code AnalysisServer} defines the behavior of objects that int
erface to an |
30 * analysis server. | 47 * analysis server. |
31 * | 48 * |
32 * @coverage dart.server | 49 * @coverage dart.server |
33 */''' | 50 */'''); |
34 ); | |
35 makeClass('public interface AnalysisServer', () { | 51 makeClass('public interface AnalysisServer', () { |
36 // | 52 // |
37 // addAnalysisServerListener(..) | 53 // addAnalysisServerListener(..) |
38 // | 54 // |
39 publicMethod('addAnalysisServerListener', () { | 55 publicMethod('addAnalysisServerListener', () { |
40 writeln( | 56 writeln('''/** |
41 '''/** | |
42 * Add the given listener to the list of listeners that will receive notificatio
n when new | 57 * Add the given listener to the list of listeners that will receive notificatio
n when new |
43 * analysis results become available. | 58 * analysis results become available. |
44 * | 59 * |
45 * @param listener the listener to be added | 60 * @param listener the listener to be added |
46 */''' | 61 */'''); |
47 ); | |
48 writeln( | 62 writeln( |
49 'public void addAnalysisServerListener(AnalysisServerListener listen
er);'); | 63 'public void addAnalysisServerListener(AnalysisServerListener listen
er);'); |
50 }); | 64 }); |
51 | 65 |
52 // | 66 // |
53 // removeAnalysisServerListener(..) | 67 // removeAnalysisServerListener(..) |
54 // | 68 // |
55 publicMethod('removeAnalysisServerListener', () { | 69 publicMethod('removeAnalysisServerListener', () { |
56 writeln( | 70 writeln('''/** |
57 '''/** | |
58 * Remove the given listener from the list of listeners that will receive notifi
cation when new | 71 * Remove the given listener from the list of listeners that will receive notifi
cation when new |
59 * analysis results become available. | 72 * analysis results become available. |
60 * | 73 * |
61 * @param listener the listener to be removed | 74 * @param listener the listener to be removed |
62 */''' | 75 */'''); |
63 ); | |
64 writeln( | 76 writeln( |
65 'public void removeAnalysisServerListener(AnalysisServerListener lis
tener);'); | 77 'public void removeAnalysisServerListener(AnalysisServerListener lis
tener);'); |
66 }); | 78 }); |
67 | 79 |
68 // | 80 // |
69 // start(..) | 81 // start(..) |
70 // | 82 // |
71 publicMethod('start', () { | 83 publicMethod('start', () { |
72 writeln( | 84 writeln('''/** |
73 '''/** | |
74 * Start the analysis server. | 85 * Start the analysis server. |
75 */''' | 86 */'''); |
76 ); | |
77 writeln('public void start() throws Exception;'); | 87 writeln('public void start() throws Exception;'); |
78 }); | 88 }); |
79 super.visitApi(); | 89 super.visitApi(); |
80 }); | 90 }); |
81 } | 91 } |
82 | 92 |
83 @override | 93 @override |
84 void visitRequest(Request request) { | 94 void visitRequest(Request request) { |
85 String methodName = '${request.domainName}_${request.method}'; | 95 String methodName = '${request.domainName}_${request.method}'; |
86 publicMethod(methodName, () { | 96 publicMethod(methodName, () { |
87 docComment(toHtmlVisitor.collectHtml(() { | 97 docComment(toHtmlVisitor.collectHtml(() { |
88 toHtmlVisitor.write('{@code ${request.longMethod }}'); | 98 toHtmlVisitor.write('{@code ${request.longMethod }}'); |
89 toHtmlVisitor.translateHtml(request.html); | 99 toHtmlVisitor.translateHtml(request.html); |
90 toHtmlVisitor.javadocParams(request.params); | 100 toHtmlVisitor.javadocParams(request.params); |
91 }), width: 99, javadocStyle: true); | 101 }), width: 99, javadocStyle: true); |
92 write('public void $methodName('); | 102 write('public void $methodName('); |
93 List<String> arguments = []; | 103 List<String> arguments = []; |
94 if (request.params != null) { | 104 if (request.params != null) { |
95 for (TypeObjectField field in request.params.fields) { | 105 for (TypeObjectField field in request.params.fields) { |
96 arguments.add('${javaType(field.type)} ${javaName(field.name)}'); | 106 arguments.add('${javaType(field.type)} ${javaName(field.name)}'); |
97 } | 107 } |
98 } | 108 } |
99 if (request.result != null) { | 109 if (request.result != null) { |
100 arguments.add('${consumerName(request)} consumer'); | 110 arguments.add('${consumerName(request)} consumer'); |
101 } | 111 } |
102 write(arguments.join(', ')); | 112 write(arguments.join(', ')); |
103 writeln(');'); | 113 writeln(');'); |
104 }); | 114 }); |
105 } | 115 } |
106 | |
107 /** | |
108 * Get the name of the consumer class for responses to this request. | |
109 */ | |
110 String consumerName(Request request) { | |
111 return camelJoin([request.method, 'consumer'], doCapitalize: true); | |
112 } | |
113 } | 116 } |
114 | |
115 final GeneratedFile target = javaGeneratedFile( | |
116 '../../../../editor/tools/plugins/com.google.dart.server/src/com/google/dart
/server/AnalysisServer.java', | |
117 (Api api) => new CodegenAnalysisServer(api)); | |
118 | |
119 /** | |
120 * Translate spec_input.html into AnalysisServer.java. | |
121 */ | |
122 main() { | |
123 target.generate(); | |
124 } | |
OLD | NEW |