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

Unified Diff: editor/util/plugins/com.google.dart.java2dart/src/com/google/dart/java2dart/processor/PropertySemanticProcessor.java

Issue 17317002: Convert isX() methods to isX getter. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 7 years, 6 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: editor/util/plugins/com.google.dart.java2dart/src/com/google/dart/java2dart/processor/PropertySemanticProcessor.java
diff --git a/editor/util/plugins/com.google.dart.java2dart/src/com/google/dart/java2dart/processor/PropertySemanticProcessor.java b/editor/util/plugins/com.google.dart.java2dart/src/com/google/dart/java2dart/processor/PropertySemanticProcessor.java
index 29368a6cb3136183e1c039342f4ef12c9f439c21..a4bf8a2715d6373680a1a70a733012f8c24c057c 100644
--- a/editor/util/plugins/com.google.dart.java2dart/src/com/google/dart/java2dart/processor/PropertySemanticProcessor.java
+++ b/editor/util/plugins/com.google.dart.java2dart/src/com/google/dart/java2dart/processor/PropertySemanticProcessor.java
@@ -41,6 +41,21 @@ import java.util.List;
* or setter.
*/
public class PropertySemanticProcessor extends SemanticProcessor {
+ private static boolean hasPrefix(String name, String prefix) {
+ // should start with prefix
+ if (!name.startsWith(prefix)) {
+ return false;
+ }
+ // there should be one more character
+ int prefixLen = prefix.length();
+ if (name.length() < prefixLen + 1) {
+ return false;
+ }
+ // next character should be upper case (i.e. property name)
+ char nextChar = name.charAt(prefixLen);
+ return Character.isUpperCase(nextChar);
+ }
+
private static boolean isValidSetterType(TypeName type) {
return type.getName().getName().equals("void");
}
@@ -70,8 +85,8 @@ public class PropertySemanticProcessor extends SemanticProcessor {
String name = context.getIdentifierOriginalName(nameNode);
List<FormalParameter> parameters = node.getParameters().getParameters();
// getter
- if (name.startsWith("get") && parameters.isEmpty()) {
- String propertyName = StringUtils.uncapitalize(name.substring("get".length()));
+ if (parameters.isEmpty() && (hasPrefix(name, "get") || hasPrefix(name, "is"))) {
+ String propertyName = StringUtils.uncapitalize(StringUtils.removeStart(name, "get"));
// rename references
context.renameIdentifier(nameNode, propertyName);
// replace MethodInvocation with PropertyAccess
@@ -97,9 +112,9 @@ public class PropertySemanticProcessor extends SemanticProcessor {
node.setParameters(null);
}
// setter
- if (name.startsWith("set") && parameters.size() == 1
+ if (hasPrefix(name, "set") && parameters.size() == 1
&& isValidSetterType(node.getReturnType())) {
- String propertyName = StringUtils.uncapitalize(name.substring("set".length()));
+ String propertyName = StringUtils.uncapitalize(StringUtils.removeStart(name, "set"));
// rename references
context.renameIdentifier(nameNode, propertyName);
// replace MethodInvocation with AssignmentExpression
« no previous file with comments | « no previous file | editor/util/plugins/com.google.dart.java2dart_test/src/com/google/dart/java2dart/processor/PropertySemanticProcessorTest.java » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698