# Class AclEntry.Builder

java.lang.Object
java.nio.file.attribute.AclEntry.Builder

Enclosing class:
  `AclEntry`

public static final class AclEntry.Builder extends Object
A builder of `AclEntry` objects.

A `Builder` object is obtained by invoking one of the `newBuilder` methods defined by the `AclEntry` class.

Builder objects are mutable and are not safe for use by multiple concurrent threads without appropriate synchronization.

Since:
  1.7

- ## Method Summary

  Modifier and Type
  Method
  Description
  `AclEntry`
  `build()`
  Constructs an `AclEntry` from the components of this builder.
  `AclEntry.Builder`
  `setFlags(AclEntryFlag... flags)`
  Sets the flags component of this builder.
  `AclEntry.Builder`
  `setFlags(Set<AclEntryFlag> flags)`
  Sets the flags component of this builder.
  `AclEntry.Builder`
  `setPermissions(AclEntryPermission... perms)`
  Sets the permissions component of this builder.
  `AclEntry.Builder`
  `setPermissions(Set<AclEntryPermission> perms)`
  Sets the permissions component of this builder.
  `AclEntry.Builder`
  `setPrincipal(UserPrincipal who)`
  Sets the principal component of this builder.
  `AclEntry.Builder`
  `setType(AclEntryType type)`
  Sets the type component of this builder.

  ### Methods declared in class Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`
  Modifier and Type
  Method
  Description
  `protected Object`
  `clone()`
  Creates and returns a copy of this object.
  `boolean`
  `equals(Object obj)`
  Indicates whether some other object is "equal to" this one.
  `protected void`
  `finalize()`
  Deprecated, for removal: This API element is subject to removal in a future version.
  Finalization is deprecated and subject to removal in a future release.
  `final Class<?>`
  `getClass()`
  Returns the runtime class of this `Object`.
  `int`
  `hashCode()`
  Returns a hash code value for this object.
  `final void`
  `notify()`
  Wakes up a single thread that is waiting on this object's monitor.
  `final void`
  `notifyAll()`
  Wakes up all threads that are waiting on this object's monitor.
  `String`
  `toString()`
  Returns a string representation of the object.
  `final void`
  `wait()`
  Causes the current thread to wait until it is awakened, typically by being notified or interrupted.
  `final void`
  `wait(long timeoutMillis)`
  Causes the current thread to wait until it is awakened, typically by being notified or interrupted, or until a certain amount of real time has elapsed.
  `final void`
  `wait(long timeoutMillis, int nanos)`
  Causes the current thread to wait until it is awakened, typically by being notified or interrupted, or until a certain amount of real time has elapsed.

- ## Method Details

  - ### build

    public AclEntry build()
    Constructs an `AclEntry` from the components of this builder. The type and who components are required to have been set in order to construct an `AclEntry`.
    Returns:
      a new ACL entry
    Throws:
      `IllegalStateException` - if the type or who component have not been set

  - ### setType

    public AclEntry.Builder setType(AclEntryType type)
    Sets the type component of this builder.
    Parameters:
      `type` - the component type
    Returns:
      this builder

  - ### setPrincipal

    public AclEntry.Builder setPrincipal(UserPrincipal who)
    Sets the principal component of this builder.
    Parameters:
      `who` - the principal component
    Returns:
      this builder

  - ### setPermissions

    public AclEntry.Builder setPermissions(Set<AclEntryPermission> perms)
    Sets the permissions component of this builder. On return, the permissions component of this builder is a copy of the given set.
    Parameters:
      `perms` - the permissions component
    Returns:
      this builder
    Throws:
      `ClassCastException` - if the set contains elements that are not of type `AclEntryPermission`

  - ### setPermissions

    public AclEntry.Builder setPermissions(AclEntryPermission... perms)
    Sets the permissions component of this builder. On return, the permissions component of this builder is a copy of the permissions in the given array.
    Parameters:
      `perms` - the permissions component
    Returns:
      this builder

  - ### setFlags

    public AclEntry.Builder setFlags(Set<AclEntryFlag> flags)
    Sets the flags component of this builder. On return, the flags component of this builder is a copy of the given set.
    Parameters:
      `flags` - the flags component
    Returns:
      this builder
    Throws:
      `ClassCastException` - if the set contains elements that are not of type `AclEntryFlag`

  - ### setFlags

    public AclEntry.Builder setFlags(AclEntryFlag... flags)
    Sets the flags component of this builder. On return, the flags component of this builder is a copy of the flags in the given array.
    Parameters:
      `flags` - the flags component
    Returns:
      this builder