Class CollectionsExpressionVariable

  • All Implemented Interfaces:
    ExpressionVariable

    public class CollectionsExpressionVariable
    extends Object
    implements ExpressionVariable

    Common, null-safe, collection operations

    An instance of this class will usually be accessible as a variable within an expression via #collections. This is partly a wrapper around CollectionUtils to provide a layer of abstraction and because CollectionUtils employs static methods. Note that not all methods of CollectionUtils have been implemented just those that seemed most relevant for expression evaluation.

    Author:
    Nathan Moore (nathandmoore)
    • Constructor Detail

      • CollectionsExpressionVariable

        public CollectionsExpressionVariable()
    • Method Detail

      • isEmpty

        public boolean isEmpty​(@Nullable
                               Collection<?> collection)
        Whether the collection is empty or null.
      • equals

        public boolean equals​(@Nullable
                              Collection<?> coll2,
                              @Nullable
                              Collection<?> coll1)
        Performs a deep equals on the 2 collections.
      • contains

        public <T> boolean contains​(@Nullable
                                    T value,
                                    @Nullable
                                    Collection<T> collection)
        Whether the value is found within the collection using Collection.contains(Object). This method is dynamic and will work slightly differently when given an array or a collection to validate against. In that scenario, the contents of value are traversed to see if all of the elements are contained within collection. If value is null, then the collection must contain a null value
        Parameters:
        value - what to check for, which can also be an array or collection
        collection - collection to check
        Returns:
        whether or not everything defined by value is contained within collection
      • notContains

        public <T> boolean notContains​(@Nullable
                                       T value,
                                       @Nullable
                                       Collection<T> collection)
        Whether the value is not contained by the collection.
      • notContains

        public <T> boolean notContains​(@Nullable
                                       Collection<T> value,
                                       @Nullable
                                       Collection<T> collection)
        Whether the collection defined by value is not contained by the collection.
      • notContains

        public <T> boolean notContains​(@Nullable
                                       T[] value,
                                       @Nullable
                                       Collection<T> collection)
        Whether the array defined by value is not contained by the collection.
      • containsAny

        public boolean containsAny​(@Nullable
                                   Collection<?> coll2,
                                   @Nullable
                                   Collection<?> coll1)
        Whether the second collection contains any elements from the first. If either is null, returns false.
      • containsAll

        public boolean containsAll​(@Nullable
                                   Collection<?> coll2,
                                   @Nullable
                                   Collection<?> coll1)
        Whether the second collection contains all of the elements from the first. If both are empty or null, returns true
      • containsNone

        public boolean containsNone​(@Nullable
                                    Collection<?> coll2,
                                    @Nullable
                                    Collection<?> coll1)
        Whether the second collections contains none of the elements form the first. If either is null, returns true.