java.lang.Object
com.vaadin.flow.component.spreadsheet.framework.ReflectTools
All Implemented Interfaces:
Serializable

public class ReflectTools extends Object implements Serializable
An util class with helpers for reflection operations. Used internally by Vaadin and should not be used by application developers. Subject to change at any time.
Since:
6.2
See Also:
  • Method Details

    • findMethod

      public static Method findMethod(Class<?> cls, String methodName, Class<?>... parameterTypes) throws ExceptionInInitializerError
      Locates the method in the given class. Returns null if the method is not found. Throws an ExceptionInInitializerError if there is a problem locating the method as this is mainly called from static blocks.
      Parameters:
      cls - Class that contains the method
      methodName - The name of the method
      parameterTypes - The parameter types for the method.
      Returns:
      A reference to the method
      Throws:
      ExceptionInInitializerError - Wraps any exception in an ExceptionInInitializerError so this method can be called from a static initializer.
    • getJavaFieldValue

      public static Object getJavaFieldValue(Object object, Field field) throws IllegalArgumentException, IllegalAccessException, InvocationTargetException
      Returns the value of the java field.

      Uses getter if present, otherwise tries to access even private fields directly.

      Parameters:
      object - The object containing the field
      field - The field we want to get the value for
      Returns:
      The value of the field in the object
      Throws:
      InvocationTargetException - If the value could not be retrieved
      IllegalAccessException - If the value could not be retrieved
      IllegalArgumentException - If the value could not be retrieved
    • getJavaFieldValue

      public static Object getJavaFieldValue(Object object, Field field, Class<?> propertyType) throws IllegalArgumentException, IllegalAccessException, InvocationTargetException
      Returns the value of the java field that is assignable to the property type.

      Uses getter if a getter for the correct return type is present, otherwise tries to access even private fields directly. If the java field is not assignable to the property type throws an IllegalArgumentException.

      Parameters:
      object - The object containing the field
      field - The field we want to get the value for
      propertyType - The type the field must be assignable to
      Returns:
      The value of the field in the object
      Throws:
      InvocationTargetException - If the value could not be retrieved
      IllegalAccessException - If the value could not be retrieved
      IllegalArgumentException - If the value could not be retrieved
    • setJavaFieldValue

      public static void setJavaFieldValue(Object object, Field field, Object value) throws IllegalAccessException, IllegalArgumentException, InvocationTargetException
      Sets the value of a java field.

      Uses setter if present, otherwise tries to access even private fields directly.

      Parameters:
      object - The object containing the field
      field - The field we want to set the value for
      value - The value to set
      Throws:
      IllegalAccessException - If the value could not be assigned to the field
      IllegalArgumentException - If the value could not be assigned to the field
      InvocationTargetException - If the value could not be assigned to the field
    • convertPrimitiveType

      public static Class<?> convertPrimitiveType(Class<?> type)
      Since:
      7.4
    • findCommonBaseType

      public static Class<?> findCommonBaseType(Class<?> a, Class<?> b)
      Finds the most specific class that both provided classes extend from.
      Parameters:
      a - one class to get the base type for, not null
      b - another class to get the base type for, not null
      Returns:
      the most specific base class, not null
      Since:
      8.0
    • createInstance

      public static <T> T createInstance(Class<T> cls)
      Creates a instance of the given class with a no-arg constructor.

      Catches all exceptions which might occur and wraps them in a IllegalArgumentException with a descriptive error message hinting of what might be wrong with the class that could not be instantiated.

      Parameters:
      cls - the class to instantiate
      Returns:
      an instance of the class
      Since:
      8.1.1
    • getMethod

      public static Method getMethod(Class<?> listenerClass)
      Returns the first non-synthetic method of the specified listenerClass, which must have single method in the source-code. This is needed, to remove the synthetic methods added if the class is instrumented.
      Parameters:
      listenerClass - The Class of the listener, which has a single method in the source code
      Returns:
      the first non-synthetic method
      Throws:
      IllegalStateException - if the specified class does not have found method
      Since:
      8.2