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

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

Issue 538253002: Use primitive int/boolean where possible in the Java client. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 6 years, 3 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
« no previous file with comments | « pkg/analysis_server/tool/spec/codegen_java.dart ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 423545eff01eb828d867210eb303bdf66440a3aa..b08ab48778bd3cc566201f25681e09189b24e8f6 100644
--- a/pkg/analysis_server/tool/spec/codegen_java_types.dart
+++ b/pkg/analysis_server/tool/spec/codegen_java_types.dart
@@ -129,7 +129,7 @@ class CodegenJavaType extends CodegenJavaVisitor {
toHtmlVisitor.translateHtml(field.html);
}));
writeln(
- 'private final ${javaType(field.type)} ${javaName(field.name)};');
+ 'private final ${javaFieldType(field)} ${javaName(field.name)};');
});
}
}
@@ -158,7 +158,7 @@ class CodegenJavaType extends CodegenJavaVisitor {
for (TypeObjectField field in fields) {
if (!_isTypeFieldInUpdateContentUnionType(className, field.name) &&
!(className == 'Outline' && javaName(field.name) == 'children')) {
- parameters.add('${javaType(field.type)} ${javaName(field.name)}');
+ parameters.add('${javaFieldType(field)} ${javaName(field.name)}');
}
}
write(parameters.join(', '));
@@ -193,12 +193,12 @@ class CodegenJavaType extends CodegenJavaVisitor {
javadocComment(toHtmlVisitor.collectHtml(() {
toHtmlVisitor.translateHtml(field.html);
}));
- if (javaType(field.type) == 'Boolean') {
+ if (javaFieldType(field) == 'boolean') {
writeln(
- 'public ${javaType(field.type)} ${javaName(field.name)}() {');
+ 'public ${javaFieldType(field)} ${javaName(field.name)}() {');
} else {
writeln(
- 'public ${javaType(field.type)} get${capitalize(javaName(field.name))}() {');
+ 'public ${javaFieldType(field)} get${capitalize(javaName(field.name))}() {');
}
writeln(' return ${javaName(field.name)};');
writeln('}');
@@ -217,18 +217,18 @@ class CodegenJavaType extends CodegenJavaVisitor {
'public static ${className} fromJson(JsonObject jsonObject) {');
indent(() {
for (TypeObjectField field in fields) {
- write('${javaType(field.type)} ${javaName(field.name)} = ');
+ write('${javaFieldType(field)} ${javaName(field.name)} = ');
if (field.optional) {
write(
'jsonObject.get("${javaName(field.name)}") == null ? null : ');
}
if (isDeclaredInSpec(field.type)) {
- write('${javaType(field.type)}.fromJson(');
+ write('${javaFieldType(field)}.fromJson(');
write(
'jsonObject.get("${javaName(field.name)}").getAsJsonObject())');
} else {
if (isList(field.type)) {
- if (javaType(field.type).endsWith('<String>')) {
+ if (javaFieldType(field).endsWith('<String>')) {
write(
'JsonUtilities.decodeStringList(jsonObject.get("${javaName(field.name)}").${_getAsTypeMethodName(field.type)}())');
} else {
@@ -236,9 +236,9 @@ class CodegenJavaType extends CodegenJavaVisitor {
'${javaType((field.type as TypeList).itemType)}.fromJsonArray(jsonObject.get("${javaName(field.name)}").${_getAsTypeMethodName(field.type)}())');
}
} else if (isArray(field.type)) {
- if (javaType(field.type).startsWith('Integer')) {
+ if (javaFieldType(field).startsWith('int')) {
write(
- 'JsonUtilities.decodeIntegerArray(jsonObject.get("${javaName(field.name)}").${_getAsTypeMethodName(field.type)}())');
+ 'JsonUtilities.decodeIntArray(jsonObject.get("${javaName(field.name)}").${_getAsTypeMethodName(field.type)}())');
}
} else {
write(
@@ -519,7 +519,7 @@ class CodegenJavaType extends CodegenJavaVisitor {
String _getEqualsLogicForField(TypeObjectField field, String other) {
String name = javaName(field.name);
- if (isPrimitive(field.type)) {
+ if (isPrimitive(field.type) && !field.optional) {
return '${other}.${name} == ${name}';
} else if (isArray(field.type)) {
return 'Arrays.equals(other.${name}, ${name})';
@@ -541,12 +541,13 @@ class CodegenJavaType extends CodegenJavaVisitor {
}
String _getAsTypeMethodName(TypeDecl typeDecl) {
- String name = javaType(typeDecl);
+ // TODO(scheglov) int/bool ?
+ String name = javaType(typeDecl, true);
if (name == 'String') {
return 'getAsString';
- } else if (name == 'Boolean') {
+ } else if (name == 'boolean' || name == 'Boolean') {
return 'getAsBoolean';
- } else if (name == 'Integer') {
+ } else if (name == 'int' || name == 'Integer') {
return 'getAsInt';
} else if (name.startsWith('List')) {
return 'getAsJsonArray';
« no previous file with comments | « pkg/analysis_server/tool/spec/codegen_java.dart ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698