# Interface AccessFlags

All Superinterfaces:
  `ClassElement, ClassFileElement, FieldElement, MethodElement`

public sealed interface AccessFlags extends ClassElement, MethodElement, FieldElement
Models the access flags for a class, method, or field. The access flags appears exactly once in each class, method, or field; a `ClassBuilder` and a `FieldBuilder` chooses an unspecified default value if access flags are not provided, and a `MethodBuilder` is always created with access flags.

`AccessFlags` cannot be created via a factory method directly; it can be created with `withFlags` methods on the respective builders.

A `MethodBuilder` throws an `IllegalArgumentException` if it is supplied an `AccessFlags` object that changes the preexisting `ACC_STATIC` flag of the builder, because the access flag change may invalidate previously supplied data to the builder.

API Note:
  The access flags of classes, methods, and fields are modeled as a standalone object to support streaming as elements for `ClassFileTransform`. Other access flags are not elements of a `CompoundElement` and thus not modeled by `AccessFlags`; they provide their own `flagsMask`, `flags`, and `has` methods.
Since:
  24
See Also:
  - `ClassModel.flags()`
  - `FieldModel.flags()`
  - `MethodModel.flags()`
  - `ClassBuilder.withFlags(int)`
  - `FieldBuilder.withFlags(int)`
  - `MethodBuilder.withFlags(int)`

## Method Summary

Modifier and Type
Method
Description
`Set<AccessFlag>`
`flags()`
Returns the access flags, as a set of flag enums.
`int`
`flagsMask()`
Returns the access flags, as a bit mask.
`boolean`
`has(AccessFlag flag)`
Returns whether the specified flag is set.
`AccessFlag.Location`
`location()`
Returns the `class` file location for this element, which is either class, method, or field.

## Method Details

### flagsMask

int flagsMask()
Returns the access flags, as a bit mask. It is in the range of unsigned short, `[0, 0xFFFF]`.

Returns:
  the access flags, as a bit mask

### flags

Set<AccessFlag> flags()
Returns the access flags, as a set of flag enums.

Returns:
  the access flags, as a set of flag enums
Throws:
  `IllegalArgumentException` - if the flags mask has any undefined bit set
See Also:
  - `location()`

### has

boolean has(AccessFlag flag)
Returns whether the specified flag is set. If the specified flag is not available to this location, returns `false`.

Parameters:
  `flag` - the flag to test
Returns:
  whether the specified flag is set
See Also:
  - `location()`

### location

AccessFlag.Location location()
Returns the `class` file location for this element, which is either class, method, or field.

Returns:
  the `class` file location for this element, which is either class, method, or field
See Also:
  - `AccessFlag.Location.CLASS`
  - `AccessFlag.Location.FIELD`
  - `AccessFlag.Location.METHOD`