Snippet.SubKind (Java SE 22 & JDK 22)
Description: declaration: module: jdk.jshell, package: jdk.jshell, class: Snippet, enum: SubKind
Keywords: jdk.jshell.Snippet.SubKind class

Module jdk.jshell
Package jdk.jshell

# Enum Class Snippet.SubKind

java.lang.Object
java.lang.Enum<Snippet.SubKind>
jdk.jshell.Snippet.SubKind

All Implemented Interfaces:
  `Serializable`, `Comparable<Snippet.SubKind>`, `Constable`

Enclosing class:
  `Snippet`

public static enum Snippet.SubKind extends Enum<Snippet.SubKind>
The detailed variety of a snippet. This is a sub-classification of the Kind. The Kind of a SubKind is accessible with `kind()`.

- ## Nested Class Summary

  ### Nested classes/interfaces declared in class java.lang.Enum

  `Enum.EnumDesc<E extends Enum<E>>`

- ## Enum Constant Summary

  Enum Constants
  Enum Constant
  Description
  `ANNOTATION_TYPE_SUBKIND`
  An annotation interface declaration.
  `ASSIGNMENT_SUBKIND`
  An assignment expression.
  `CLASS_SUBKIND`
  A class declaration.
  `ENUM_SUBKIND`
  An enum declaration.
  `INTERFACE_SUBKIND`
  An interface declaration.
  `METHOD_SUBKIND`
  A method.
  `OTHER_EXPRESSION_SUBKIND`
  An expression which has not been wrapped in a temporary variable (reserved).
  `RECORD_SUBKIND`
  A record declaration.
  `SINGLE_STATIC_IMPORT_SUBKIND`
  Single-Static-Import Declaration.
  `SINGLE_TYPE_IMPORT_SUBKIND`
  Single-Type-Import Declaration.
  `STATEMENT_SUBKIND`
  A statement.
  `STATIC_IMPORT_ON_DEMAND_SUBKIND`
  Static-Import-on-Demand Declaration.
  `TEMP_VAR_EXPRESSION_SUBKIND`
  An expression whose value has been stored in a temporary variable.
  `TYPE_IMPORT_ON_DEMAND_SUBKIND`
  Type-Import-on-Demand Declaration.
  `UNKNOWN_SUBKIND`
  An unknown snippet.
  `VAR_DECLARATION_SUBKIND`
  A variable declaration without initializer.
  `VAR_DECLARATION_WITH_INITIALIZER_SUBKIND`
  A variable declaration with an initializer expression.
  `VAR_VALUE_SUBKIND`
  A simple variable reference expression.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `boolean`
  `hasValue()`
  Indicates whether this `SubKind` is executable and is non-`void`.
  `boolean`
  `isExecutable()`
  Indicates whether this `SubKind` is executable.
  `Snippet.Kind`
  `kind()`
  The `Snippet.Kind` that corresponds to this `SubKind`.
  `static Snippet.SubKind`
  `valueOf(String name)`
  Returns the enum constant of this class with the specified name.
  `static Snippet.SubKind[]`
  `values()`
  Returns an array containing the constants of this enum class, in the order they are declared.

  ### Methods declared in class java.lang.Enum

  `clone, compareTo, describeConstable, equals, finalize, getDeclaringClass, hashCode, name, ordinal, toString, valueOf`

  ### Methods declared in class java.lang.Object

  `getClass, notify, notifyAll, wait, wait, wait`

- ## Enum Constant Details

  - ### SINGLE_TYPE_IMPORT_SUBKIND

    public static final Snippet.SubKind SINGLE_TYPE_IMPORT_SUBKIND
    Single-Type-Import Declaration. An import declaration of a single type.
    See Java Language Specification:
      7.5.1 Single-Type-Import Declarations

  - ### TYPE_IMPORT_ON_DEMAND_SUBKIND

    public static final Snippet.SubKind TYPE_IMPORT_ON_DEMAND_SUBKIND
    Type-Import-on-Demand Declaration. A non-static "star" import.
    See Java Language Specification:
      7.5.2 Type-Import-on-Demand Declarations

  - ### SINGLE_STATIC_IMPORT_SUBKIND

    public static final Snippet.SubKind SINGLE_STATIC_IMPORT_SUBKIND
    Single-Static-Import Declaration. An import of a static member.
    See Java Language Specification:
      7.5.3 Single-Static-Import Declarations

  - ### STATIC_IMPORT_ON_DEMAND_SUBKIND

    public static final Snippet.SubKind STATIC_IMPORT_ON_DEMAND_SUBKIND
    Static-Import-on-Demand Declaration. A static "star" import of all static members of a named type.
    See Java Language Specification:
      7.5.4 Static-Import-on-Demand Declarations

  - ### CLASS_SUBKIND

    public static final Snippet.SubKind CLASS_SUBKIND
    A class declaration. A `SubKind` of `Snippet.Kind.TYPE_DECL`.
    See Java Language Specification:
      8.1 Class Declarations

  - ### INTERFACE_SUBKIND

    public static final Snippet.SubKind INTERFACE_SUBKIND
    An interface declaration. A `SubKind` of `Snippet.Kind.TYPE_DECL`.
    See Java Language Specification:
      9.1 Interface Declarations

  - ### ENUM_SUBKIND

    public static final Snippet.SubKind ENUM_SUBKIND
    An enum declaration. A `SubKind` of `Snippet.Kind.TYPE_DECL`.
    See Java Language Specification:
      8.9 Enum Types

  - ### RECORD_SUBKIND

    public static final Snippet.SubKind RECORD_SUBKIND
    A record declaration. A `SubKind` of `Snippet.Kind.TYPE_DECL`.
    See Java Language Specification:
      8.10 Record Types
    Since:
      14

  - ### ANNOTATION_TYPE_SUBKIND

    public static final Snippet.SubKind ANNOTATION_TYPE_SUBKIND
    An annotation interface declaration. A `SubKind` of `Snippet.Kind.TYPE_DECL`.
    See Java Language Specification:
      9.6 Annotation Types

  - ### METHOD_SUBKIND

    public static final Snippet.SubKind METHOD_SUBKIND
    A method. The only `SubKind` for `Snippet.Kind.METHOD`.
    See Java Language Specification:
      8.4 Method Declarations

  - ### VAR_DECLARATION_SUBKIND

    public static final Snippet.SubKind VAR_DECLARATION_SUBKIND
    A variable declaration without initializer. A `SubKind` of `Snippet.Kind.VAR`.
    See Java Language Specification:
      8.3 Field Declarations

  - ### VAR_DECLARATION_WITH_INITIALIZER_SUBKIND

    public static final Snippet.SubKind VAR_DECLARATION_WITH_INITIALIZER_SUBKIND
    A variable declaration with an initializer expression. A `SubKind` of `Snippet.Kind.VAR`.
    See Java Language Specification:
      8.3 Field Declarations

  - ### TEMP_VAR_EXPRESSION_SUBKIND

    public static final Snippet.SubKind TEMP_VAR_EXPRESSION_SUBKIND
    An expression whose value has been stored in a temporary variable. A `SubKind` of `Snippet.Kind.VAR`.
    See Java Language Specification:
      15 Expressions

  - ### VAR_VALUE_SUBKIND

    public static final Snippet.SubKind VAR_VALUE_SUBKIND
    A simple variable reference expression. A `SubKind` of `Snippet.Kind.EXPRESSION`.
    See Java Language Specification:
      15.11 Field Access Expressions

  - ### ASSIGNMENT_SUBKIND

    public static final Snippet.SubKind ASSIGNMENT_SUBKIND
    An assignment expression. A `SubKind` of `Snippet.Kind.EXPRESSION`.
    See Java Language Specification:
      15.26 Assignment Operators

  - ### OTHER_EXPRESSION_SUBKIND

    public static final Snippet.SubKind OTHER_EXPRESSION_SUBKIND
    An expression which has not been wrapped in a temporary variable (reserved). A `SubKind` of `Snippet.Kind.EXPRESSION`.

  - ### STATEMENT_SUBKIND

    public static final Snippet.SubKind STATEMENT_SUBKIND
    A statement. The only `SubKind` for `Snippet.Kind.STATEMENT`.
    See Java Language Specification:
      14.5 Statements

  - ### UNKNOWN_SUBKIND

    public static final Snippet.SubKind UNKNOWN_SUBKIND
    An unknown snippet. The only `SubKind` for `Snippet.Kind.ERRONEOUS`.

- ## Method Details

  - ### values

    public static Snippet.SubKind[] values()
    Returns an array containing the constants of this enum class, in the order they are declared.
    Returns:
      an array containing the constants of this enum class, in the order they are declared

  - ### valueOf

    public static Snippet.SubKind valueOf(String name)
    Returns the enum constant of this class with the specified name. The string must match exactly an identifier used to declare an enum constant in this class. (Extraneous whitespace characters are not permitted.)
    Parameters:
      `name` - the name of the enum constant to be returned.
    Returns:
      the enum constant with the specified name
    Throws:
      `IllegalArgumentException` - if this enum class has no constant with the specified name
      `NullPointerException` - if the argument is null

  - ### isExecutable

    public boolean isExecutable()
    Indicates whether this `SubKind` is executable.
    Returns:
      `true` if this `SubKind` can be executed; otherwise `false`

  - ### hasValue

    public boolean hasValue()
    Indicates whether this `SubKind` is executable and is non-`void`.
    Returns:
      `true` if this `SubKind` has a value; otherwise `false`

  - ### kind

    public Snippet.Kind kind()
    The `Snippet.Kind` that corresponds to this `SubKind`.
    Returns:
      the fixed `Kind` for this `SubKind`