diff options
-rw-r--r-- | src/lombok/core/AST.java | 10 | ||||
-rw-r--r-- | src/lombok/eclipse/handlers/HandleEqualsAndHashCode.java | 4 | ||||
-rw-r--r-- | src/lombok/javac/handlers/HandleEqualsAndHashCode.java | 4 | ||||
-rw-r--r-- | src/lombok/javac/handlers/HandleGetter.java | 9 | ||||
-rw-r--r-- | src/lombok/javac/handlers/HandleSetter.java | 9 |
5 files changed, 27 insertions, 9 deletions
diff --git a/src/lombok/core/AST.java b/src/lombok/core/AST.java index b1b5f3be..6d786d1e 100644 --- a/src/lombok/core/AST.java +++ b/src/lombok/core/AST.java @@ -286,7 +286,15 @@ public abstract class AST<A extends AST<A, L, N>, L extends LombokNode<A, L, N>, return false; } - /** Override if your AST collection does not support the set method. Javac's for example, does not. */ + /** + * Override if your AST collection does not support the set method. Javac's for example, does not. + * + * @param field The field that contains the array or list of AST nodes. + * @param fieldRef The object that you can supply to the field's {@code get} method. + * @param chain If the collection is immutable, you need to update the pointer to the collection in each element in the chain. + * + * @throws IllegalAccessException This exception won't happen, but we allow you to throw it so you can avoid having to catch it. + */ @SuppressWarnings("unchecked") protected void setElementInASTCollection(Field field, Object fieldRef, List<Collection<?>> chain, Collection<?> collection, int idx, N newN) throws IllegalAccessException { if (collection instanceof List<?>) { diff --git a/src/lombok/eclipse/handlers/HandleEqualsAndHashCode.java b/src/lombok/eclipse/handlers/HandleEqualsAndHashCode.java index c5945e6c..c53938d1 100644 --- a/src/lombok/eclipse/handlers/HandleEqualsAndHashCode.java +++ b/src/lombok/eclipse/handlers/HandleEqualsAndHashCode.java @@ -160,7 +160,9 @@ public class HandleEqualsAndHashCode implements EclipseAnnotationHandler<EqualsA if (callSuper == null) { try { callSuper = ((Boolean)EqualsAndHashCode.class.getMethod("callSuper").getDefaultValue()).booleanValue(); - } catch (Exception ignore) {} + } catch (Exception ignore) { + throw new InternalError("Lombok bug - this cannot happen - can't find callSuper field in EqualsAndHashCode annotation."); + } } boolean isDirectDescendantOfObject = true; diff --git a/src/lombok/javac/handlers/HandleEqualsAndHashCode.java b/src/lombok/javac/handlers/HandleEqualsAndHashCode.java index 12eed02b..f1eae2a7 100644 --- a/src/lombok/javac/handlers/HandleEqualsAndHashCode.java +++ b/src/lombok/javac/handlers/HandleEqualsAndHashCode.java @@ -123,7 +123,9 @@ public class HandleEqualsAndHashCode implements JavacAnnotationHandler<EqualsAnd if (callSuper == null) { try { callSuper = ((Boolean)EqualsAndHashCode.class.getMethod("callSuper").getDefaultValue()).booleanValue(); - } catch (Exception ignore) {} + } catch (Exception ignore) { + throw new InternalError("Lombok bug - this cannot happen - can't find callSuper field in EqualsAndHashCode annotation."); + } } JCTree extending = ((JCClassDecl)typeNode.get()).extending; diff --git a/src/lombok/javac/handlers/HandleGetter.java b/src/lombok/javac/handlers/HandleGetter.java index 49f732d8..064454d9 100644 --- a/src/lombok/javac/handlers/HandleGetter.java +++ b/src/lombok/javac/handlers/HandleGetter.java @@ -62,6 +62,9 @@ public class HandleGetter implements JavacAnnotationHandler<Getter> { * same rules apply (e.g. warning if the method already exists, stated access level applies). * If not, the getter is still generated if it isn't already there, though there will not * be a warning if its already there. The default access level is used. + * + * @param fieldNode The node representing the field you want a getter for. + * @param pos The node responsible for generating the getter (the {@code @Data} or {@code @Getter} annotation). */ public void generateGetterForField(JavacNode fieldNode, DiagnosticPosition pos) { for (JavacNode child : fieldNode.down()) { @@ -73,7 +76,7 @@ public class HandleGetter implements JavacAnnotationHandler<Getter> { } } - createGetterForField(AccessLevel.PUBLIC, fieldNode, fieldNode, pos, false); + createGetterForField(AccessLevel.PUBLIC, fieldNode, fieldNode, false); } @Override public boolean handle(AnnotationValues<Getter> annotation, JCAnnotation ast, JavacNode annotationNode) { @@ -81,11 +84,11 @@ public class HandleGetter implements JavacAnnotationHandler<Getter> { AccessLevel level = annotation.getInstance().value(); if (level == AccessLevel.NONE) return true; - return createGetterForField(level, fieldNode, annotationNode, annotationNode.get(), true); + return createGetterForField(level, fieldNode, annotationNode, true); } private boolean createGetterForField(AccessLevel level, - JavacNode fieldNode, JavacNode errorNode, DiagnosticPosition pos, boolean whineIfExists) { + JavacNode fieldNode, JavacNode errorNode, boolean whineIfExists) { if (fieldNode.getKind() != Kind.FIELD) { errorNode.addError("@Getter is only supported on a field."); return true; diff --git a/src/lombok/javac/handlers/HandleSetter.java b/src/lombok/javac/handlers/HandleSetter.java index 08387895..33bc34a9 100644 --- a/src/lombok/javac/handlers/HandleSetter.java +++ b/src/lombok/javac/handlers/HandleSetter.java @@ -64,6 +64,9 @@ public class HandleSetter implements JavacAnnotationHandler<Setter> { * same rules apply (e.g. warning if the method already exists, stated access level applies). * If not, the setter is still generated if it isn't already there, though there will not * be a warning if its already there. The default access level is used. + * + * @param fieldNode The node representing the field you want a setter for. + * @param pos The node responsible for generating the setter (the {@code @Data} or {@code @Setter} annotation). */ public void generateSetterForField(JavacNode fieldNode, DiagnosticPosition pos) { for (JavacNode child : fieldNode.down()) { @@ -75,7 +78,7 @@ public class HandleSetter implements JavacAnnotationHandler<Setter> { } } - createSetterForField(AccessLevel.PUBLIC, fieldNode, fieldNode, pos, false); + createSetterForField(AccessLevel.PUBLIC, fieldNode, fieldNode, false); } @Override public boolean handle(AnnotationValues<Setter> annotation, JCAnnotation ast, JavacNode annotationNode) { @@ -83,11 +86,11 @@ public class HandleSetter implements JavacAnnotationHandler<Setter> { AccessLevel level = annotation.getInstance().value(); if (level == AccessLevel.NONE) return true; - return createSetterForField(level, fieldNode, annotationNode, annotationNode.get(), true); + return createSetterForField(level, fieldNode, annotationNode, true); } private boolean createSetterForField(AccessLevel level, - JavacNode fieldNode, JavacNode errorNode, DiagnosticPosition pos, boolean whineIfExists) { + JavacNode fieldNode, JavacNode errorNode, boolean whineIfExists) { if (fieldNode.getKind() != Kind.FIELD) { fieldNode.addError("@Setter is only supported on a field."); return true; |