Class PermissionSet

All Implemented Interfaces:
Iterable<Permission>, Collection<Permission>, Set<Permission>

public final class PermissionSet extends AbstractSet<Permission>
An immutable, specialized Set<Permission>.

This is a value-based class; use of identity-sensitive operations (including reference equality (==), identity hash code, or synchronization) on instances of PermissionSet may have unpredictable results and should be avoided. The equals method should be used for comparisons.

See Also:
  • Method Details

    • all

      public static PermissionSet all()
      Returns a PermissionSet containing all permissions.
      Returns:
      A PermissionSet containing all permissions.
    • none

      public static PermissionSet none()
      Returns a PermissionSet containing no permissions.
      Returns:
      A PermissionSet containing no permissions.
    • of

      public static PermissionSet of(long rawValue)
      Returns a PermissionSet containing all the permissions represented by the raw value.
      Parameters:
      rawValue - A bit-wise OR evaluation of multiple values returned by Permission.getValue().
      Returns:
      A PermissionSet containing all the permissions represented by the raw value.
    • of

      public static PermissionSet of(String rawValue)
      Returns a PermissionSet containing all the permissions represented by the raw value.
      Parameters:
      rawValue - A bit-wise OR evaluation of multiple values returned by Permission.getValue(), as a string.
      Returns:
      A PermissionSet containing all the permissions represented by the raw value.
    • of

      public static PermissionSet of(Permission... permissions)
      Returns a PermissionSet containing all the supplied permissions.
      Parameters:
      permissions - The permissions to add to the PermissionSet.
      Returns:
      A PermissionSet containing all the supplied permissions.
    • and

      public PermissionSet and(PermissionSet other)
      Performs a logical AND of this permission set with the other permission set.

      The resultant set is the intersection of this set and the other set. A permission is contained if and only if it was contained in both this set and the other set. This is analogous to Set.retainAll(java.util.Collection).

       
       PermissionSet set0 = PermissionSet.of(KICK_MEMBERS, BAN_MEMBERS);
       PermissionSet set1 = PermissionSet.of(KICK_MEMBERS);
      
       set0.and(set1) = PermissionSet.of(KICK_MEMBERS)
       
       
      Parameters:
      other - The other permission set.
      Returns:
      The intersection of this set with the other set.
    • or

      public PermissionSet or(PermissionSet other)
      Performs a logical OR of this permission set with the other permission set.

      The resultant set is the union of this set and the other set. A permission is contained if and only if it was contained in either this set or the other set. This is analogous to Set.addAll(java.util.Collection).

       
       PermissionSet set0 = PermissionSet.of(KICK_MEMBERS);
       PermissionSet set1 = PermissionSet.of(BAN_MEMBERS);
      
       set0.or(set1) = PermissionSet.of(KICK_MEMBERS, BAN_MEMBERS)
       
       
      Parameters:
      other - The other permission set.
      Returns:
      The union of this set with the other set.
    • xor

      public PermissionSet xor(PermissionSet other)
      Performs a logical XOR of this permission set with the other permission set.

      The resultant set is the symmetric difference of this set and the other set. A permission is contained if and only if it was contained in only this set or contained in only the other set.

       
       PermissionSet set0 = PermissionSet.of(KICK_MEMBERS, BAN_MEMBERS, ATTACH_FILES);
       PermissionSet set1 = PermissionSet.of(ATTACH_FILES, CONNECT);
      
       set0.xor(set1) = PermissionSet.of(KICK_MEMBERS, BAN_MEMBERS, CONNECT)
       
       
      Parameters:
      other - The other permission set.
      Returns:
      The symmetric difference of this set with the other set.
    • andNot

      public PermissionSet andNot(PermissionSet other)
      Performs a logical AND NOT of this permission set with the other permission set.

      The resultant set is the relative complement of this set and the other set. A permission is contained if and only if it was contained in this set and not contained in the other set. This is analogous to Set.removeAll(java.util.Collection).

       
       PermissionSet set0 = PermissionSet.of(KICK_MEMBERS, BAN_MEMBERS, ATTACH_FILES);
       PermissionSet set1 = PermissionSet.of(BAN_MEMBERS, ATTACH_FILES, CONNECT);
      
       set0.andNot(set1) = PermissionSet.of(KICK_MEMBERS)
       
       
      Parameters:
      other - The other permission set.
      Returns:
      The relative complement of this set with the other set.
    • subtract

      @Deprecated public PermissionSet subtract(PermissionSet other)
      Deprecated.
      Performs a logical AND NOT of this permission set with the other permission set.

      The resultant set is the relative complement of this set and the other set. A permission is contained if and only if it was contained in this set and not contained in the other set.

       
       PermissionSet set0 = PermissionSet.of(KICK_MEMBERS, BAN_MEMBERS, ATTACH_FILES);
       PermissionSet set1 = PermissionSet.of(BAN_MEMBERS, ATTACH_FILES, CONNECT);
      
       set0.subtract(set1) = PermissionSet.of(KICK_MEMBERS)
       
       
      Parameters:
      other - The other permission set.
      Returns:
      The relative complement of this set with the other set.
    • not

      public PermissionSet not()
      Performs a logical NOT of this permission set.

      The resultant set is the complement of this set. A permission is contained if and only if it was not contained in this set.

       
       PermissionSet set = PermissionSet.none();
      
       set.not() = PermissionSet.all()
       
       
      Returns:
      The complement of this set.
    • asEnumSet

      public EnumSet<Permission> asEnumSet()
      Gets this PermissionSet as an EnumSet.
      Returns:
      This PermissionSet as an EnumSet.
    • getRawValue

      public long getRawValue()
      Gets the raw value for this PermissionSet.
      Returns:
      The raw value for this PermissionSet.
      See Also:
    • contains

      public boolean contains(Object o)
      Specified by:
      contains in interface Collection<Permission>
      Specified by:
      contains in interface Set<Permission>
      Overrides:
      contains in class AbstractCollection<Permission>
    • iterator

      public Iterator<Permission> iterator()
      Specified by:
      iterator in interface Collection<Permission>
      Specified by:
      iterator in interface Iterable<Permission>
      Specified by:
      iterator in interface Set<Permission>
      Specified by:
      iterator in class AbstractCollection<Permission>
    • size

      public int size()
      Specified by:
      size in interface Collection<Permission>
      Specified by:
      size in interface Set<Permission>
      Specified by:
      size in class AbstractCollection<Permission>
    • equals

      public boolean equals(@Nullable Object o)
      Specified by:
      equals in interface Collection<Permission>
      Specified by:
      equals in interface Set<Permission>
      Overrides:
      equals in class AbstractSet<Permission>
    • hashCode

      public int hashCode()
      Specified by:
      hashCode in interface Collection<Permission>
      Specified by:
      hashCode in interface Set<Permission>
      Overrides:
      hashCode in class AbstractSet<Permission>
    • toString

      public String toString()
      Overrides:
      toString in class AbstractCollection<Permission>