Class TypeDescriptors

java.lang.Object
io.micronaut.expressions.parser.ast.util.TypeDescriptors

@Internal public final class TypeDescriptors extends Object
Set of constants and utility methods for working with type descriptors while compiling evaluated expressions.
Since:
4.0.0
Author:
Sergey Gavrilov
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    static final io.micronaut.sourcegen.model.TypeDef
     
    static final io.micronaut.sourcegen.model.ClassTypeDef
     
    static final io.micronaut.sourcegen.model.TypeDef
     
    static final io.micronaut.sourcegen.model.ClassTypeDef
     
    static final io.micronaut.sourcegen.model.TypeDef
     
    static final io.micronaut.sourcegen.model.ClassTypeDef
     
    static final io.micronaut.sourcegen.model.TypeDef
     
    static final io.micronaut.sourcegen.model.TypeDef
     
    static final io.micronaut.sourcegen.model.ClassTypeDef
     
    static final io.micronaut.sourcegen.model.TypeDef
     
    static final io.micronaut.sourcegen.model.ClassTypeDef
     
    static final io.micronaut.sourcegen.model.TypeDef
     
    static final io.micronaut.sourcegen.model.ClassTypeDef
     
    static final io.micronaut.sourcegen.model.TypeDef
     
    static final io.micronaut.sourcegen.model.ClassTypeDef
     
    static final io.micronaut.sourcegen.model.TypeDef
     
    static final io.micronaut.sourcegen.model.TypeDef
     
    static final io.micronaut.sourcegen.model.ClassTypeDef
     
    static final io.micronaut.sourcegen.model.TypeDef
     
    static final io.micronaut.sourcegen.model.TypeDef
     
    static final Map<String,io.micronaut.sourcegen.model.TypeDef>
     
  • Constructor Summary

    Constructors
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    static @NonNull io.micronaut.sourcegen.model.TypeDef
    computeNumericOperationTargetType(@NonNull io.micronaut.sourcegen.model.TypeDef leftOperandType, @NonNull io.micronaut.sourcegen.model.TypeDef rightOperandType)
    For two passed types computes result numeric operation type.
    static boolean
    isBoolean(@NonNull io.micronaut.sourcegen.model.TypeDef type)
    Checks if passed type is either boolean primitive or wrapper.
    static @io.micronaut.core.annotation.NonNull boolean
    isNumeric(@NonNull io.micronaut.sourcegen.model.TypeDef type)
    Checks if passed type is one of numeric primitives or numeric wrappers.
    static boolean
    isOneOf(io.micronaut.sourcegen.model.TypeDef type, io.micronaut.sourcegen.model.TypeDef... comparedTypes)
    Utility method to check if passed type (first argument) is the same as any of compared types (second and following args).
    static boolean
    isPrimitive(@NonNull io.micronaut.sourcegen.model.TypeDef type)
    Checks if passed type is a primitive.
    static @NonNull io.micronaut.sourcegen.model.ClassTypeDef
    toBoxedIfNecessary(@NonNull io.micronaut.sourcegen.model.TypeDef type)
    If passed type is primitive, returns responsive boxed type, otherwise returns original passed type.
    static @NonNull io.micronaut.sourcegen.model.TypeDef
    toUnboxedIfNecessary(@NonNull io.micronaut.sourcegen.model.TypeDef type)
    If passed type is boxed type, returns responsive primitive, otherwise returns original passed type.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

    • STRING

      public static final io.micronaut.sourcegen.model.TypeDef STRING
    • OBJECT

      public static final io.micronaut.sourcegen.model.TypeDef OBJECT
    • CLASS

      public static final io.micronaut.sourcegen.model.TypeDef CLASS
    • VOID

      public static final io.micronaut.sourcegen.model.TypeDef VOID
    • DOUBLE

      public static final io.micronaut.sourcegen.model.TypeDef DOUBLE
    • FLOAT

      public static final io.micronaut.sourcegen.model.TypeDef FLOAT
    • INT

      public static final io.micronaut.sourcegen.model.TypeDef INT
    • LONG

      public static final io.micronaut.sourcegen.model.TypeDef LONG
    • BOOLEAN

      public static final io.micronaut.sourcegen.model.TypeDef BOOLEAN
    • CHAR

      public static final io.micronaut.sourcegen.model.TypeDef CHAR
    • SHORT

      public static final io.micronaut.sourcegen.model.TypeDef SHORT
    • BYTE

      public static final io.micronaut.sourcegen.model.TypeDef BYTE
    • BOOLEAN_WRAPPER

      public static final io.micronaut.sourcegen.model.ClassTypeDef BOOLEAN_WRAPPER
    • INT_WRAPPER

      public static final io.micronaut.sourcegen.model.ClassTypeDef INT_WRAPPER
    • LONG_WRAPPER

      public static final io.micronaut.sourcegen.model.ClassTypeDef LONG_WRAPPER
    • DOUBLE_WRAPPER

      public static final io.micronaut.sourcegen.model.ClassTypeDef DOUBLE_WRAPPER
    • FLOAT_WRAPPER

      public static final io.micronaut.sourcegen.model.ClassTypeDef FLOAT_WRAPPER
    • SHORT_WRAPPER

      public static final io.micronaut.sourcegen.model.ClassTypeDef SHORT_WRAPPER
    • BYTE_WRAPPER

      public static final io.micronaut.sourcegen.model.ClassTypeDef BYTE_WRAPPER
    • CHAR_WRAPPER

      public static final io.micronaut.sourcegen.model.ClassTypeDef CHAR_WRAPPER
    • WRAPPER_TO_PRIMITIVE

      public static final Map<String,io.micronaut.sourcegen.model.TypeDef> WRAPPER_TO_PRIMITIVE
  • Constructor Details

    • TypeDescriptors

      public TypeDescriptors()
  • Method Details

    • isPrimitive

      public static boolean isPrimitive(@NonNull @NonNull io.micronaut.sourcegen.model.TypeDef type)
      Checks if passed type is a primitive.
      Parameters:
      type - type to check
      Returns:
      true if it is
    • isBoolean

      public static boolean isBoolean(@NonNull @NonNull io.micronaut.sourcegen.model.TypeDef type)
      Checks if passed type is either boolean primitive or wrapper.
      Parameters:
      type - type to check
      Returns:
      true if it is
    • isNumeric

      @NonNull public static @io.micronaut.core.annotation.NonNull boolean isNumeric(@NonNull @NonNull io.micronaut.sourcegen.model.TypeDef type)
      Checks if passed type is one of numeric primitives or numeric wrappers.
      Parameters:
      type - type to check
      Returns:
      true if it is
    • toUnboxedIfNecessary

      @NonNull public static @NonNull io.micronaut.sourcegen.model.TypeDef toUnboxedIfNecessary(@NonNull @NonNull io.micronaut.sourcegen.model.TypeDef type)
      If passed type is boxed type, returns responsive primitive, otherwise returns original passed type.
      Parameters:
      type - type to check
      Returns:
      unboxed type or original passed type
    • toBoxedIfNecessary

      @NonNull public static @NonNull io.micronaut.sourcegen.model.ClassTypeDef toBoxedIfNecessary(@NonNull @NonNull io.micronaut.sourcegen.model.TypeDef type)
      If passed type is primitive, returns responsive boxed type, otherwise returns original passed type.
      Parameters:
      type - type to check
      Returns:
      boxed type or original passed type
    • computeNumericOperationTargetType

      @NonNull public static @NonNull io.micronaut.sourcegen.model.TypeDef computeNumericOperationTargetType(@NonNull @NonNull io.micronaut.sourcegen.model.TypeDef leftOperandType, @NonNull @NonNull io.micronaut.sourcegen.model.TypeDef rightOperandType)
      For two passed types computes result numeric operation type. This method accepts both primitive and wrapper types, but returns only primitive type.
      Parameters:
      leftOperandType - left operand type
      rightOperandType - right operand type
      Returns:
      numeric operation result type
      Throws:
      ExpressionCompilationException - if ony of the passed types is not a numeric type
    • isOneOf

      public static boolean isOneOf(io.micronaut.sourcegen.model.TypeDef type, io.micronaut.sourcegen.model.TypeDef... comparedTypes)
      Utility method to check if passed type (first argument) is the same as any of compared types (second and following args).
      Parameters:
      type - type to check
      comparedTypes - types against which checked types is compared
      Returns:
      true if checked type is amount compared types