Exemplo n.º 1
0
 public void handle(
     final AccessLevel level,
     final Class<? extends java.lang.annotation.Annotation> annotationType) {
   LOMBOK_NODE_TYPE mayBeField = annotationNode.up();
   if (mayBeField == null) return;
   TYPE_TYPE type = typeOf(annotationNode, ast);
   List<FIELD_TYPE> fields = new ArrayList<FIELD_TYPE>();
   if (mayBeField.getKind() == Kind.FIELD) {
     for (LOMBOK_NODE_TYPE node : annotationNode.upFromAnnotationToFields()) {
       fields.add(fieldOf(node, ast));
     }
   } else if (mayBeField.getKind() == Kind.TYPE) {
     for (FIELD_TYPE field : type.fields()) {
       if (!field.annotations(SETTER_PATTERN).isEmpty()) continue;
       if (field.name().startsWith("$")) continue;
       if (field.isFinal()) continue;
       if (field.isStatic()) continue;
       fields.add(field);
     }
   } else {
     annotationNode.addError(canBeUsedOnClassAndFieldOnly(annotationType));
     return;
   }
   generateSetter(type, fields, level);
 }