// Path: src/core/lombok/core/util/Arrays.java
// public static <T> T[] copy(T[] array) {
//   return copyOf(array, array.length);
// }
// 
// Path: src/eclipse/lombok/eclipse/handlers/Eclipse.java
// static TypeReference qualifiedTypeReference(Class<?> type, ASTNode source) {
//   long p = posNom(source);
//   return new QualifiedTypeReference(fromQualifiedName(type.getName()), new long[] { p, p, p });
// }


import static lombok.core.util.Arrays.copy;
import static lombok.eclipse.Eclipse.setGeneratedBy;
import static lombok.eclipse.handlers.Eclipse.qualifiedTypeReference;
import lombok.eclipse.EclipseNode;
import org.eclipse.jdt.internal.compiler.ast.*;
  private String name;
  private int modifiers;
  private Expression[] args = NO_ARGS;

  FieldBuilder ofType(Class<?> newType) {
    type = newType;
    return this;
  }

  FieldBuilder withName(String newName) {
    name = newName;
    return this;
  }

  FieldBuilder withModifiers(int newModifiers) {
    modifiers = newModifiers;
    return this;
  }

  FieldBuilder withArgs(Expression...newArgs) {
    args = copy(newArgs);
    return this;
  }

  FieldDeclaration buildWith(EclipseNode node) {
    ASTNode source = node.get();
    FieldDeclaration fieldDecl = new FieldDeclaration(name.toCharArray(), source.sourceStart, source.sourceEnd);
    setGeneratedBy(fieldDecl, source);
    fieldDecl.declarationSourceEnd = -1;
    fieldDecl.modifiers = modifiers;
// Path: src/core/lombok/core/util/Arrays.java
// public static <T> T[] copy(T[] array) {
//   return copyOf(array, array.length);
// }
// 
// Path: src/eclipse/lombok/eclipse/handlers/Eclipse.java
// static TypeReference qualifiedTypeReference(Class<?> type, ASTNode source) {
//   long p = posNom(source);
//   return new QualifiedTypeReference(fromQualifiedName(type.getName()), new long[] { p, p, p });
// }


// Path: src/eclipse/lombok/eclipse/handlers/FieldBuilder.java
import static lombok.core.util.Arrays.copy;
import static lombok.eclipse.Eclipse.setGeneratedBy;
import static lombok.eclipse.handlers.Eclipse.qualifiedTypeReference;
import lombok.eclipse.EclipseNode;
import org.eclipse.jdt.internal.compiler.ast.*;

  private String name;
  private int modifiers;
  private Expression[] args = NO_ARGS;

  FieldBuilder ofType(Class<?> newType) {
    type = newType;
    return this;
  }

  FieldBuilder withName(String newName) {
    name = newName;
    return this;
  }

  FieldBuilder withModifiers(int newModifiers) {
    modifiers = newModifiers;
    return this;
  }

  FieldBuilder withArgs(Expression...newArgs) {
    args = copy(newArgs);
    return this;
  }

  FieldDeclaration buildWith(EclipseNode node) {
    ASTNode source = node.get();
    FieldDeclaration fieldDecl = new FieldDeclaration(name.toCharArray(), source.sourceStart, source.sourceEnd);
    setGeneratedBy(fieldDecl, source);
    fieldDecl.declarationSourceEnd = -1;
    fieldDecl.modifiers = modifiers;
    fieldDecl.type = qualifiedTypeReference(type, source);