aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorReinier Zwitserloot <reinier@tipit.to>2009-07-12 00:35:17 +0200
committerReinier Zwitserloot <reinier@tipit.to>2009-07-12 00:35:17 +0200
commit5fef32c1f59403ef2978942ac2838731b1406413 (patch)
treee906845aebe6bcccd65ed33ba314bf0ba3ce782f
parent12d44e59c57e4654a7c61f83baf606a39fbb8448 (diff)
downloadlombok-5fef32c1f59403ef2978942ac2838731b1406413.tar.gz
lombok-5fef32c1f59403ef2978942ac2838731b1406413.tar.bz2
lombok-5fef32c1f59403ef2978942ac2838731b1406413.zip
More fixes to avoid erroneous "getter/setter is already there, not generating it" warnings
when the getter/setter already there was in fact generated by lombok, and fixed a bug in eclipse where a boolean array's getter method would be called isFoo() instead of getFoo().
-rw-r--r--src/lombok/eclipse/handlers/HandleGetter.java15
-rw-r--r--src/lombok/eclipse/handlers/HandleSetter.java13
-rw-r--r--src/lombok/javac/handlers/HandleGetter.java13
-rw-r--r--src/lombok/javac/handlers/HandleSetter.java13
4 files changed, 13 insertions, 41 deletions
diff --git a/src/lombok/eclipse/handlers/HandleGetter.java b/src/lombok/eclipse/handlers/HandleGetter.java
index b69a43f3..0bdde361 100644
--- a/src/lombok/eclipse/handlers/HandleGetter.java
+++ b/src/lombok/eclipse/handlers/HandleGetter.java
@@ -62,23 +62,16 @@ public class HandleGetter implements EclipseAnnotationHandler<Getter> {
* be a warning if its already there. The default access level is used.
*/
public void generateGetterForField(Node fieldNode, ASTNode pos) {
- AccessLevel level = AccessLevel.PUBLIC;
- Node errorNode = fieldNode;
- boolean whineIfExists = false;
-
for ( Node child : fieldNode.down() ) {
if ( child.getKind() == Kind.ANNOTATION ) {
if ( Eclipse.annotationTypeMatches(Getter.class, child) ) {
- level = Eclipse.createAnnotation(Getter.class, child).getInstance().value();
- errorNode = child;
- pos = child.get();
- whineIfExists = true;
- break;
+ //The annotation will make it happen, so we can skip it.
+ return;
}
}
}
- createGetterForField(level, fieldNode, errorNode, pos, whineIfExists);
+ createGetterForField(AccessLevel.PUBLIC, fieldNode, fieldNode, pos, false);
}
public boolean handle(AnnotationValues<Getter> annotation, Annotation ast, Node annotationNode) {
@@ -96,7 +89,7 @@ public class HandleGetter implements EclipseAnnotationHandler<Getter> {
FieldDeclaration field = (FieldDeclaration) fieldNode.get();
TypeReference fieldType = Eclipse.copyType(field.type);
String getterName = TransformationsUtil.toGetterName(
- new String(field.name), nameEquals(fieldType.getTypeName(), "boolean"));
+ new String(field.name), nameEquals(fieldType.getTypeName(), "boolean") && fieldType.dimensions() == 0);
int modifier = toModifier(level) | (field.modifiers & ClassFileConstants.AccStatic);
diff --git a/src/lombok/eclipse/handlers/HandleSetter.java b/src/lombok/eclipse/handlers/HandleSetter.java
index b08f298a..95eb0210 100644
--- a/src/lombok/eclipse/handlers/HandleSetter.java
+++ b/src/lombok/eclipse/handlers/HandleSetter.java
@@ -66,23 +66,16 @@ public class HandleSetter implements EclipseAnnotationHandler<Setter> {
* be a warning if its already there. The default access level is used.
*/
public void generateSetterForField(Node fieldNode, ASTNode pos) {
- AccessLevel level = AccessLevel.PUBLIC;
- Node errorNode = fieldNode;
- boolean whineIfExists = false;
-
for ( Node child : fieldNode.down() ) {
if ( child.getKind() == Kind.ANNOTATION ) {
if ( Eclipse.annotationTypeMatches(Setter.class, child) ) {
- level = Eclipse.createAnnotation(Setter.class, child).getInstance().value();
- errorNode = child;
- pos = child.get();
- whineIfExists = true;
- break;
+ //The annotation will make it happen, so we can skip it.
+ return;
}
}
}
- createSetterForField(level, fieldNode, errorNode, pos, whineIfExists);
+ createSetterForField(AccessLevel.PUBLIC, fieldNode, fieldNode, pos, false);
}
public boolean handle(AnnotationValues<Setter> annotation, Annotation ast, Node annotationNode) {
diff --git a/src/lombok/javac/handlers/HandleGetter.java b/src/lombok/javac/handlers/HandleGetter.java
index ed0370ac..c993afcd 100644
--- a/src/lombok/javac/handlers/HandleGetter.java
+++ b/src/lombok/javac/handlers/HandleGetter.java
@@ -63,23 +63,16 @@ public class HandleGetter implements JavacAnnotationHandler<Getter> {
* be a warning if its already there. The default access level is used.
*/
public void generateGetterForField(Node fieldNode, DiagnosticPosition pos) {
- AccessLevel level = AccessLevel.PUBLIC;
- Node errorNode = fieldNode;
- boolean whineIfExists = false;
-
for ( Node child : fieldNode.down() ) {
if ( child.getKind() == Kind.ANNOTATION ) {
if ( Javac.annotationTypeMatches(Getter.class, child) ) {
- level = Javac.createAnnotation(Getter.class, child).getInstance().value();
- errorNode = child;
- pos = child.get();
- whineIfExists = true;
- break;
+ //The annotation will make it happen, so we can skip it.
+ return;
}
}
}
- createGetterForField(level, fieldNode, errorNode, pos, whineIfExists);
+ createGetterForField(AccessLevel.PUBLIC, fieldNode, fieldNode, pos, false);
}
@Override public boolean handle(AnnotationValues<Getter> annotation, JCAnnotation ast, Node annotationNode) {
diff --git a/src/lombok/javac/handlers/HandleSetter.java b/src/lombok/javac/handlers/HandleSetter.java
index b1c37bb1..d11b4250 100644
--- a/src/lombok/javac/handlers/HandleSetter.java
+++ b/src/lombok/javac/handlers/HandleSetter.java
@@ -66,23 +66,16 @@ public class HandleSetter implements JavacAnnotationHandler<Setter> {
* be a warning if its already there. The default access level is used.
*/
public void generateSetterForField(Node fieldNode, DiagnosticPosition pos) {
- AccessLevel level = AccessLevel.PUBLIC;
- Node errorNode = fieldNode;
- boolean whineIfExists = false;
-
for ( Node child : fieldNode.down() ) {
if ( child.getKind() == Kind.ANNOTATION ) {
if ( Javac.annotationTypeMatches(Setter.class, child) ) {
- level = Javac.createAnnotation(Setter.class, child).getInstance().value();
- errorNode = child;
- pos = child.get();
- whineIfExists = true;
- break;
+ //The annotation will make it happen, so we can skip it.
+ return;
}
}
}
- createSetterForField(level, fieldNode, errorNode, pos, whineIfExists);
+ createSetterForField(AccessLevel.PUBLIC, fieldNode, fieldNode, pos, false);
}
@Override public boolean handle(AnnotationValues<Setter> annotation, JCAnnotation ast, Node annotationNode) {