Class PropertySupport

java.lang.Object
org.assertj.core.util.introspection.PropertySupport

public class PropertySupport extends Object
Utility methods for properties access.
Author:
Joel Costigliola, Alex Ruiz, Nicolas François, Florent Biville
  • Method Details

    • instance

      public static PropertySupport instance()
      Returns the singleton instance of this class.
      Returns:
      the singleton instance of this class.
    • propertyValues

      public <T> List<T> propertyValues(String propertyName, Class<T> clazz, Iterable<?> target)
      Returns a List containing the values of the given property name, from the elements of the given Iterable. If the given Iterable is empty or null, this method will return an empty List. This method supports nested properties (e.g. "address.street.number").
      Type Parameters:
      T - the type of the extracted elements.
      Parameters:
      propertyName - the name of the property. It may be a nested property. It is left to the clients to validate for null or empty.
      clazz - type of property
      target - the given Iterable.
      Returns:
      an Iterable containing the values of the given property name, from the elements of the given Iterable.
      Throws:
      IntrospectionError - if an element in the given Iterable does not have a property with a matching name.
    • propertyValueOf

      public static <T> T propertyValueOf(String propertyName, Object target, Class<T> clazz)
      Static variant of propertyValueOf(String, Class, Object) for syntactic sugar.
      Type Parameters:
      T - the type of the extracted elements.
      Parameters:
      propertyName - the name of the property. It may be a nested property. It is left to the clients to validate for null or empty.
      target - the given object
      clazz - type of property
      Returns:
      a the values of the given property name
      Throws:
      IntrospectionError - if the given target does not have a property with a matching name.
    • propertyValue

      public <T> T propertyValue(String propertyName, Class<T> clazz, Object target)
      Return the value of a simple property from a target object.

      This only works for simple property, nested property are not supported ! use propertyValueOf(String, Class, Object)

      Type Parameters:
      T - the type of the extracted value.
      Parameters:
      propertyName - the name of the property. It may be a nested property. It is left to the clients to validate for null or empty.
      target - the given object
      clazz - type of property
      Returns:
      a the values of the given property name
      Throws:
      IntrospectionError - if the given target does not have a property with a matching name.
    • propertyValueOf

      public <T> T propertyValueOf(String propertyName, Class<T> clazz, Object target)
      Returns the value of the given property name given target. If the given object is null, this method will return null.
      This method supports nested properties (e.g. "address.street.number").
      Type Parameters:
      T - the type of the extracted value.
      Parameters:
      propertyName - the name of the property. It may be a nested property. It is left to the clients to validate for null or empty.
      clazz - the class of property.
      target - the given Object to extract property from.
      Returns:
      the value of the given property name given target.
      Throws:
      IntrospectionError - if target object does not have a property with a matching name.
      IllegalArgumentException - if propertyName is null.
    • propertyValues

      public List<Object> propertyValues(String fieldOrPropertyName, Iterable<?> target)
      Returns a List containing the values of the given property name, from the elements of the given Iterable. If the given Iterable is empty or null, this method will return an empty List. This method supports nested properties (e.g. "address.street.number").
      Parameters:
      fieldOrPropertyName - the name of the property. It may be a nested property. It is left to the clients to validate for null or empty.
      target - the given Iterable.
      Returns:
      an Iterable containing the values of the given property name, from the elements of the given Iterable.
      Throws:
      IntrospectionError - if an element in the given Iterable does not have a property with a matching name.
    • publicGetterExistsFor

      public boolean publicGetterExistsFor(String fieldName, Object actual)