# DomainPermission enum

Enumeration of reflection-based permissions for secure access to class metadata, fields, methods, constructors, and annotations within a container or framework.

These permissions are used to guard operations during reflection, allowing granular control over what can be read, modified, or invoked at runtime.

### Usage Example:

    bool canInvoke = permissions.contains(DomainPermission.INVOKE_METHODS);
    if (canInvoke) {
      reflectedMethod.invoke(target);
    }

These permissions are typically used by custom reflection engines, pod containers, or access control modules in frameworks like JetLeaf.

Inheritance
  - Object
  - Enum
  - DomainPermission
Available extensions
  - EnumName

## Values

READ_FIELDS → const DomainPermission

  Enumeration of reflection-based permissions for secure access to class metadata, fields, methods, constructors, and annotations within a container or framework.

  These permissions are used to guard operations during reflection, allowing granular control over what can be read, modified, or invoked at runtime.

  ### Usage Example:

      bool canInvoke = permissions.contains(DomainPermission.INVOKE_METHODS);
      if (canInvoke) {
        reflectedMethod.invoke(target);
      }

  These permissions are typically used by custom reflection engines, pod containers, or access control modules in frameworks like JetLeaf. Permission to read field metadata and current values on a class or instance.

WRITE_FIELDS → const DomainPermission

  Enumeration of reflection-based permissions for secure access to class metadata, fields, methods, constructors, and annotations within a container or framework.

  These permissions are used to guard operations during reflection, allowing granular control over what can be read, modified, or invoked at runtime.

  ### Usage Example:

      bool canInvoke = permissions.contains(DomainPermission.INVOKE_METHODS);
      if (canInvoke) {
        reflectedMethod.invoke(target);
      }

  These permissions are typically used by custom reflection engines, pod containers, or access control modules in frameworks like JetLeaf. Permission to write or modify field values reflectively.

READ_METHODS → const DomainPermission

  Enumeration of reflection-based permissions for secure access to class metadata, fields, methods, constructors, and annotations within a container or framework.

  These permissions are used to guard operations during reflection, allowing granular control over what can be read, modified, or invoked at runtime.

  ### Usage Example:

      bool canInvoke = permissions.contains(DomainPermission.INVOKE_METHODS);
      if (canInvoke) {
        reflectedMethod.invoke(target);
      }

  These permissions are typically used by custom reflection engines, pod containers, or access control modules in frameworks like JetLeaf. Permission to access method signatures and metadata (return types, parameters, etc.).

INVOKE_METHODS → const DomainPermission

  Enumeration of reflection-based permissions for secure access to class metadata, fields, methods, constructors, and annotations within a container or framework.

  These permissions are used to guard operations during reflection, allowing granular control over what can be read, modified, or invoked at runtime.

  ### Usage Example:

      bool canInvoke = permissions.contains(DomainPermission.INVOKE_METHODS);
      if (canInvoke) {
        reflectedMethod.invoke(target);
      }

  These permissions are typically used by custom reflection engines, pod containers, or access control modules in frameworks like JetLeaf. Permission to invoke methods reflectively, including private or protected ones.

READ_CONSTRUCTORS → const DomainPermission

  Enumeration of reflection-based permissions for secure access to class metadata, fields, methods, constructors, and annotations within a container or framework.

  These permissions are used to guard operations during reflection, allowing granular control over what can be read, modified, or invoked at runtime.

  ### Usage Example:

      bool canInvoke = permissions.contains(DomainPermission.INVOKE_METHODS);
      if (canInvoke) {
        reflectedMethod.invoke(target);
      }

  These permissions are typically used by custom reflection engines, pod containers, or access control modules in frameworks like JetLeaf. Permission to access constructor metadata (parameter types, visibility, etc.).

CREATE_INSTANCES → const DomainPermission

  Enumeration of reflection-based permissions for secure access to class metadata, fields, methods, constructors, and annotations within a container or framework.

  These permissions are used to guard operations during reflection, allowing granular control over what can be read, modified, or invoked at runtime.

  ### Usage Example:

      bool canInvoke = permissions.contains(DomainPermission.INVOKE_METHODS);
      if (canInvoke) {
        reflectedMethod.invoke(target);
      }

  These permissions are typically used by custom reflection engines, pod containers, or access control modules in frameworks like JetLeaf. Permission to create new instances using constructors, including private ones.

READ_ANNOTATIONS → const DomainPermission

  Enumeration of reflection-based permissions for secure access to class metadata, fields, methods, constructors, and annotations within a container or framework.

  These permissions are used to guard operations during reflection, allowing granular control over what can be read, modified, or invoked at runtime.

  ### Usage Example:

      bool canInvoke = permissions.contains(DomainPermission.INVOKE_METHODS);
      if (canInvoke) {
        reflectedMethod.invoke(target);
      }

  These permissions are typically used by custom reflection engines, pod containers, or access control modules in frameworks like JetLeaf. Permission to access annotations on fields, methods, parameters, and classes.

READ_TYPE_INFO → const DomainPermission

  Enumeration of reflection-based permissions for secure access to class metadata, fields, methods, constructors, and annotations within a container or framework.

  These permissions are used to guard operations during reflection, allowing granular control over what can be read, modified, or invoked at runtime.

  ### Usage Example:

      bool canInvoke = permissions.contains(DomainPermission.INVOKE_METHODS);
      if (canInvoke) {
        reflectedMethod.invoke(target);
      }

  These permissions are typically used by custom reflection engines, pod containers, or access control modules in frameworks like JetLeaf. Permission to inspect type information (e.g., generics, superclasses, interfaces).

ACCESS_PRIVATE → const DomainPermission

  Enumeration of reflection-based permissions for secure access to class metadata, fields, methods, constructors, and annotations within a container or framework.

  These permissions are used to guard operations during reflection, allowing granular control over what can be read, modified, or invoked at runtime.

  ### Usage Example:

      bool canInvoke = permissions.contains(DomainPermission.INVOKE_METHODS);
      if (canInvoke) {
        reflectedMethod.invoke(target);
      }

  These permissions are typically used by custom reflection engines, pod containers, or access control modules in frameworks like JetLeaf. Permission to access private members (fields, methods, constructors). Usually paired with `SUPPRESS_ACCESS_CHECKS` for full private access.

SUPPRESS_ACCESS_CHECKS → const DomainPermission

  Enumeration of reflection-based permissions for secure access to class metadata, fields, methods, constructors, and annotations within a container or framework.

  These permissions are used to guard operations during reflection, allowing granular control over what can be read, modified, or invoked at runtime.

  ### Usage Example:

      bool canInvoke = permissions.contains(DomainPermission.INVOKE_METHODS);
      if (canInvoke) {
        reflectedMethod.invoke(target);
      }

  These permissions are typically used by custom reflection engines, pod containers, or access control modules in frameworks like JetLeaf. Permission to suppress visibility and access checks when using reflection. Allows interaction with members that are otherwise inaccessible.

## Properties

hashCode → int
  The hash code for this object.
  no setter inherited
index → int
  A numeric identifier for the enumerated value.
  no setter inherited
name → String

  Available on Enum, provided by the EnumName extension

  The name of the enum value.
  no setter
runtimeType → Type
  A representation of the runtime type of the object.
  no setter inherited

## Methods

noSuchMethod(Invocation invocation) → dynamic
  Invoked when a nonexistent method or property is accessed.
  inherited
toString() → String
  A string representation of this object.
  inherited

## Operators

operator ==(Object other) → bool
  The equality operator.
  inherited

## Constants

values → const List<DomainPermission>
  A constant List of the values in this enum, in order of their declaration.