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

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

Issue 545023002: Generate setters for RefactoringOptions. (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 | « editor/tools/plugins/com.google.dart.server/src/com/google/dart/server/generated/types/RenameOptions.java ('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 9ec7e3659c867023a28d0284ee1b3121a69683da..c6e326e531013a9490fea29366938f2cd03dba92 100644
--- a/pkg/analysis_server/tool/spec/codegen_java_types.dart
+++ b/pkg/analysis_server/tool/spec/codegen_java_types.dart
@@ -53,11 +53,13 @@ const Map<String, String> _extraMethodsOnElement = const {
};
class CodegenJavaType extends CodegenJavaVisitor {
+ final String className;
+ final String superclassName;
+ final bool generateGetters;
+ final bool generateSetters;
- String className;
- String superclassName;
-
- CodegenJavaType(Api api, this.className, this.superclassName)
+ CodegenJavaType(Api api, this.className, this.superclassName,
+ this.generateGetters, this.generateSetters)
: super(api);
void emitType(TypeDecl type, dom.Element html) {
@@ -123,13 +125,18 @@ class CodegenJavaType extends CodegenJavaVisitor {
TypeObject typeObject = type as TypeObject;
List<TypeObjectField> fields = typeObject.fields;
for (TypeObjectField field in fields) {
- if (!(className == 'Outline' && javaName(field.name) == 'children')) {
- privateField(javaName(field.name), () {
+ String type = javaFieldType(field);
+ String name = javaName(field.name);
+ if (!(className == 'Outline' && name == 'children')) {
+ privateField(name, () {
javadocComment(toHtmlVisitor.collectHtml(() {
toHtmlVisitor.translateHtml(field.html);
}));
- writeln(
- 'private final ${javaFieldType(field)} ${javaName(field.name)};');
+ if (generateSetters) {
+ writeln('private $type $name;');
+ } else {
+ writeln('private final $type $name;');
+ }
});
}
}
@@ -156,9 +163,11 @@ class CodegenJavaType extends CodegenJavaVisitor {
parameters.add('Outline parent');
}
for (TypeObjectField field in fields) {
+ String type = javaFieldType(field);
+ String name = javaName(field.name);
if (!_isTypeFieldInUpdateContentUnionType(className, field.name) &&
- !(className == 'Outline' && javaName(field.name) == 'children')) {
- parameters.add('${javaFieldType(field)} ${javaName(field.name)}');
+ !(className == 'Outline' && name == 'children')) {
+ parameters.add('$type $name');
}
}
write(parameters.join(', '));
@@ -169,10 +178,10 @@ class CodegenJavaType extends CodegenJavaVisitor {
writeln('this.parent = parent;');
}
for (TypeObjectField field in fields) {
+ String name = javaName(field.name);
if (!_isTypeFieldInUpdateContentUnionType(className, field.name) &&
- !(className == 'Outline' && javaName(field.name) == 'children')) {
- writeln(
- 'this.${javaName(field.name)} = ${javaName(field.name)};');
+ !(className == 'Outline' && name == 'children')) {
+ writeln('this.$name = $name;');
} else if (className == 'AddContentOverlay') {
writeln('this.type = "add";');
} else if (className == 'ChangeContentOverlay') {
@@ -188,21 +197,42 @@ class CodegenJavaType extends CodegenJavaVisitor {
//
// getter methods
//
- for (TypeObjectField field in fields) {
- publicMethod('get${javaName(field.name)}', () {
- javadocComment(toHtmlVisitor.collectHtml(() {
- toHtmlVisitor.translateHtml(field.html);
- }));
- if (javaFieldType(field) == 'boolean') {
- writeln(
- 'public ${javaFieldType(field)} ${javaName(field.name)}() {');
- } else {
- writeln(
- 'public ${javaFieldType(field)} get${capitalize(javaName(field.name))}() {');
- }
- writeln(' return ${javaName(field.name)};');
- writeln('}');
- });
+ if (generateGetters) {
+ for (TypeObjectField field in fields) {
+ String type = javaFieldType(field);
+ String name = javaName(field.name);
+ publicMethod('get$name', () {
+ javadocComment(toHtmlVisitor.collectHtml(() {
+ toHtmlVisitor.translateHtml(field.html);
+ }));
+ if (type == 'boolean') {
+ writeln('public $type $name() {');
+ } else {
+ writeln('public $type get${capitalize(name)}() {');
+ }
+ writeln(' return $name;');
+ writeln('}');
+ });
+ }
+ }
+
+ //
+ // setter methods
+ //
+ if (generateSetters) {
+ for (TypeObjectField field in fields) {
+ String type = javaFieldType(field);
+ String name = javaName(field.name);
+ publicMethod('set$name', () {
+ javadocComment(toHtmlVisitor.collectHtml(() {
+ toHtmlVisitor.translateHtml(field.html);
+ }));
+ String setterName = 'set' + capitalize(name);
+ writeln('public void $setterName($type $name) {');
+ writeln(' this.$name = $name;');
+ writeln('}');
+ });
+ }
}
//
@@ -638,9 +668,15 @@ final GeneratedDirectory targetDir = new GeneratedDirectory(pathToGenTypes, () {
if (isRefactoringOption) {
superclassName = 'RefactoringOptions';
}
+ // configure accessors
+ bool generateGetters = true;
+ bool generateSetters = false;
+ if (isRefactoringOption) {
+ generateSetters = true;
+ }
// create the visitor
- CodegenJavaType visitor =
- new CodegenJavaType(api, typeNameInJava, superclassName);
+ CodegenJavaType visitor = new CodegenJavaType(api, typeNameInJava,
+ superclassName, generateGetters, generateSetters);
return visitor.collectCode(() {
dom.Element doc = type.html;
if (impliedType.apiNode is TypeDefinition) {
« no previous file with comments | « editor/tools/plugins/com.google.dart.server/src/com/google/dart/server/generated/types/RenameOptions.java ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698