aboutsummaryrefslogtreecommitdiff
path: root/src/lombok/javac/handlers/HandleData.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/lombok/javac/handlers/HandleData.java')
-rw-r--r--src/lombok/javac/handlers/HandleData.java16
1 files changed, 9 insertions, 7 deletions
diff --git a/src/lombok/javac/handlers/HandleData.java b/src/lombok/javac/handlers/HandleData.java
index d3974c58..41165600 100644
--- a/src/lombok/javac/handlers/HandleData.java
+++ b/src/lombok/javac/handlers/HandleData.java
@@ -76,7 +76,8 @@ public class HandleData implements JavacAnnotationHandler<Data> {
}
List<Node> nodesForEquality = List.nil();
- List<Node> nodesForConstructorAndToString = List.nil();
+ List<Node> nodesForConstructor = List.nil();
+ List<Node> nodesForToString = List.nil();
for ( Node child : typeNode.down() ) {
if ( child.getKind() != Kind.FIELD ) continue;
JCVariableDecl fieldDecl = (JCVariableDecl) child.get();
@@ -84,21 +85,22 @@ public class HandleData implements JavacAnnotationHandler<Data> {
//Skip static fields.
if ( (fieldFlags & Flags.STATIC) != 0 ) continue;
if ( (fieldFlags & Flags.TRANSIENT) == 0 ) nodesForEquality = nodesForEquality.append(child);
- nodesForConstructorAndToString = nodesForConstructorAndToString.append(child);
+ boolean isFinal = (fieldFlags & Flags.FINAL) != 0;
+ nodesForToString = nodesForToString.append(child);
+ if ( isFinal ) nodesForConstructor = nodesForConstructor.append(child);
new HandleGetter().generateGetterForField(child, annotationNode.get());
- if ( (fieldFlags & Flags.FINAL) == 0 )
- new HandleSetter().generateSetterForField(child, annotationNode.get());
+ if ( !isFinal ) new HandleSetter().generateSetterForField(child, annotationNode.get());
}
String staticConstructorName = annotation.getInstance().staticConstructor();
if ( constructorExists(typeNode) == MemberExistsResult.NOT_EXISTS ) {
- JCMethodDecl constructor = createConstructor(staticConstructorName.equals(""), typeNode, nodesForConstructorAndToString);
+ JCMethodDecl constructor = createConstructor(staticConstructorName.equals(""), typeNode, nodesForConstructor);
injectMethod(typeNode, constructor);
}
if ( !staticConstructorName.isEmpty() && methodExists("of", typeNode) == MemberExistsResult.NOT_EXISTS ) {
- JCMethodDecl staticConstructor = createStaticConstructor(staticConstructorName, typeNode, nodesForConstructorAndToString);
+ JCMethodDecl staticConstructor = createStaticConstructor(staticConstructorName, typeNode, nodesForConstructor);
injectMethod(typeNode, staticConstructor);
}
@@ -113,7 +115,7 @@ public class HandleData implements JavacAnnotationHandler<Data> {
}
if ( methodExists("toString", typeNode) == MemberExistsResult.NOT_EXISTS ) {
- JCMethodDecl method = createToString(typeNode, nodesForEquality);
+ JCMethodDecl method = createToString(typeNode, nodesForToString);
injectMethod(typeNode, method);
}