Class Properties<T>


  • public class Properties<T>
    extends Object
    Extracts the values of a specified property from the elements of a given Iterable or array.
    Author:
    Yvonne Wang, Mikhail Mazursky, Joel Costigliola, Florent Biville, Olivier Michallat
    • Constructor Detail

      • Properties

        Properties​(String propertyName,
                   Class<T> propertyType)
    • Method Detail

      • extractProperty

        public static <T> Properties<T> extractProperty​(String propertyName,
                                                        Class<T> propertyType)
        Creates a new Properties.
        Type Parameters:
        T - the type of value to extract.
        Parameters:
        propertyName - the name of the property to be read from the elements of a Iterable. It may be a nested property (e.g. "address.street.number").
        propertyType - the type of property to extract
        Returns:
        the created Properties.
        Throws:
        NullPointerException - if the given property name is null.
        IllegalArgumentException - if the given property name is empty.
      • extractProperty

        public static Properties<Object> extractProperty​(String propertyName)
        Creates a new Properties with given propertyName and Object as property type..
        Parameters:
        propertyName - the name of the property to be read from the elements of a Iterable. It may be a nested property (e.g. "address.street.number").
        Returns:
        the created Properties.
        Throws:
        NullPointerException - if the given property name is null.
        IllegalArgumentException - if the given property name is empty.
      • checkIsNotNullOrEmpty

        private static void checkIsNotNullOrEmpty​(String propertyName)
      • ofType

        public <U> Properties<U> ofType​(Class<U> propertyType)
        Specifies the target type of an instance that was previously created with extractProperty(String).

        This is so that you can write:

         extractProperty("name").ofType(String.class).from(fellowshipOfTheRing);
        instead of:
         extractProperty("name", String.class).from(fellowshipOfTheRing);
        Type Parameters:
        U - the type of value to extract.
        Parameters:
        propertyType - the type of property to extract.
        Returns:
        a new Properties with the given type.
      • from

        public List<T> from​(Iterable<?> c)
        Extracts the values of the property (specified previously in extractProperty(String)) from the elements of the given Iterable.
        Parameters:
        c - the given Iterable.
        Returns:
        the values of the previously specified property extracted from the given Iterable.
        Throws:
        IntrospectionError - if an element in the given Iterable does not have a property with a matching name.
      • from

        public List<T> from​(Object[] array)
        Extracts the values of the property (specified previously in extractProperty(String)) from the elements of the given array.
        Parameters:
        array - the given array.
        Returns:
        the values of the previously specified property extracted from the given array.
        Throws:
        IntrospectionError - if an element in the given array does not have a property with a matching name.