Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(813)

Unified Diff: pkg/analysis_server/tool/spec/codegen_java_types.dart

Issue 474193003: Make more use of generated code in Java analysis server. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 6 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: pkg/analysis_server/tool/spec/codegen_java_types.dart
diff --git a/pkg/analysis_server/tool/spec/codegen_java_types.dart b/pkg/analysis_server/tool/spec/codegen_java_types.dart
index f30a4abf702bc0bf8fa29fad684b7632b6341bbe..5cf86d43875ec2184b2a394ca4814547116a54f9 100644
--- a/pkg/analysis_server/tool/spec/codegen_java_types.dart
+++ b/pkg/analysis_server/tool/spec/codegen_java_types.dart
@@ -97,7 +97,6 @@ class CodegenJavaType extends CodegenJavaVisitor {
//
//
// public static final "EMPTY_ARRAY" field
- // i.e. "public static final Parameter[] EMPTY_ARRAY = new Parameter[0];"
//
publicField(javaName("EMPTY_ARRAY"), () {
writeln(
@@ -107,8 +106,6 @@ class CodegenJavaType extends CodegenJavaVisitor {
//
// public static final "EMPTY_LIST" field
//
- // i.e. "public static final List<Parameter> EMPTY_LIST = Lists.newArrayList();"
- //
publicField(javaName("EMPTY_LIST"), () {
writeln(
'public static final List<${className}> EMPTY_LIST = Lists.newArrayList();');
@@ -131,8 +128,6 @@ class CodegenJavaType extends CodegenJavaVisitor {
//
TypeObject typeObject = typeDef.type as TypeObject;
List<TypeObjectField> fields = typeObject.fields;
- // TODO we need to possibly remove fields such as "type" in these objects:
- // AddContentOverlay | ChangeContentOverlay | RemoveContentOverlay
for (TypeObjectField field in fields) {
privateField(javaName(field.name), () {
javadocComment(toHtmlVisitor.collectHtml(() {
@@ -154,13 +149,24 @@ class CodegenJavaType extends CodegenJavaVisitor {
// write out parameters to constructor
List<String> parameters = new List();
for (TypeObjectField field in fields) {
- parameters.add('${javaType(field.type)} ${javaName(field.name)}');
+ if (!_isTypeFieldInUpdateContentUnionType(className, field.name)) {
+ parameters.add('${javaType(field.type)} ${javaName(field.name)}');
+ }
}
write(parameters.join(', '));
writeln(') {');
// write out the assignments in the body of the constructor
for (TypeObjectField field in fields) {
- writeln(' this.${javaName(field.name)} = ${javaName(field.name)};');
+ if (!_isTypeFieldInUpdateContentUnionType(className, field.name)) {
+ writeln(
+ ' this.${javaName(field.name)} = ${javaName(field.name)};');
+ } else if (className == 'AddContentOverlay') {
+ writeln(' this.type = "add";');
+ } else if (className == 'ChangeContentOverlay') {
+ writeln(' this.type = "change";');
+ } else if (className == 'RemoveContentOverlay') {
+ writeln(' this.type = "remove";');
+ }
}
writeln('}');
});
@@ -173,8 +179,13 @@ class CodegenJavaType extends CodegenJavaVisitor {
javadocComment(toHtmlVisitor.collectHtml(() {
toHtmlVisitor.translateHtml(field.html);
}));
- writeln(
- 'public ${javaType(field.type)} get${capitalize(javaName(field.name))}() {');
+ if (javaType(field.type) == 'Boolean') {
+ writeln(
+ 'public ${javaType(field.type)} is${capitalize(javaName(field.name))}() {');
+ } else {
+ writeln(
+ 'public ${javaType(field.type)} get${capitalize(javaName(field.name))}() {');
+ }
writeln(' return ${javaName(field.name)};');
writeln('}');
});
@@ -223,7 +234,9 @@ class CodegenJavaType extends CodegenJavaVisitor {
write('return new ${className}(');
List<String> parameters = new List();
for (TypeObjectField field in fields) {
- parameters.add('${javaName(field.name)}');
+ if (!_isTypeFieldInUpdateContentUnionType(className, field.name)) {
+ parameters.add('${javaName(field.name)}');
+ }
}
write(parameters.join(', '));
writeln(');');
@@ -309,6 +322,39 @@ class CodegenJavaType extends CodegenJavaVisitor {
});
//
+ // containsInclusive(int x)
+ //
+ if (className == 'HighlightRegion' ||
+ className == 'NavigationRegion' ||
+ className == 'Outline') {
+ publicMethod('containsInclusive', () {
+ writeln('public boolean containsInclusive(int x) {');
+ indent(() {
+ writeln('return offset <= x && x <= offset + length;');
+ });
+ writeln('}');
+ });
+ }
+
+ //
+ // contains(int x)
+ //
+ if (className == 'Occurrences') {
+ publicMethod('contains', () {
+ writeln('public boolean contains(int x) {');
+ indent(() {
+ writeln('for (int offset : offsets) {');
+ writeln(' if (offset <= x && x < offset + length) {');
+ writeln(' return true;');
+ writeln(' }');
+ writeln('}');
+ writeln('return false;');
+ });
+ writeln('}');
+ });
+ }
+
+ //
// hashCode
//
// TODO (jwren) have hashCode written out
@@ -390,6 +436,18 @@ class CodegenJavaType extends CodegenJavaVisitor {
}
}
+ bool _isTypeFieldInUpdateContentUnionType(String className,
+ String fieldName) {
+ if ((className == 'AddContentOverlay' ||
+ className == 'ChangeContentOverlay' ||
+ className == 'RemoveContentOverlay') &&
+ fieldName == 'type') {
+ return true;
+ } else {
+ return false;
+ }
+ }
+
String _getAsTypeMethodName(TypeDecl typeDecl) {
String name = javaType(typeDecl);
if (name == 'String') {

Powered by Google App Engine
This is Rietveld 408576698