CollectionFunctionals { public static <K> Predicate<Map<K,?>> mapEmptyOrNull() { return Predicates.<Map<K,?>>or(Predicates.isNull(), CollectionFunctionals.<K>mapSizeEquals(0)); }  static Supplier<Integer> sizeSupplier(final Iterable<?> collection); static Function<Iterable<?>, Integer> sizeFunction(); static Function<Iterable<?>, Integer> sizeFunction(final Integer valueIfInputNull); static Function<Iterable<? extends T>, T> firstElement(); static Function<Map<K,?>,Set<K>> keys(); static Function<Map<K, ?>, Integer> mapSize(); static Function<Map<K, ?>, Integer> mapSize(Integer valueIfNull); static Predicate<Iterable<?>> equalsSetOf(Object... target); static Predicate<Iterable<?>> equalsSet(final Iterable<?> target); static Predicate<Iterable<?>> sizeEquals(int targetSize); static Predicate<Iterable<?>> empty(); static Predicate<Iterable<?>> emptyOrNull(); static Predicate<Iterable<?>> notEmpty(); static Predicate<Map<K,?>> mapSizeEquals(int targetSize); static Predicate<Map<K,?>> mapEmptyOrNull(); static Predicate<Map<K,?>> mapNotEmpty(); static Function<I, List<T>> limit(final int max); static Predicate<T> contains(I item); static Predicate<TT> all(Predicate<T> attributeSatisfies); static Predicate<TT> any(Predicate<T> attributeSatisfies); static Predicate<TT> quorum(QuorumCheck quorumCheck, Predicate<T> attributeSatisfies);  }
@Test public void testMapEmptyOrNull() { Assert.assertTrue(CollectionFunctionals.mapEmptyOrNull().apply(null)); Assert.assertTrue(CollectionFunctionals.mapEmptyOrNull().apply(ImmutableMap.of())); Assert.assertFalse(CollectionFunctionals.<String>mapEmptyOrNull().apply(ImmutableMap.of("mykey", "myval"))); }